On Thu, Nov 01, 2007 at 03:49:42PM -0600, Felipe Sanchez wrote: > > > Hi, in older versions of the RFB patch it was possible to connect multiple > VNC clients to the VNC framebuffer. With the current VNC support if I have > one connected client then any other trying to connect will block until the > first one disconnects.
That is correct. I had a patch floating around somewhere to immediately drop the second connection instead of making it block forever, so at least client don't hang. > After a quick look at vnc.c it seems that the incoming connections are > handled via qemu's fd_handler function which I'm guessing is where the > blocking takes place, but I'm not really familiar with qemu's code so any > help would be greatly appreciated :-) The blocking isn't really anything todo with the fd handlers - the event loop can handle this kind of thing just fine. The problem is that the VNC server state is only capable of tracking dirty region updates for a single client at once. To support multiple clients will require some significant refactoring of the server state. Not impossible, but not a quick fix either. It just needs someone motivated enough to poke at it.... > Also: Does qemu's current VNC implementation support tight encoding? No. Raw or hextile. Dan. -- |=- Red Hat, Engineering, Emerging Technologies, Boston. +1 978 392 2496 -=| |=- Perl modules: http://search.cpan.org/~danberr/ -=| |=- Projects: http://freshmeat.net/~danielpb/ -=| |=- GnuPG: 7D3B9505 F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 -=|