[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdelibs/kioslave/ftp
From:       Dirk Mueller <mueller () kde ! org>
Date:       2004-01-18 11:00:05
Message-ID: 20040118110005.881F4906D () office ! kde ! org
[Download RAW message or body]

CVS commit by mueller: 

handle signals in select() loop


  M +17 -13    ftp.cc   1.193


--- kdelibs/kioslave/ftp/ftp.cc  #1.192:1.193
@@ -1034,4 +1034,5 @@ int Ftp::ftpAcceptConnect()
   fd_set mask;
 
+  for ( ;; ) {
   FD_ZERO(&mask);
   FD_SET(sDatal,&mask);
@@ -1039,9 +1040,12 @@ int Ftp::ftpAcceptConnect()
   if ( m_bPasv )
     return sDatal;
-  if ( KSocks::self()->select( sDatal + 1, &mask, NULL, NULL, 0L ) == 0)
-  {
+    int r = KSocks::self()->select( sDatal + 1, &mask, NULL, NULL, 0L );
+    if ( r == 0 || ( r < 0 && errno != EINTR && errno != EAGAIN )) {
     ::close( sDatal );
     return -2;
   }
+    if ( r > 0 )
+        break;
+  }
 
   l = sizeof(addr);
@@ -1664,5 +1668,5 @@ void Ftp::listDir( const KURL &url )
     realURL.setPath( m_initialPath );
     kdDebug(7102) << "REDIRECTION to " << realURL.prettyURL() << endl;
-    redirection( realURL.url() );
+    redirection( realURL );
     path = m_initialPath;
     finished();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic