]> source.dussan.org Git - tigervnc.git/commitdiff
Harmonise new client handlers
authorPierre Ossman <ossman@cendio.se>
Thu, 19 Jan 2017 14:23:05 +0000 (15:23 +0100)
committerPierre Ossman <ossman@cendio.se>
Thu, 19 Jan 2017 14:23:05 +0000 (15:23 +0100)
One was missing a call to register the fd with the X server, and
one forgot to set it to non-blocking. One result of this was a crash
when hitting the blacklist.

unix/xserver/hw/vnc/XserverDesktop.cc

index f6e6a7fe7869a1405e03fed7e9d08ddab2d4f273..1428791eb735f54315e043837c4c1d84f5a163dc 100644 (file)
@@ -443,6 +443,7 @@ bool XserverDesktop::handleListenerEvent(int fd,
   sock->outStream().setBlocking(false);
   vlog.debug("new client, sock %d", sock->getFd());
   sockserv->addSocket(sock);
+  vncSetNotifyFd(sock->getFd(), screenIndex, true, false);
 
   return true;
 }
@@ -536,6 +537,7 @@ void XserverDesktop::blockHandler(int* timeout)
 void XserverDesktop::addClient(Socket* sock, bool reverse)
 {
   vlog.debug("new client, sock %d reverse %d",sock->getFd(),reverse);
+  sock->outStream().setBlocking(false);
   server->addSocket(sock, reverse);
   vncSetNotifyFd(sock->getFd(), screenIndex, true, false);
 }