diff options
Diffstat (limited to 'docs/libcurl/opts/GNURLOPT_PROXY.3')
-rw-r--r-- | docs/libcurl/opts/GNURLOPT_PROXY.3 | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/docs/libcurl/opts/GNURLOPT_PROXY.3 b/docs/libcurl/opts/GNURLOPT_PROXY.3 new file mode 100644 index 000000000..6d1175c17 --- /dev/null +++ b/docs/libcurl/opts/GNURLOPT_PROXY.3 @@ -0,0 +1,116 @@ +.\" ************************************************************************** +.\" * _ _ ____ _ +.\" * Project ___| | | | _ \| | +.\" * / __| | | | |_) | | +.\" * | (__| |_| | _ <| |___ +.\" * \___|\___/|_| \_\_____| +.\" * +.\" * Copyright (C) 1998 - 2018, 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 GNURLOPT_PROXY 3 "17 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options" +.SH NAME +CURLOPT_PROXY \- set proxy to use +.SH SYNOPSIS +#include <gnurl/curl.h> + +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROXY, char *proxy); +.SH DESCRIPTION +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]. + +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 +option \fICURLOPT_PROXYPORT(3)\fP. If not specified, libcurl will default to +using port 1080 for proxies. + +The proxy string may be prefixed with [scheme]:// to specify which kind of +proxy is used. + +.RS +.IP http:// +HTTP Proxy. Default when no scheme or proxy type is specified. +.IP https:// +HTTPS Proxy. (Added in 7.52.0 for OpenSSL, GnuTLS and NSS) +.IP socks4:// +SOCKS4 Proxy. +.IP socks4a:// +SOCKS4a Proxy. Proxy resolves URL hostname. +.IP socks5:// +SOCKS5 Proxy. +.IP socks5h:// +SOCKS5 Proxy. Proxy resolves URL hostname. +.RE + +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 an 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. + +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. + +The application does not have to keep the string around after setting this +option. +.SH "Environment variables" +libcurl respects the proxy environment variables named \fBhttp_proxy\fP, +\fBftp_proxy\fP, \fBsftp_proxy\fP etc. If set, libcurl will use the specified +proxy for that URL scheme. So for a "FTP://" URL, the \fBftp_proxy\fP is +considered. \fBall_proxy\fP is used if no protocol specific proxy was set. + +If \fBno_proxy\fP (or \fBNO_PROXY\fP) is set, it is the exact equivalent of +setting the \fICURLOPT_NOPROXY(3)\fP option. + +The \fICURLOPT_PROXY(3)\fP and \fICURLOPT_NOPROXY(3)\fP options override +environment variables. +.SH DEFAULT +Default is NULL, meaning no 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 PROTOCOLS +All except file://. Note that some protocols don't do very well over proxy. +.SH EXAMPLE +.nf +CURL *curl = curl_easy_init(); +if(curl) { + curl_easy_setopt(curl, CURLOPT_URL, "http://example.com/file.txt"); + curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:80"); + curl_easy_perform(curl); +} +.fi +.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. +.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)" |