]> granicus.if.org Git - curl/commitdiff
ftp range downloads make us ignore the final status message as the server
authorDaniel Stenberg <daniel@haxx.se>
Tue, 11 Jun 2002 12:35:03 +0000 (12:35 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 11 Jun 2002 12:35:03 +0000 (12:35 +0000)
will most likely treat the download as failed as we might abort it
pre-maturely

lib/ftp.c

index 388bba3999d8531a3aaccfa9e698cd4f18c4205d..b9bf38f34ed1944cde2cc1b56845b587f6488512 100644 (file)
--- a/lib/ftp.c
+++ b/lib/ftp.c
@@ -656,12 +656,13 @@ CURLcode Curl_ftp_done(struct connectdata *conn)
   sclose(conn->secondarysocket);
   conn->secondarysocket = -1;
 
+  /* now let's see what the server says about the transfer we
+     just performed: */
+  nread = Curl_GetFTPResponse(buf, conn, &ftpcode);
+  if(nread < 0)
+    return CURLE_OPERATION_TIMEOUTED;
+
   if(!data->set.no_body && !conn->bits.resume_done) {  
-    /* now let's see what the server says about the transfer we
-       just performed: */
-    nread = Curl_GetFTPResponse(buf, conn, &ftpcode);
-    if(nread < 0)
-      return CURLE_OPERATION_TIMEOUTED;
 
     /* 226 Transfer complete, 250 Requested file action okay, completed. */
     if((ftpcode != 226) && (ftpcode != 250)) {
@@ -1787,6 +1788,7 @@ CURLcode ftp_perform(struct connectdata *conn)
       }
       infof(data, "range-download from %d to %d, totally %d bytes\n",
             from, to, totalsize);
+      conn->bits.resume_done = TRUE; /* to prevent some error due to this */
     }
 
     if((data->set.ftp_list_only) || !ftp->file) {