Commit acc4cf87 authored by Yang Tse's avatar Yang Tse
Browse files

no proxy support if libcurl is built with HTTP disabled

parent 74443426
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -61,7 +61,9 @@ typedef enum {
  CURLM_STATE_CONNECT,     /* resolve/connect has been sent off */
  CURLM_STATE_WAITRESOLVE, /* awaiting the resolve to finalize */
  CURLM_STATE_WAITCONNECT, /* awaiting the connect to finalize */
#ifndef CURL_DISABLE_HTTP
  CURLM_STATE_WAITPROXYCONNECT, /* awaiting proxy CONNECT to finalize */
#endif
  CURLM_STATE_PROTOCONNECT, /* completing the protocol-specific connect
                               phase */
  CURLM_STATE_WAITDO,      /* wait for our turn to send the request */
@@ -875,9 +877,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
          if(protocol_connect)
            multistate(easy, CURLM_STATE_WAITDO);
          else {
#ifndef CURL_DISABLE_HTTP
            if (easy->easy_conn->bits.tunnel_connecting)
              multistate(easy, CURLM_STATE_WAITPROXYCONNECT);
            else
#endif
              multistate(easy, CURLM_STATE_WAITCONNECT);
          }
        }
@@ -908,9 +912,11 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
          if(protocol_connect)
            multistate(easy, CURLM_STATE_DO);
          else {
#ifndef CURL_DISABLE_HTTP
            if (easy->easy_conn->bits.tunnel_connecting)
              multistate(easy, CURLM_STATE_WAITPROXYCONNECT);
            else
#endif
              multistate(easy, CURLM_STATE_WAITCONNECT);
          }
        }
@@ -925,6 +931,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
    }
    break;

#ifndef CURL_DISABLE_HTTP
    case CURLM_STATE_WAITPROXYCONNECT:
      /* this is HTTP-specific, but sending CONNECT to a proxy is HTTP... */
      easy->result = Curl_http_connect(easy->easy_conn, &protocol_connect);
@@ -934,6 +941,7 @@ static CURLMcode multi_runsingle(struct Curl_multi *multi,
          multistate(easy, CURLM_STATE_WAITCONNECT);
      }
      break;
#endif

    case CURLM_STATE_WAITCONNECT:
      /* awaiting a completion of an asynch connect */