Loading lib/ftp.c +35 −2 Original line number Diff line number Diff line Loading @@ -2136,7 +2136,7 @@ CURLcode ftp_perform(struct connectdata *conn, if(data->set.timecondition) { if((data->info.filetime > 0) && (data->set.timevalue > 0)) { switch(data->set.timecondition) { case TIMECOND_IFMODSINCE: case CURL_TIMECOND_IFMODSINCE: default: if(data->info.filetime < data->set.timevalue) { infof(data, "The requested document is not new enough\n"); Loading @@ -2144,7 +2144,7 @@ CURLcode ftp_perform(struct connectdata *conn, return CURLE_OK; } break; case TIMECOND_IFUNMODSINCE: case CURL_TIMECOND_IFUNMODSINCE: if(data->info.filetime > data->set.timevalue) { infof(data, "The requested document is not old enough\n"); ftp->no_transfer = TRUE; /* mark this to not transfer data */ Loading Loading @@ -2409,6 +2409,29 @@ CURLcode Curl_ftpsendf(struct connectdata *conn, return res; } /*********************************************************************** * * Curl_ftp_quit() * * This should be called before calling sclose() on an ftp control connection * (not data connections). We should then wait for the response from the * server before returning. The calling code should then try to close the * connection. * */ CURLcode Curl_ftp_quit(struct connectdata *conn) { int nread; int ftpcode; CURLcode ret; ret = Curl_ftpsendf(conn, "%s", "QUIT"); if(CURLE_OK == ret) ret = Curl_GetFTPResponse(&nread, conn, &ftpcode); return ret; } /*********************************************************************** * * Curl_ftp_disconnect() Loading @@ -2420,6 +2443,16 @@ CURLcode Curl_ftp_disconnect(struct connectdata *conn) { struct FTP *ftp= conn->proto.ftp; #if 0 /* We cannot send quit unconditionally. If this connection is stale or bad in any way, sending quit and waiting around here will make the disconnect wait in vain and cause more problems than we need to. Until fixed, we keep this #if 0'ed. To be fixed in 7.11.1. Stay tuned. */ (void)Curl_ftp_quit(conn); /* ignore errors on the QUIT */ #endif /* The FTP session may or may not have been allocated/setup at this point! */ if(ftp) { if(ftp->entrypath) Loading Loading
lib/ftp.c +35 −2 Original line number Diff line number Diff line Loading @@ -2136,7 +2136,7 @@ CURLcode ftp_perform(struct connectdata *conn, if(data->set.timecondition) { if((data->info.filetime > 0) && (data->set.timevalue > 0)) { switch(data->set.timecondition) { case TIMECOND_IFMODSINCE: case CURL_TIMECOND_IFMODSINCE: default: if(data->info.filetime < data->set.timevalue) { infof(data, "The requested document is not new enough\n"); Loading @@ -2144,7 +2144,7 @@ CURLcode ftp_perform(struct connectdata *conn, return CURLE_OK; } break; case TIMECOND_IFUNMODSINCE: case CURL_TIMECOND_IFUNMODSINCE: if(data->info.filetime > data->set.timevalue) { infof(data, "The requested document is not old enough\n"); ftp->no_transfer = TRUE; /* mark this to not transfer data */ Loading Loading @@ -2409,6 +2409,29 @@ CURLcode Curl_ftpsendf(struct connectdata *conn, return res; } /*********************************************************************** * * Curl_ftp_quit() * * This should be called before calling sclose() on an ftp control connection * (not data connections). We should then wait for the response from the * server before returning. The calling code should then try to close the * connection. * */ CURLcode Curl_ftp_quit(struct connectdata *conn) { int nread; int ftpcode; CURLcode ret; ret = Curl_ftpsendf(conn, "%s", "QUIT"); if(CURLE_OK == ret) ret = Curl_GetFTPResponse(&nread, conn, &ftpcode); return ret; } /*********************************************************************** * * Curl_ftp_disconnect() Loading @@ -2420,6 +2443,16 @@ CURLcode Curl_ftp_disconnect(struct connectdata *conn) { struct FTP *ftp= conn->proto.ftp; #if 0 /* We cannot send quit unconditionally. If this connection is stale or bad in any way, sending quit and waiting around here will make the disconnect wait in vain and cause more problems than we need to. Until fixed, we keep this #if 0'ed. To be fixed in 7.11.1. Stay tuned. */ (void)Curl_ftp_quit(conn); /* ignore errors on the QUIT */ #endif /* The FTP session may or may not have been allocated/setup at this point! */ if(ftp) { if(ftp->entrypath) Loading