Comment 0 for bug 1849644

Revision history for this message
Samuel (samuel-t) wrote :

When running a machine using "-vnc" and the "websocket" option QEMU seems to require the subprotocol called 'binary'. This subprotocol does not exist in the WebSocket specification. In fact it has never existed in the spec, in one of the very early drafts of WebSockets it was briefly mentioned but it never made it to a final version.

When the WebSocket server requires a non-standard subprotocol any WebSocket client that works correctly won't be able to connect.

One example of such a client is noVNC, it tells the server that it doesn't want to use any subprotocol. QEMU's WebSocket proxy doesn't let noVNC connect. If noVNC is modified to ask for 'binary' it will work, this is, however, incorrect behavior.

Looking at the code in "io/channel-websock.c" it seems it's quite hard-coded to binary:

Look at line 58 and 433 here: https://git.qemu.org/?p=qemu.git;a=blob;f=io/channel-websock.c

This code has to be made more dynamic, and shouldn't require binary.