From: Daniel Stenberg Date: Sat, 27 Jan 2001 18:57:07 +0000 (+0000) Subject: Resume is now done with a Content-Range header instead of a Range header if X-Git-Tag: curl-7_6_1-pre1~11 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3a8210c975fd829f00e43f87974d51e3d6b12410;p=thirdparty%2Fcurl.git Resume is now done with a Content-Range header instead of a Range header if the request isn't GET. Presumably, this is how it should be made. --- diff --git a/lib/http.c b/lib/http.c index a9b9c5d977..7553b613b3 100644 --- a/lib/http.c +++ b/lib/http.c @@ -429,8 +429,21 @@ CURLcode Curl_http(struct connectdata *conn) } } } - if((data->bits.set_range) && !checkheaders(data, "Range:")) { - data->ptr_rangeline = aprintf("Range: bytes=%s\015\012", data->range); + if(data->bits.set_range) { + /* + * A range is selected. We use different headers whether we're downloading + * or uploading and we always let customized headers override our internal + * ones if any such are specified. + */ + if((data->httpreq == HTTPREQ_GET) && + !checkheaders(data, "Range:")) { + data->ptr_rangeline = aprintf("Range: bytes=%s\015\012", data->range); + } + else if((data->httpreq != HTTPREQ_GET) && + !checkheaders(data, "Content-Range:")) { + data->ptr_rangeline = aprintf("Content-Range: bytes=%s\015\012", + data->range); + } } if((data->bits.http_set_referer) && !checkheaders(data, "Referer:")) { data->ptr_ref = aprintf("Referer: %s\015\012", data->referer);