aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorOkhin Vasilij <OkhinVI@gmail.com>2016-11-25 16:27:22 +0700
committerDaniel Stenberg <daniel@haxx.se>2016-11-26 17:28:53 +0100
commita4b2f7aafde33c2ab810adb6c3d119c9a0b824e7 (patch)
treeaad341f638c47257403729f86cf54834147431fb /lib
parente38fe7abbf127c50b846a4456835dd2c1be631a5 (diff)
curl_version_info: add CURL_VERSION_HTTPS_PROXY
Closes #1142
Diffstat (limited to 'lib')
-rw-r--r--lib/url.c8
-rw-r--r--lib/version.c3
-rw-r--r--lib/vtls/gskit.h3
-rw-r--r--lib/vtls/gtls.h3
-rw-r--r--lib/vtls/nssg.h3
-rw-r--r--lib/vtls/openssl.h3
-rw-r--r--lib/vtls/vtls.c3
7 files changed, 24 insertions, 2 deletions
diff --git a/lib/url.c b/lib/url.c
index 675d7ee57..c1c3a931b 100644
--- a/lib/url.c
+++ b/lib/url.c
@@ -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