diff --git a/docs/libcurl/opts/CURLOPT_SOCKS_PROXY.3 b/docs/libcurl/opts/CURLOPT_SOCKS_PROXY.3 index aad3d40a56..d3e6905bf3 100644 --- a/docs/libcurl/opts/CURLOPT_SOCKS_PROXY.3 +++ b/docs/libcurl/opts/CURLOPT_SOCKS_PROXY.3 @@ -22,16 +22,16 @@ .\" .TH CURLOPT_SOCKS_PROXY 3 "16 Nov 2016" "libcurl 7.52.0" "curl_easy_setopt options" .SH NAME -CURLOPT_SOCKS_PROXY \- set socks proxy to use +CURLOPT_SOCKS_PROXY \- set SOCKS proxy to use .SH SYNOPSIS #include CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS_PROXY, char *proxy); .SH DESCRIPTION -TODO: Make this text specific to HTTPS proxy. (Added in 7.XXX) -Set the \fIproxy\fP to use for the upcoming request. The parameter should be a -char * to a zero terminated string holding the host name or dotted numerical -IP address. A numerical IPv6 address must be written within [brackets]. +Set the SOCKS \fIproxy\fP to use for the upcoming request. The parameter +should be a char * to a zero terminated string holding the host name or dotted +numerical IP address. A numerical IPv6 address must be written within +[brackets]. To specify port number in this string, append :[port] to the end of the host name. The proxy's port number may optionally be specified with the separate @@ -42,29 +42,12 @@ The proxy string may be prefixed with [scheme]:// to specify which kind of proxy is used. Use socks4://, socks4a://, socks5:// or socks5h:// (the last one to enable socks5 and asking the proxy to do the resolving, also known as \fICURLPROXY_SOCKS5_HOSTNAME\fP type) to request the specific SOCKS version to -be used. No scheme specified or http://, will be treated as HTTP proxies. - -Without a scheme prefix, \fICURLOPT_PROXYTYPE(3)\fP can be used to specify -which kind of proxy the string identifies. - -When you tell the library to use a HTTP proxy, libcurl will transparently -convert operations to HTTP even if you specify an FTP URL etc. This may have -an impact on what other features of the library you can use, such as -\fICURLOPT_QUOTE(3)\fP and similar FTP specifics that don't work unless you -tunnel through the HTTP proxy. Such tunneling is activated with -\fICURLOPT_HTTPPROXYTUNNEL(3)\fP. - -libcurl respects the environment variables \fBhttp_proxy\fP, \fBftp_proxy\fP, -\fBall_proxy\fP etc, if any of those are set. The \fICURLOPT_PROXY(3)\fP -option does however override any possibly set environment variables. +be used. Otherwise SOCKS4 is used as default. Setting the proxy string to "" (an empty string) will explicitly disable the use of a proxy, even if there is an environment variable set for it. - -A proxy host string can also include protocol scheme (http://) and embedded -user + password. .SH DEFAULT -Default is NULL, meaning no proxy is used. +Default is NULL, meaning no socks proxy is used. When you set a host name to use, do not assume that there's any particular single port number used widely for proxies. Specify it! @@ -73,16 +56,10 @@ All except file://. Note that some protocols don't do very well over proxy. .SH EXAMPLE TODO .SH AVAILABILITY -Since 7.14.1 the proxy environment variable names can include the protocol -scheme. - -Since 7.21.7 the proxy string supports the socks protocols as "schemes". - -Since 7.50.2, unsupported schemes in proxy strings cause libcurl to return -error. +Added in 7.52.0 .SH RETURN VALUE Returns CURLE_OK if proxies are supported, CURLE_UNKNOWN_OPTION if not, or CURLE_OUT_OF_MEMORY if there was insufficient heap space. .SH "SEE ALSO" -.BR CURLOPT_PROXYPORT "(3), " CURLOPT_HTTPPROXYTUNNEL "(3), " -.BR CURLOPT_PROXYTYPE "(3)" +.BR CURLOPT_PROXY "(3), " CURLOPT_HTTPPROXYTUNNEL "(3), " + diff --git a/docs/libcurl/opts/CURLOPT_SOCKS_PROXYTYPE.3 b/docs/libcurl/opts/CURLOPT_SOCKS_PROXYTYPE.3 deleted file mode 100644 index 2100240670..0000000000 --- a/docs/libcurl/opts/CURLOPT_SOCKS_PROXYTYPE.3 +++ /dev/null @@ -1,55 +0,0 @@ -.\" ************************************************************************** -.\" * _ _ ____ _ -.\" * Project ___| | | | _ \| | -.\" * / __| | | | |_) | | -.\" * | (__| |_| | _ <| |___ -.\" * \___|\___/|_| \_\_____| -.\" * -.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, , et al. -.\" * -.\" * This software is licensed as described in the file COPYING, which -.\" * you should have received as part of this distribution. The terms -.\" * are also available at https://curl.haxx.se/docs/copyright.html. -.\" * -.\" * You may opt to use, copy, modify, merge, publish, distribute and/or sell -.\" * copies of the Software, and permit persons to whom the Software is -.\" * furnished to do so, under the terms of the COPYING file. -.\" * -.\" * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY -.\" * KIND, either express or implied. -.\" * -.\" ************************************************************************** -.\" -.TH CURLOPT_SOCKS_PROXYTYPE 3 "16 Nov 2016" "libcurl 7.52.0" "curl_easy_setopt options" -.SH NAME -CURLOPT_SOCKS_PROXYTYPE \- socks proxy protocol type -.SH SYNOPSIS -#include - -CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS_PROXYTYPE, long type); -.SH DESCRIPTION -TODO: Make this text specific to HTTPS proxy. (Added in 7.XXX) -Pass a long with this option to set type of the proxy. Available options for -this are \fICURLPROXY_HTTP\fP, \fICURLPROXY_HTTP_1_0\fP -\fICURLPROXY_SOCKS4\fP, \fICURLPROXY_SOCKS5\fP, \fICURLPROXY_SOCKS4A\fP and -\fICURLPROXY_SOCKS5_HOSTNAME\fP. The HTTP type is default. - -If you set \fICURLOPT_PROXYTYPE(3)\fP to \fICURLPROXY_HTTP_1_0\fP, it will -only affect how libcurl speaks to a proxy when CONNECT is used. The HTTP -version used for "regular" HTTP requests is instead controlled with -\fICURLOPT_HTTP_VERSION(3)\fP. - -Often it is more convenient to specify the proxy type with the scheme part of -the \fICURLOPT_PROXY(3)\fP string. -.SH DEFAULT -CURLPROXY_HTTP -.SH PROTOCOLS -Most -.SH EXAMPLE -TODO -.SH AVAILABILITY -Always -.SH RETURN VALUE -Returns CURLE_OK -.SH "SEE ALSO" -.BR CURLOPT_PROXY "(3), " CURLOPT_PROXYPORT "(3), " diff --git a/docs/libcurl/opts/Makefile.am b/docs/libcurl/opts/Makefile.am index 9dbecc3d77..9a9cba1d80 100644 --- a/docs/libcurl/opts/Makefile.am +++ b/docs/libcurl/opts/Makefile.am @@ -270,7 +270,6 @@ man_MANS = \ CURLOPT_SOCKS5_GSSAPI_NEC.3 \ CURLOPT_SOCKS5_GSSAPI_SERVICE.3 \ CURLOPT_SOCKS_PROXY.3 \ - CURLOPT_SOCKS_PROXYTYPE.3 \ CURLOPT_SSH_AUTH_TYPES.3 \ CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.3 \ CURLOPT_SSH_KEYDATA.3 \ @@ -581,7 +580,6 @@ HTMLPAGES = \ CURLOPT_SOCKS5_GSSAPI_NEC.html \ CURLOPT_SOCKS5_GSSAPI_SERVICE.html \ CURLOPT_SOCKS_PROXY.html \ - CURLOPT_SOCKS_PROXYTYPE.html \ CURLOPT_SSH_AUTH_TYPES.html \ CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.html \ CURLOPT_SSH_KEYDATA.html \ @@ -892,7 +890,6 @@ PDFPAGES = \ CURLOPT_SOCKS5_GSSAPI_NEC.pdf \ CURLOPT_SOCKS5_GSSAPI_SERVICE.pdf \ CURLOPT_SOCKS_PROXY.pdf \ - CURLOPT_SOCKS_PROXYTYPE.pdf \ CURLOPT_SSH_AUTH_TYPES.pdf \ CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.pdf \ CURLOPT_SSH_KEYDATA.pdf \ diff --git a/include/curl/curl.h b/include/curl/curl.h index 06bb7cb9bd..f5dd65d496 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -1766,13 +1766,9 @@ typedef enum { /* Name of socks proxy to use. */ CINIT(SOCKS_PROXY, STRINGPOINT, 262), - /* indicates type of proxy. accepted values are CURLPROXY_SOCKS4, - CURLPROXY_SOCKS4A and CURLPROXY_SOCKS5. */ - CINIT(SOCKS_PROXYTYPE, LONG, 263), - /* The public key in DER form used to validate the proxy public key this option is used only if PROXY_SSL_VERIFYPEER is true */ - CINIT(PROXY_PINNEDPUBLICKEY, STRINGPOINT, 264), + CINIT(PROXY_PINNEDPUBLICKEY, STRINGPOINT, 263), CURLOPT_LASTENTRY /* the last unused */ } CURLoption; diff --git a/lib/url.c b/lib/url.c index 45262d8970..f975b0d69e 100644 --- a/lib/url.c +++ b/lib/url.c @@ -1490,13 +1490,6 @@ CURLcode Curl_setopt(struct Curl_easy *data, CURLoption option, data->set.proxytype = (curl_proxytype)va_arg(param, long); break; - case CURLOPT_SOCKS_PROXYTYPE: - /* - * Set proxy type. SOCKS4/SOCKS4a/SOCKS5/SOCKS5_HOSTNAME - */ - data->set.socks_proxytype = (curl_proxytype)va_arg(param, long); - break; - case CURLOPT_PROXY_TRANSFER_MODE: /* * set transfer mode (;type=) when doing FTP via an HTTP proxy @@ -4109,7 +4102,7 @@ static struct connectdata *allocate_conn(struct Curl_easy *data) and the Curl_easy */ conn->http_proxy.proxytype = data->set.proxytype; - conn->socks_proxy.proxytype = data->set.socks_proxytype; + conn->socks_proxy.proxytype = CURLPROXY_SOCKS4; #ifdef CURL_DISABLE_PROXY diff --git a/src/tool_operate.c b/src/tool_operate.c index 2c9b4465ae..504c20769c 100644 --- a/src/tool_operate.c +++ b/src/tool_operate.c @@ -867,11 +867,9 @@ static CURLcode operate_do(struct GlobalConfig *global, if(config->proxy) my_setopt_enum(curl, CURLOPT_PROXYTYPE, (long)config->proxyver); - /* new in libcurl 7.10 */ + /* new in libcurl 7.52.0 */ if(config->socksproxy) { my_setopt_str(curl, CURLOPT_SOCKS_PROXY, config->socksproxy); - my_setopt_enum(curl, CURLOPT_SOCKS_PROXYTYPE, - (long)config->socksver); } /* new in libcurl 7.10.6 */