.\"
.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 <curl/curl.h>
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
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!
.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), "
+
+++ /dev/null
-.\" **************************************************************************
-.\" * _ _ ____ _
-.\" * Project ___| | | | _ \| |
-.\" * / __| | | | |_) | |
-.\" * | (__| |_| | _ <| |___
-.\" * \___|\___/|_| \_\_____|
-.\" *
-.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, 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 <curl/curl.h>
-
-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), "
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 \
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 \
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 \
/* 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;
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=<a|i>) when doing FTP via an HTTP proxy
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
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 */