blob: 0a6fca87a9183fbfb3fccc081aa378d76bbf4de0 (
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
66
67
68
69
70
71
72
73
|
vnc: 0.985
socket: 0.984
network: 0.980
device: 0.963
instruction: 0.953
other: 0.913
graphic: 0.912
KVM: 0.878
boot: 0.872
assembly: 0.859
mistranslation: 0.822
semantic: 0.814
Chardev websocket stops listening after first connection disconnects
Using qemu option:
-chardev socket,id=websock0,websocket,port=13042,host=127.0.0.1,server,nowait -serial chardev:websock0
To have a websocket listening chardev. After the first connection disconnects (that does a full websocket handshake), subsequent connections aren't accepted. See below for a reproducing session kindly provided by Daniel:
$ telnet localhost 13042
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:%s
Origin: http://localhost
Sec-WebSocket-Key: o9JHNiS3/0/0zYE1wa3yIw==
Sec-WebSocket-Version: 13
Sec-WebSocket-Protocol: binary
HTTP/1.1 101 Switching Protocols
Server: QEMU VNC
Date: Wed, 20 Feb 2019 16:52:04 GMT
Upgrade: websocket
Connection: Upgrade
Sec-WebSocket-Accept: b3DnPh7O8hyYE5sIjQxl/c1J+S8=
Sec-WebSocket-Protocol: binary
sfsd
�&�only binary frames may be fragmentedConnection closed by foreign host.
$ telnet localhost 13042
Trying ::1...
telnet: connect to address ::1: Connection refused
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.1
Upgrade: websocket
Connection: Upgrade
Host: localhost:%s
Origin: http://localhost
Sec-WebSocket-Key: o9JHNiS3/0/0zYE1wa3yIw==
Sec-WebSocket-Version: 13
Sec-WebSocket-Protocol: binary
...no response.....
Patch proposed
https://lists.gnu.org/archive/html/qemu-devel/2019-02/msg05556.html
I can confirm that this patch fixes the issue. I can now reconnect after a client has disconnected.
https://git.qemu.org/?p=qemu.git;a=commitdiff;h=dd154c4d9f48a44ad24e1
|