From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:49170) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TakQq-0004AJ-6j for qemu-devel@nongnu.org; Tue, 20 Nov 2012 04:47:58 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TakQk-0004Qo-5F for qemu-devel@nongnu.org; Tue, 20 Nov 2012 04:47:52 -0500 Received: from mx1.redhat.com ([209.132.183.28]:19487) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TakQj-0004Qk-Sf for qemu-devel@nongnu.org; Tue, 20 Nov 2012 04:47:46 -0500 Date: Tue, 20 Nov 2012 09:47:34 +0000 From: "Daniel P. Berrange" Message-ID: <20121120094734.GD3461@redhat.com> References: <1353403318-2877-1-git-send-email-thardeck@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1353403318-2877-1-git-send-email-thardeck@suse.de> Subject: Re: [Qemu-devel] [PATCH v2] vnc: added initial websockets support Reply-To: "Daniel P. Berrange" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tim Hardeck Cc: aliguori@us.ibm.com, stefanha@gmail.com, github@martintribe.org, qemu-devel@nongnu.org, alevy@redhat.com, kraxel@redhat.com, corentin.chary@gmail.com On Tue, Nov 20, 2012 at 10:21:58AM +0100, Tim Hardeck wrote: > This patch adds basic Websockets version 13 - RFC 6455 - support to QEMU > VNC. Binary encoding support on the client side is required. > > Because of the GnuTLS requirement the Websockets implementation is > optional (--enable-vnc-ws). > > To activate Websockets during runtime the VNC option "websocket" is > used, for example "-vnc :0,websocket" would activate Websockets. > The port for Websockets connections is (5700 + display) so if QEMU VNC > is started with :0 the websockets port would be 5700. We need to be able to specify an explicit port number for the websockets listen address, separately from the main VNC port number. This automatic pick of websockets port might be nice for a user starting QEMU manually, but for management apps we need full direct control. > Changes to v1 > * removed automatic websocket recognition > * added new lwebsock socket on port 5700 + display when the vnc option > "websocket" is passed on > * adapted vnc_connect vnc_listen_read to differ between websocket > * added separate event handler to read the Websocket handshake > > Would it be Ok to use a public domain SHA1 implementation like > tests/tcg/sha1.c and if so where should the sha1.c be stored? > Without the GnuTLS dependency would it be Ok to make Websockets not > optional because this would clean up the patch/code quite a bit? IMHO using gcrypt/GNUTLS is a good thing. Creating our own copies of encryption algorithms in source tree causes significant complications getting QEMU security certified. GNUTLS is a common enough crypto library that I don't think it is unreasonably onerous to expect it to be used for WebSockets. It even works fine on Windows. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|