Commit 1bcd3e60 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

changed order of the range and follow-location checks so that a range-request

will work even when following a Location:
parent e721f85c
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -444,7 +444,12 @@ _Transfer(struct connectdata *c_conn)
                 write a chunk of the body */
              if(conn->protocol&PROT_HTTP) {
                /* HTTP-only checks */
                if (data->resume_from &&
                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
@@ -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