From 1bcd3e601a2e184295145687a9b8ae8e1ebd46ad Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Tue, 30 Jan 2001 11:52:59 +0000 Subject: changed order of the range and follow-location checks so that a range-request will work even when following a Location: --- lib/transfer.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'lib/transfer.c') diff --git a/lib/transfer.c b/lib/transfer.c index 0099297dc..09c1262cb 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -444,9 +444,14 @@ _Transfer(struct connectdata *c_conn) write a chunk of the body */ if(conn->protocol&PROT_HTTP) { /* HTTP-only checks */ - if (data->resume_from && - !content_range && - (data->httpreq==HTTPREQ_GET)) { + if (data->newurl) { + /* abort after the headers if "follow Location" is set */ + infof (data, "Follow to new URL: %s\n", data->newurl); + return CURLE_OK; + } + else if (data->resume_from && + !content_range && + (data->httpreq==HTTPREQ_GET)) { /* we wanted to resume a download, although the server doesn't seem to support this and we did this with a GET (if it wasn't a GET we did a POST or PUT resume) */ @@ -454,11 +459,6 @@ _Transfer(struct connectdata *c_conn) "byte ranges. Cannot resume."); return CURLE_HTTP_RANGE_ERROR; } - else if (data->newurl) { - /* abort after the headers if "follow Location" is set */ - infof (data, "Follow to new URL: %s\n", data->newurl); - return CURLE_OK; - } else if(data->timecondition && !data->range) { /* A time condition has been set AND no ranges have been requested. This seems to be what chapter 13.3.4 of -- cgit v1.2.3