View | Details | Raw Unified | Return to bug 17110
Collapse All | Expand All

(-)lib/multi.c (-3 / +11 lines)
Lines 1313-1319 Link Here
1313
        checkPendPipeline(easy->easy_conn);
1313
        checkPendPipeline(easy->easy_conn);
1314
1314
1315
        /* When we follow redirects, must to go back to the CONNECT state */
1315
        /* When we follow redirects, must to go back to the CONNECT state */
1316
        if(easy->easy_handle->req.newurl || retry) {
1316
        if(easy->easy_handle->req.newurl ||retry) {
1317
          if(!retry) {
1317
          if(!retry) {
1318
            /* if the URL is a follow-location and not just a retried request
1318
            /* if the URL is a follow-location and not just a retried request
1319
               then figure out the URL here */
1319
               then figure out the URL here */
Lines 1327-1334 Link Here
1327
          if(easy->result == CURLE_OK)
1327
          if(easy->result == CURLE_OK)
1328
            easy->result = Curl_follow(easy->easy_handle, newurl, follow);
1328
            easy->result = Curl_follow(easy->easy_handle, newurl, follow);
1329
          if(CURLE_OK == easy->result) {
1329
          if(CURLE_OK == easy->result) {
1330
            multistate(easy, CURLM_STATE_CONNECT);
1330
                multistate(easy, CURLM_STATE_CONNECT);
1331
            result = CURLM_CALL_MULTI_PERFORM;
1331
                result = CURLM_CALL_MULTI_PERFORM;
1332
          }
1332
          }
1333
          else
1333
          else
1334
            /* Since we "took it", we are in charge of freeing this on
1334
            /* Since we "took it", we are in charge of freeing this on
Lines 1337-1342 Link Here
1337
        }
1337
        }
1338
        else {
1338
        else {
1339
          /* after the transfer is done, go DONE */
1339
          /* after the transfer is done, go DONE */
1340
          if (easy->easy_handle->req.location) {
1341
            newurl = easy->easy_handle->req.location;
1342
            easy->easy_handle->req.location = NULL;
1343
            easy->result = Curl_follow(easy->easy_handle, newurl, FOLLOW_FAKE);
1344
            if (easy->result != CURLE_OK)
1345
                free(newurl);
1346
                break;
1347
          }
1340
          multistate(easy, CURLM_STATE_DONE);
1348
          multistate(easy, CURLM_STATE_DONE);
1341
          result = CURLM_CALL_MULTI_PERFORM;
1349
          result = CURLM_CALL_MULTI_PERFORM;
1342
        }
1350
        }

Return to bug 17110