document time fixes

This commit is contained in:
Daniel Stenberg 2000-11-22 13:50:17 +00:00
parent 86d4488cc7
commit b5739b3a97
4 changed files with 29 additions and 4 deletions

View File

@ -659,9 +659,9 @@ CURLcode _ftp(struct connectdata *conn)
} }
} }
if(data->bits.get_filetime) { if(data->bits.get_filetime && ftp->file) {
/* we have requested to get the modified-time of the file, this is yet /* we have requested to get the modified-time of the file, this is yet
again a grey area the MDTM is not kosher RFC959 */ again a grey area as the MDTM is not kosher RFC959 */
ftpsendf(data->firstsocket, conn, "MDTM %s", ftp->file); ftpsendf(data->firstsocket, conn, "MDTM %s", ftp->file);
nread = GetLastResponse(data->firstsocket, buf, conn, &ftpcode); nread = GetLastResponse(data->firstsocket, buf, conn, &ftpcode);
@ -725,10 +725,29 @@ CURLcode _ftp(struct connectdata *conn)
/* get the size from the ascii string: */ /* get the size from the ascii string: */
filesize = atoi(buf+4); filesize = atoi(buf+4);
sprintf(buf, "Content-Length: %d\n", filesize); sprintf(buf, "Content-Length: %d\r\n", filesize);
result = client_write(data, CLIENTWRITE_BOTH, buf, 0); result = client_write(data, CLIENTWRITE_BOTH, buf, 0);
if(result) if(result)
return result; return result;
#ifdef HAVE_STRFTIME
if(data->bits.get_filetime && data->progress.filetime) {
struct tm *tm;
#ifdef HAVE_LOCALTIME_R
struct tm buffer;
tm = (struct tm *)localtime_r(&data->progress.filetime, &buffer);
#else
tm = localtime(&data->progress.filetime);
#endif
/* format: "Tue, 15 Nov 1994 12:45:26 GMT" */
strftime(buf, BUFSIZE-1, "Last-Modified: %a, %d %b %Y %H:%M:%S %Z\r\n",
tm);
result = client_write(data, CLIENTWRITE_BOTH, buf, 0);
if(result)
return result;
}
#endif
return CURLE_OK; return CURLE_OK;
} }

View File

@ -84,6 +84,9 @@ CURLcode curl_getinfo(CURL *curl, CURLINFO info, ...)
case CURLINFO_HTTP_CODE: case CURLINFO_HTTP_CODE:
*param_longp = data->progress.httpcode; *param_longp = data->progress.httpcode;
break; break;
case CURLINFO_FILETIME:
*param_longp = data->progress.filetime;
break;
case CURLINFO_HEADER_SIZE: case CURLINFO_HEADER_SIZE:
*param_longp = data->header_size; *param_longp = data->header_size;
break; break;

View File

@ -395,7 +395,7 @@ _Transfer(struct connectdata *c_conn)
} }
else if(strnequal("Last-Modified:", p, else if(strnequal("Last-Modified:", p,
strlen("Last-Modified:")) && strlen("Last-Modified:")) &&
data->timecondition) { (data->timecondition || data->bits.get_filetime) ) {
time_t secs=time(NULL); time_t secs=time(NULL);
timeofdoc = curl_getdate(p+strlen("Last-Modified:"), &secs); timeofdoc = curl_getdate(p+strlen("Last-Modified:"), &secs);
if(data->bits.get_filetime) if(data->bits.get_filetime)

View File

@ -365,6 +365,9 @@ CURLcode curl_setopt(CURL *curl, CURLoption option, ...)
case CURLOPT_POST: case CURLOPT_POST:
data->bits.http_post = va_arg(param, long)?TRUE:FALSE; data->bits.http_post = va_arg(param, long)?TRUE:FALSE;
break; break;
case CURLOPT_FILETIME:
data->bits.get_filetime = va_arg(param, long)?TRUE:FALSE;
break;
case CURLOPT_FTPLISTONLY: case CURLOPT_FTPLISTONLY:
data->bits.ftp_list_only = va_arg(param, long)?TRUE:FALSE; data->bits.ftp_list_only = va_arg(param, long)?TRUE:FALSE;
break; break;