curl-library
[PATCH 2/2] file: add support for CURLOPT_TIMECONDITION
From: Dave Reisner <d_at_falconindy.com>
Date: Sat, 29 Jan 2011 22:41:07 -0500
Date: Sat, 29 Jan 2011 22:41:07 -0500
Signed-off-by: Kamil Dudka <kdudka_at_redhat.com>
---
docs/curl.1 | 6 +++---
docs/libcurl/curl_easy_setopt.3 | 4 ++--
lib/file.c | 7 +++++++
3 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/docs/curl.1 b/docs/curl.1
index ba7f610..093fae5 100644
--- a/docs/curl.1
+++ b/docs/curl.1
@@ -1552,9 +1552,9 @@ not set.
If this option is used several times, the last one will be used.
.IP "-z/--time-cond <date expression>"
-(HTTP/FTP) Request a file that has been modified later than the given time and
-date, or one that has been modified before that time. The date expression can
-be all sorts of date strings or if it doesn't match any internal ones, it
+(HTTP/FTP/FILE) Request a file that has been modified later than the given time
+and date, or one that has been modified before that time. The date expression
+can be all sorts of date strings or if it doesn't match any internal ones, it
tries to get the time from a given file name instead! See the
\fIcurl_getdate(3)\fP man pages for date expression details.
diff --git a/docs/libcurl/curl_easy_setopt.3 b/docs/libcurl/curl_easy_setopt.3
index 95772d2..8c772c6 100644
--- a/docs/libcurl/curl_easy_setopt.3
+++ b/docs/libcurl/curl_easy_setopt.3
@@ -1648,8 +1648,8 @@ given limit. This concerns both FTP and HTTP transfers.
.IP CURLOPT_TIMECONDITION
Pass a long as parameter. This defines how the \fICURLOPT_TIMEVALUE\fP time
value is treated. You can set this parameter to \fICURL_TIMECOND_IFMODSINCE\fP
-or \fICURL_TIMECOND_IFUNMODSINCE\fP. This feature applies to HTTP, FTP, and
-RTSP.
+or \fICURL_TIMECOND_IFUNMODSINCE\fP. This feature applies to HTTP, FTP, RTSP,
+and FILE.
The last modification time of a file is not always known and in such instances
this feature will have no effect even if the given time condition would not
diff --git a/lib/file.c b/lib/file.c
index 8e4ee07..aaeed70 100644
--- a/lib/file.c
+++ b/lib/file.c
@@ -463,6 +463,13 @@ static CURLcode file_do(struct connectdata *conn, bool *done)
fstated = TRUE;
}
+ if(fstated && !data->state.range && data->set.timecondition) {
+ if(!Curl_meets_timecondition(data, data->info.filetime)) {
+ *done = TRUE;
+ return CURLE_OK;
+ }
+ }
+
/* If we have selected NOBODY and HEADER, it means that we only want file
information. Which for FILE can't be much more than the file size and
date. */
--
1.7.3.5
--------------070204090408000103000505
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette: http://curl.haxx.se/mail/etiquette.html
--------------070204090408000103000505--
Received on 2001-09-17