Commit d7e39428 authored by Maksim Kuzevanov's avatar Maksim Kuzevanov Committed by Daniel Stenberg
Browse files

multi_runsingle: avoid loop in CURLM_STATE_WAITPROXYCONNECT

Closes #703
parent d807fbd6
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -1230,18 +1230,20 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
      /* this is HTTP-specific, but sending CONNECT to a proxy is HTTP... */
      result = Curl_http_connect(data->easy_conn, &protocol_connect);

      rc = CURLM_CALL_MULTI_PERFORM;
      if(data->easy_conn->bits.proxy_connect_closed) {
        rc = CURLM_CALL_MULTI_PERFORM;
        /* connect back to proxy again */
        result = CURLE_OK;
        Curl_done(&data->easy_conn, CURLE_OK, FALSE);
        multistate(data, CURLM_STATE_CONNECT);
      }
      else if(!result) {
        if(data->easy_conn->tunnel_state[FIRSTSOCKET] == TUNNEL_COMPLETE)
        if(data->easy_conn->tunnel_state[FIRSTSOCKET] == TUNNEL_COMPLETE) {
          rc = CURLM_CALL_MULTI_PERFORM;
          /* initiate protocol connect phase */
          multistate(data, CURLM_STATE_SENDPROTOCONNECT);
        }
      }
      break;
#endif