myserver-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[myserver-commit] [3038] Don't use blocking sockets for protocols that d


From: Giuseppe Scrivano
Subject: [myserver-commit] [3038] Don't use blocking sockets for protocols that don' t wait for client data to begin the handshake.
Date: Sun, 29 Mar 2009 20:34:33 +0000

Revision: 3038
          http://svn.sv.gnu.org/viewvc/?view=rev&root=myserver&revision=3038
Author:   gscrivano
Date:     2009-03-29 20:34:32 +0000 (Sun, 29 Mar 2009)
Log Message:
-----------
Don't use blocking sockets for protocols that don't wait for client data to 
begin the handshake.

Modified Paths:
--------------
    trunk/myserver/src/server/clients_thread.cpp
    trunk/myserver/src/server/server.cpp

Modified: trunk/myserver/src/server/clients_thread.cpp
===================================================================
--- trunk/myserver/src/server/clients_thread.cpp        2009-03-29 18:03:43 UTC 
(rev 3037)
+++ trunk/myserver/src/server/clients_thread.cpp        2009-03-29 20:34:32 UTC 
(rev 3038)
@@ -315,26 +315,12 @@
   busy = 1;
   dataRead = c->connectionBuffer.getLength();
 
-  bool bSocketChanged = false;
-  if ( strcmp(c->host->getProtocolName(), "ftp") == 0 )
-    {
-      FileHandle sh = c->socket->getHandle();
-      int flags = fcntl((int)sh, F_GETFL, 0);
-      if ( (flags >= 0) && ((flags & O_NONBLOCK) == 0) )
-       {
-         c->socket->setNonBlocking(1);
-         bSocketChanged = true;
-       }
-    }
   err = c->socket->recv(&((char*)(buffer.getBuffer()))[dataRead],
                         MYSERVER_KB(8) - dataRead - 1, 0);
 
   if(err == -1 && !server->deleteConnection(c))
     return 0;
 
-  if ( bSocketChanged )
-       c->socket->setNonBlocking(0);
-
   buffer.setLength(dataRead + err);    
 
   c->setForceControl(0);

Modified: trunk/myserver/src/server/server.cpp
===================================================================
--- trunk/myserver/src/server/server.cpp        2009-03-29 18:03:43 UTC (rev 
3037)
+++ trunk/myserver/src/server/server.cpp        2009-03-29 20:34:32 UTC (rev 
3038)
@@ -1447,6 +1447,7 @@
   {
     newConnection->setScheduled(1);
     newConnection->setForceControl(1);
+    newConnection->socket->setNonBlocking (1);
     connectionsScheduler.addNewReadyConnection(newConnection);
   }
   else





reply via email to

[Prev in Thread] Current Thread [Next in Thread]