]> source.dussan.org Git - tigervnc.git/commitdiff
Get rid of SocketServer::checkTimeouts() 762/head
authorPierre Ossman <ossman@cendio.se>
Fri, 26 Oct 2018 13:54:56 +0000 (15:54 +0200)
committerPierre Ossman <ossman@cendio.se>
Fri, 9 Nov 2018 16:25:23 +0000 (17:25 +0100)
It doesn't belong on each socket server object as timers are global.
Force implementations to call the Timer system directly instead,
avoiding any middle men.

common/network/Socket.h
common/rfb/VNCServerST.cxx
common/rfb/VNCServerST.h
unix/x0vncserver/x0vncserver.cxx
unix/xserver/hw/vnc/XserverDesktop.cc
win/rfb_win32/SocketManager.cxx

index c7d06c3e8c897b99d798f155463477bdbec9241c..d38feba4deda74d72a31978ec2ca7cbf2d49e3ed 100644 (file)
@@ -144,13 +144,6 @@ namespace network {
     //   This is only necessary if the Socket has been put in non-blocking
     //   mode and needs this callback to flush the buffer.
     virtual void processSocketWriteEvent(network::Socket* sock) = 0;
-
-    // checkTimeouts() allows the server to check socket timeouts, etc.  The
-    //   return value is the number of milliseconds to wait before
-    //   checkTimeouts() should be called again.  If this number is zero then
-    //   there is no timeout and checkTimeouts() should be called the next time
-    //   an event occurs.
-    virtual int checkTimeouts() = 0;
   };
 
 }
index c673445841755f866f0255c7a9bca74d918fbe8f..40580b16f9f67b874420b5f941e3cc8ec8b85c5e 100644 (file)
@@ -224,16 +224,6 @@ void VNCServerST::processSocketWriteEvent(network::Socket* sock)
   throw rdr::Exception("invalid Socket in VNCServerST");
 }
 
-int VNCServerST::checkTimeouts()
-{
-  int timeout = 0;
-
-  soonestTimeout(&timeout, Timer::checkTimeouts());
-  
-  return timeout;
-}
-
-
 // VNCServer methods
 
 void VNCServerST::blockUpdates()
index a994c942f7025dfa09aa439df14c58b861af9891..43a3bb95a446d6df12e85c44de99f77ccdeae805 100644 (file)
@@ -76,12 +76,6 @@ namespace rfb {
     //   Flush pending data from the Socket on to the network.
     virtual void processSocketWriteEvent(network::Socket* sock);
 
-    // checkTimeouts
-    //   Returns the number of milliseconds left until the next idle timeout
-    //   expires.  If any have already expired, the corresponding connections
-    //   are closed.  Zero is returned if there is no idle timeout.
-    virtual int checkTimeouts();
-
 
     // Methods overridden from VNCServer
 
index 4c8f0bf94d27dd273173c280fd2acd6d919b126b..5f6c9f45603bbebea21b03028ee4f26454597045 100644 (file)
@@ -322,7 +322,7 @@ int main(int argc, char** argv)
         }
       }
 
-      soonestTimeout(&wait_ms, server.checkTimeouts());
+      soonestTimeout(&wait_ms, Timer::checkTimeouts());
 
       tv.tv_sec = wait_ms / 1000;
       tv.tv_usec = (wait_ms % 1000) * 1000;
@@ -357,7 +357,7 @@ int main(int argc, char** argv)
         }
       }
 
-      server.checkTimeouts();
+      Timer::checkTimeouts();
 
       // Client list could have been changed.
       server.getSockets(&sockets);
index d4891c3a080f5e39b2a4fa440bcaec0e689a9b74..d8b3a4d45b5bb3a14651b6cd649cd3abf7358d03 100644 (file)
@@ -368,7 +368,7 @@ void XserverDesktop::blockHandler(int* timeout)
     }
 
     // Trigger timers and check when the next will expire
-    int nextTimeout = server->checkTimeouts();
+    int nextTimeout = Timer::checkTimeouts();
     if (nextTimeout > 0 && (*timeout == -1 || nextTimeout < *timeout))
       *timeout = nextTimeout;
   } catch (rdr::Exception& e) {
index aa469e53685bc97eefeeda3a5590ddaa6c874a30..0092d94dd02a8099e8b09e7843dd221b6674487c 100644 (file)
@@ -21,6 +21,7 @@
 #include <winsock2.h>
 #include <list>
 #include <rfb/LogWriter.h>
+#include <rfb/Timer.h>
 #include <rfb_win32/SocketManager.h>
 
 using namespace rfb;
@@ -161,7 +162,7 @@ int SocketManager::checkTimeouts() {
 
   std::map<HANDLE,ListenInfo>::iterator i;
   for (i=listeners.begin(); i!=listeners.end(); i++)
-    soonestTimeout(&timeout, i->second.server->checkTimeouts());
+    soonestTimeout(&timeout, Timer::checkTimeouts());
 
   std::list<network::Socket*> shutdownSocks;
   std::map<HANDLE,ConnInfo>::iterator j, j_next;