Little more robust timeout behavoir
authorArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:53:33 +0000 (16:53 +0000)
committerArch Librarian <arch@canonical.com>
Mon, 20 Sep 2004 16:53:33 +0000 (16:53 +0000)
Author: jgg
Date: 1999-04-17 23:18:11 GMT
Little more robust timeout behavoir

methods/ftp.cc

index 145858f..d72a44e 100644 (file)
@@ -1,6 +1,6 @@
 // -*- mode: cpp; mode: fold -*-
 // Description                                                         /*{{{*/
-// $Id: ftp.cc,v 1.6 1999/04/11 21:23:10 jgg Exp $
+// $Id: ftp.cc,v 1.7 1999/04/17 23:18:11 jgg Exp $
 /* ######################################################################
 
    HTTP Aquire Method - This is the FTP aquire method for APT.
@@ -725,8 +725,11 @@ bool FTPConn::Get(const char *Path,FileFd &To,unsigned long Resume,
    {
       // Wait for some data..
       if (WaitFd(DataFd,false,TimeOut) == false)
-        return _error->Error("Data socket connect timed out");
-    
+      {
+        Close();
+        return _error->Error("Data socket timed out");
+      }
+      
       // Read the data..
       int Res = read(DataFd,Buffer,sizeof(Buffer));
       if (Res == 0)
@@ -740,7 +743,10 @@ bool FTPConn::Get(const char *Path,FileFd &To,unsigned long Resume,
    
       MD5.Add(Buffer,Res);
       if (To.Write(Buffer,Res) == false)
+      {
+        Close();
         return false;
+      }      
    }
 
    // All done