qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Mark McLoughlin <markmc@redhat.com>
To: "Daniel P. Berrange" <berrange@redhat.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>,
	dlaor@redhat.com, qemu-devel@nongnu.org,
	Avi Kivity <avi@redhat.com>, Paolo Bonzini <pbonzini@redhat.com>
Subject: Re: [Qemu-devel] Re: Spice project is now open
Date: Mon, 14 Dec 2009 17:52:13 +0000	[thread overview]
Message-ID: <1260813133.20801.17.camel@blaa> (raw)
In-Reply-To: <20091214151056.GG23733@redhat.com>

On Mon, 2009-12-14 at 15:10 +0000, Daniel P. Berrange wrote:

> The model I had in mind was for the proxy to define a VNC extension that
> allows the client to query what 'desktops' are available and request
> switching between them at any time. The list of desktop would of course
> be authorized per client, and strong authentication is a must for this.
> 
> Any time a switch was made, the RFB protocol would return to the 
> 'ServerInit' state. The idea is that you should not assume a homogenous 
> environment, and you really don't want to fall down to the lowest common
> denominator of extensions, nor have the proxy doing re-encoding on the FB
> data updates. Returning to the ServerInit state allowing the client to
> re-negotiate the set of encodings for the new desktop, and so the proxy 
> can be fairly stateless and while needing to understand the wire protocol,
> it can just pass through the actual FB update data unchanged.
> 
> The combo of the an extension for switching desktops on the fly and the
> encryption state problem doesn't really seem to fit with passing the VNC
> FD over with SCM_RIGHTS.

I actually did a demo of this before, in a slightly different context.

The idea was:

  - vnc client connects to gdm, which spawned a Xvnc(A) server with a
    gdm auth dialog

  - user logs in and if you've an Xvnc server already, it would move 
    the client connection to the original Xvnc(B) server

  - first, gdm would tell the (A) to sync it's state; (A) would stop 
    sending updates, flush its zlib/tls streams and pass gdm the
    current state of the connection - e.g. the protocol version, pixel 
    format, supported encodings etc.

  - then gdm would pass the connection fd using SCM_RIGHTS to the 
    existing Xvnc along with the connection state, and (B) would pick
    up the connection

  - from the users point of view, they were logged instantly back into 
    their old session

Simply flushing the encryption/compression state was the key, but AFAIR
clients needed a trivial fix to allow them to properly handle the server
flushing the stream. The alternative was to somehow get the server to
dump its encryption/compression state and pass that to the existing
server, but that seemed quite difficult when I looked.

SCM_RIGHTS rule ... this was definitely one of the most fun hacks I've
done :-)

Cheers,
Mark.

p.s. - I'm sure I can dig up the code, here are some diffs that look
like older than what I remember finishing:

  http://www.gnome.org/~markmc/code/gdm-vnc-support.patch
  http://www.gnome.org/~markmc/code/test-gnutls-client-close-restart.c
  http://www.gnome.org/~markmc/code/test-gnutls-server-close-restart.c
  http://www.gnome.org/~markmc/code/test-zlib.c
  http://www.gnome.org/~markmc/code/vnc-4.0b5-vncviewer-tls.diff
  http://www.gnome.org/~markmc/code/vnc-managed.patch
  http://www.gnome.org/~markmc/code/vnc-tls.patch

  parent reply	other threads:[~2009-12-14 17:52 UTC|newest]

Thread overview: 126+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1072764996.1548651260538641101.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2009-12-11 13:45 ` [Qemu-devel] Spice project is now open Yaniv Kamay
2009-12-11 14:03   ` Jun Koi
2009-12-11 14:17     ` Yaniv Kamay
2009-12-11 14:09   ` Alexander Graf
2009-12-11 14:28     ` Jun Koi
2009-12-11 16:34       ` Anthony Liguori
2009-12-11 16:52         ` Chris Wright
2009-12-11 17:01           ` Anthony Liguori
2009-12-11 17:31             ` Chris Wright
2009-12-11 17:02         ` Yaniv Kamay
2009-12-11 17:16           ` Anthony Liguori
2009-12-11 17:21             ` Alexander Graf
2009-12-11 17:28               ` Anthony Liguori
2009-12-11 17:18           ` Alexander Graf
2009-12-11 18:49           ` Glauber Costa
2009-12-11 15:57   ` Anthony Liguori
2009-12-11 16:47     ` Yaniv Kamay
2009-12-11 16:57       ` Chris Wright
2009-12-11 17:00       ` Anthony Liguori
2009-12-11 17:38         ` Johannes Schindelin
2009-12-11 18:48     ` Izik Eidus
2009-12-11 18:57       ` Ben Taylor
2009-12-11 19:06         ` Izik Eidus
2009-12-11 19:09         ` Glauber Costa
2009-12-11 19:00       ` Izik Eidus
2009-12-11 19:06         ` Anthony Liguori
2009-12-11 19:22           ` Izik Eidus
2009-12-11 19:37             ` Glauber Costa
2009-12-11 19:07         ` Glauber Costa
2009-12-11 19:24           ` Izik Eidus
2010-01-23 23:39           ` Izik Eidus
2009-12-11 19:03       ` malc
2009-12-11 19:10         ` Izik Eidus
2009-12-11 19:24           ` malc
2009-12-11 19:33             ` Izik Eidus
2009-12-11 19:53               ` malc
2009-12-11 20:26                 ` Izik Eidus
2009-12-13 11:11                   ` Izik Eidus
2009-12-11 19:04       ` Anthony Liguori
2009-12-11 19:15         ` Glauber Costa
2009-12-11 19:25           ` Izik Eidus
2009-12-11 19:42           ` Chris Wright
2009-12-11 19:21         ` Izik Eidus
2009-12-11 19:30           ` Anthony Liguori
2009-12-11 19:39             ` Izik Eidus
2009-12-11 19:51               ` Anthony Liguori
2009-12-11 20:21                 ` Izik Eidus
2009-12-11 20:46                   ` Anthony Liguori
2009-12-11 21:13                     ` Izik Eidus
2009-12-11 21:54                       ` Anthony Liguori
2009-12-11 22:34                         ` Izik Eidus
2009-12-12  0:54                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:34                           ` Anthony Liguori
2009-12-12  9:14                             ` Paolo Bonzini
2009-12-12 15:11                               ` Anthony Liguori
2009-12-12 16:09                                 ` Avi Kivity
2009-12-12 17:28                                   ` Anthony Liguori
2009-12-13 10:18                                     ` Avi Kivity
2009-12-11 22:08                       ` [Qemu-devel] " Alexander Graf
2009-12-11 22:33                         ` Dor Laor
2009-12-11 22:46                         ` Izik Eidus
2009-12-11 23:54                           ` Alexander Graf
2009-12-12  0:14                             ` Izik Eidus
2009-12-12  0:27                               ` Alexander Graf
2009-12-12  0:53                                 ` Izik Eidus
2009-12-12  1:08                                   ` Alexander Graf
2009-12-12  1:33                                     ` Izik Eidus
2009-12-11 23:58                           ` [Qemu-devel] X support for QXL and SPICE Soeren Sandmann
2009-12-12  0:05                             ` [Qemu-devel] " Alexander Graf
2009-12-12  0:31                               ` Izik Eidus
2009-12-12  0:37                                 ` Alexander Graf
2009-12-12  0:08                             ` Izik Eidus
2009-12-12  3:31                             ` [Qemu-devel] " Anthony Liguori
2009-12-12  3:52                               ` Izik Eidus
2009-12-12 15:13                                 ` Anthony Liguori
2009-12-12 15:29                                   ` Izik Eidus
2009-12-12 15:43                                     ` Alexander Graf
2009-12-12 16:01                                       ` Izik Eidus
2009-12-12  6:22                               ` Dave Airlie
2009-12-12 16:39                               ` Soeren Sandmann
2009-12-14 14:07                             ` Gerd Hoffmann
2009-12-14 13:56                         ` [Qemu-devel] Spice project is now open Gerd Hoffmann
2009-12-14 14:33                           ` Anthony Liguori
2009-12-11 20:32                 ` Izik Eidus
2009-12-11 20:48                   ` Anthony Liguori
2009-12-11 21:31                     ` Izik Eidus
2009-12-11 21:58                       ` Anthony Liguori
2009-12-11 22:55                         ` Chris Wright
2009-12-12  3:27                           ` Anthony Liguori
2009-12-12  1:03                         ` [Qemu-devel] " Paolo Bonzini
2009-12-12  3:44                           ` Anthony Liguori
2009-12-12 14:44                             ` Andrea Arcangeli
2009-12-12 15:03                               ` Anthony Liguori
2009-12-12 16:06                                 ` Andrea Arcangeli
2009-12-12 17:40                                   ` Anthony Liguori
2009-12-12 17:48                                     ` Izik Eidus
2009-12-12 19:26                                       ` Anthony Liguori
2009-12-12 19:48                                         ` Izik Eidus
2009-12-12 22:41                                           ` Dor Laor
2009-12-12 22:35                                     ` Dor Laor
2009-12-12 23:46                                       ` Anthony Liguori
2009-12-13  0:23                                         ` Daniel P. Berrange
2009-12-13 10:46                                         ` Avi Kivity
2009-12-14 14:42                                           ` Anthony Liguori
2009-12-14 14:53                                             ` Avi Kivity
2009-12-14 15:17                                               ` Daniel P. Berrange
2009-12-14 15:21                                                 ` Avi Kivity
2009-12-14 15:46                                                   ` Anthony Liguori
2009-12-14 15:10                                             ` Daniel P. Berrange
2009-12-14 15:50                                               ` Anthony Liguori
2009-12-14 16:00                                               ` Avi Kivity
2009-12-14 16:15                                                 ` Anthony Liguori
2009-12-14 17:52                                               ` Mark McLoughlin [this message]
2009-12-13 14:56                                         ` Gildas Le Nadan
2009-12-14 14:40                                       ` Gerd Hoffmann
2009-12-14 14:50                                         ` Anthony Liguori
2009-12-12 23:43                                     ` Andrea Arcangeli
2009-12-12 23:52                                       ` Anthony Liguori
2009-12-13  0:04                                         ` Andrea Arcangeli
2009-12-13  0:18                                           ` Anthony Liguori
2009-12-13  9:10                                             ` Izik Eidus
2009-12-15 13:25                                         ` Soeren Sandmann
2009-12-11 19:25         ` [Qemu-devel] " Mark McLoughlin
2009-12-11 19:38           ` Anthony Liguori
2009-12-11 19:45             ` Mark McLoughlin
2009-12-11 19:53               ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1260813133.20801.17.camel@blaa \
    --to=markmc@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=avi@redhat.com \
    --cc=berrange@redhat.com \
    --cc=dlaor@redhat.com \
    --cc=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).