diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/url.c | 8 | ||||
-rw-r--r-- | lib/version.c | 3 | ||||
-rw-r--r-- | lib/vtls/gskit.h | 3 | ||||
-rw-r--r-- | lib/vtls/gtls.h | 3 | ||||
-rw-r--r-- | lib/vtls/nssg.h | 3 | ||||
-rw-r--r-- | lib/vtls/openssl.h | 3 | ||||
-rw-r--r-- | lib/vtls/vtls.c | 3 |
7 files changed, 24 insertions, 2 deletions
@@ -4924,6 +4924,14 @@ static CURLcode parse_proxy(struct Curl_easy *data, else proxyptr = proxy; /* No xxx:// head: It's a HTTP proxy */ +#ifndef HTTPS_PROXY_SUPPORT + if(proxytype == CURLPROXY_HTTPS) { + failf(data, "Unsupported proxy \'%s\'" + ", libcurl is built without the HTTPS-proxy support.", proxy); + return CURLE_NOT_BUILT_IN; + } +#endif + sockstype = proxytype == CURLPROXY_SOCKS5_HOSTNAME || proxytype == CURLPROXY_SOCKS5 || proxytype == CURLPROXY_SOCKS4A || diff --git a/lib/version.c b/lib/version.c index a434a6287..3d1776813 100644 --- a/lib/version.c +++ b/lib/version.c @@ -324,6 +324,9 @@ static curl_version_info_data version_info = { #if defined(USE_LIBPSL) | CURL_VERSION_PSL #endif +#if defined(HTTPS_PROXY_SUPPORT) + | CURL_VERSION_HTTPS_PROXY +#endif , NULL, /* ssl_version */ 0, /* ssl_version_num, this is kept at zero */ diff --git a/lib/vtls/gskit.h b/lib/vtls/gskit.h index e258a29f1..229759217 100644 --- a/lib/vtls/gskit.h +++ b/lib/vtls/gskit.h @@ -41,6 +41,9 @@ int Curl_gskit_shutdown(struct connectdata *conn, int sockindex); size_t Curl_gskit_version(char *buffer, size_t size); int Curl_gskit_check_cxn(struct connectdata *cxn); +/* Support HTTPS-proxy */ +/* TODO: add '#define HTTPS_PROXY_SUPPORT 1' and fix test #1014 (if need) */ + /* Set the API backend definition to GSKit */ #define CURL_SSL_BACKEND CURLSSLBACKEND_GSKIT diff --git a/lib/vtls/gtls.h b/lib/vtls/gtls.h index e3d58531f..65312017e 100644 --- a/lib/vtls/gtls.h +++ b/lib/vtls/gtls.h @@ -57,6 +57,9 @@ void Curl_gtls_sha256sum(const unsigned char *tmp, /* input */ bool Curl_gtls_cert_status_request(void); +/* Support HTTPS-proxy */ +#define HTTPS_PROXY_SUPPORT 1 + /* Set the API backend definition to GnuTLS */ #define CURL_SSL_BACKEND CURLSSLBACKEND_GNUTLS diff --git a/lib/vtls/nssg.h b/lib/vtls/nssg.h index ac67e6ab7..fd94003fb 100644 --- a/lib/vtls/nssg.h +++ b/lib/vtls/nssg.h @@ -65,6 +65,9 @@ bool Curl_nss_cert_status_request(void); bool Curl_nss_false_start(void); +/* Support HTTPS-proxy */ +#define HTTPS_PROXY_SUPPORT 1 + /* Set the API backend definition to NSS */ #define CURL_SSL_BACKEND CURLSSLBACKEND_NSS diff --git a/lib/vtls/openssl.h b/lib/vtls/openssl.h index ee18e710f..cff1e909c 100644 --- a/lib/vtls/openssl.h +++ b/lib/vtls/openssl.h @@ -79,6 +79,9 @@ void Curl_ossl_sha256sum(const unsigned char *tmp, /* input */ bool Curl_ossl_cert_status_request(void); +/* Support HTTPS-proxy */ +#define HTTPS_PROXY_SUPPORT 1 + /* Set the API backend definition to OpenSSL */ #define CURL_SSL_BACKEND CURLSSLBACKEND_OPENSSL diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index e8fd3cf43..b808e1c5f 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -187,8 +187,7 @@ ssl_connect_init_proxy(struct connectdata *conn, int sockindex) DEBUGASSERT(conn->bits.proxy_ssl_connected[sockindex]); if(ssl_connection_complete == conn->ssl[sockindex].state && !conn->proxy_ssl[sockindex].use) { -#if defined(USE_OPENSSL) || defined(USE_GNUTLS) || defined(USE_NSS) || \ - defined(USE_GSKIT) +#if defined(HTTPS_PROXY_SUPPORT) conn->proxy_ssl[sockindex] = conn->ssl[sockindex]; memset(&conn->ssl[sockindex], 0, sizeof(conn->ssl[sockindex])); #else |