Skip to content

Commit

Permalink
use the proper timecond defines, not the obsolete ones I've removed! ;-)
Browse files Browse the repository at this point in the history
The initial QUIT-sending code is added, but not yet used due to the issues
previously mentioned on the mailing list.
  • Loading branch information
bagder committed Jan 21, 2004
1 parent e262a72 commit 5e2fcc1
Showing 1 changed file with 35 additions and 2 deletions.
37 changes: 35 additions & 2 deletions lib/ftp.c
Expand Up @@ -2136,15 +2136,15 @@ 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");
ftp->no_transfer = TRUE; /* mark this to not transfer data */
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 */
Expand Down Expand Up @@ -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()
Expand All @@ -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)
Expand Down

0 comments on commit 5e2fcc1

Please sign in to comment.