Skip to content

Commit

Permalink
timecond: do not add if-modified-since without timecondition
Browse files Browse the repository at this point in the history
The RTSP code path didn't skip adding the if-modified-since for certain
RTSP code paths, even if CURLOPT_TIMECONDITION was set to
CURL_TIMECOND_NONE.

Also, an unknown non-zero CURLOPT_TIMECONDITION value no longer equals
CURL_TIMECOND_IFMODSINCE.

Bug: http://stackoverflow.com/questions/33903982/curl-timecond-none-doesnt-work-how-to-remove-if-modified-since-header
  • Loading branch information
bagder committed Nov 25, 2015
1 parent 5b96b5e commit cd2b73b
Showing 1 changed file with 12 additions and 7 deletions.
19 changes: 12 additions & 7 deletions lib/http.c
Expand Up @@ -1701,7 +1701,13 @@ CURLcode Curl_add_timecondition(struct SessionHandle *data,
const struct tm *tm;
char *buf = data->state.buffer;
struct tm keeptime;
CURLcode result = Curl_gmtime(data->set.timevalue, &keeptime);
CURLcode result;

if(data->set.timecondition == CURL_TIMECOND_NONE)
/* no condition was asked for */
return CURLE_OK;

result = Curl_gmtime(data->set.timevalue, &keeptime);
if(result) {
failf(data, "Invalid TIMEVALUE");
return result;
Expand All @@ -1727,8 +1733,9 @@ CURLcode Curl_add_timecondition(struct SessionHandle *data,
tm->tm_sec);

switch(data->set.timecondition) {
case CURL_TIMECOND_IFMODSINCE:
default:
break;
case CURL_TIMECOND_IFMODSINCE:
result = Curl_add_bufferf(req_buffer,
"If-Modified-Since: %s\r\n", buf);
break;
Expand Down Expand Up @@ -2394,11 +2401,9 @@ CURLcode Curl_http(struct connectdata *conn, bool *done)
}
#endif

if(data->set.timecondition) {
result = Curl_add_timecondition(data, req_buffer);
if(result)
return result;
}
result = Curl_add_timecondition(data, req_buffer);
if(result)
return result;

result = Curl_add_custom_headers(conn, FALSE, req_buffer);
if(result)
Expand Down

0 comments on commit cd2b73b

Please sign in to comment.