blob: 8dda880adad32a6d34e8b3697e26dde21ffeef14 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
vnc: 0.970
socket: 0.959
network: 0.826
other: 0.822
device: 0.760
graphic: 0.752
semantic: 0.732
KVM: 0.673
instruction: 0.555
boot: 0.537
assembly: 0.398
mistranslation: 0.376
websockets: Improve error messages
Since 2.9 / 07e95cd529af345fdeea230913f68eff5b925bb6 , whenever the VNC websocket server finds an error with the incoming connection request, it just closes the socket with no further information.
This makes figuring out what's wrong with the request nearly impossible.
I would be nice if:
* HTTP 400 were returned to the client, with an appropriate error message
* Maybe something written to the log as well?
Currently, I'm resorting to looking at my request and the websocket source and hoping I can figure out what's wrong.
At very least we should also use 404 if given a invalid path
Will be included for 2.11 in
commit 3a3f8705962c8c8a47a9b981ffd5aab7274ad508
Author: Daniel P. Berrange <email address hidden>
Date: Wed Sep 6 11:38:36 2017 +0100
io: include full error message in websocket handshake trace
When the websocket handshake fails it is useful to log the real
error message via the trace points for debugging purposes.
Fixes bug: #1715186
Reviewed-by: Philippe Mathieu-Daudé <email address hidden>
Signed-off-by: Daniel P. Berrange <email address hidden>
commit f69a8bde29354493ff8aea64cc9cb3b531d16337
Author: Daniel P. Berrange <email address hidden>
Date: Wed Sep 6 11:33:17 2017 +0100
io: send proper HTTP response for websocket errors
When any error occurs while processing the websockets handshake,
QEMU just terminates the connection abruptly. This is in violation
of the HTTP specs and does not help the client understand what they
did wrong. This is particularly bad when the client gives the wrong
path, as a "404 Not Found" would be very helpful.
Refactor the handshake code so that it always sends a response to
the client unless there was an I/O error.
Fixes bug: #1715186
Reviewed-by: Philippe Mathieu-Daudé <email address hidden>
Signed-off-by: Daniel P. Berrange <email address hidden>
|