dwww Home | Manual pages | Find package

CURLOPT_PRE_PROXY(3)       curl_easy_setopt options       CURLOPT_PRE_PROXY(3)

NAME
       CURLOPT_PRE_PROXY - pre-proxy host to use

SYNOPSIS
       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PRE_PROXY, char *preproxy);

DESCRIPTION
       Set  the preproxy to use for the upcoming request. The parameter should
       be a char * to a null-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 CURLOPT_PROXYPORT(3). If not  specified,  libcurl  will
       default to using port 1080 for proxies.

       A  pre  proxy is a SOCKS proxy that curl connects to before it connects
       to the HTTP(S) proxy specified in the  CURLOPT_PROXY  option.  The  pre
       proxy can only be a SOCKS proxy.

       The  pre  proxy  string  should be prefixed with [scheme]:// to specify
       which kind of socks 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 CURLPROXY_SOCKS5_HOSTNAME type) to request
       the  specific SOCKS version to be used. Otherwise SOCKS4 is used as de-
       fault.

       Setting the pre proxy string to "" (an empty  string)  will  explicitly
       disable the use of a pre proxy.

       The  application  does not have to keep the string around after setting
       this option.

DEFAULT
       Default is NULL, meaning no pre proxy is used.

       When you set a host name to use, do not assume that there's any partic-
       ular single port number used widely for proxies. Specify it!

PROTOCOLS
       All  except  file://.  Note  that  some protocols do not work well over
       proxy.

EXAMPLE
       CURL *curl = curl_easy_init();
       if(curl) {
         curl_easy_setopt(curl, CURLOPT_URL, "https://example.com/file.txt");
         curl_easy_setopt(curl, CURLOPT_PREPROXY, "socks4://socks-proxy:1080");
         curl_easy_setopt(curl, CURLOPT_PROXY, "http://proxy:80");
         curl_easy_perform(curl);
       }

AVAILABILITY
       Added in 7.52.0

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.

SEE ALSO
       CURLOPT_PROXY(3), CURLOPT_HTTPPROXYTUNNEL(3),

libcurl 7.81.0                 November 26, 2021          CURLOPT_PRE_PROXY(3)

Generated by dwww version 1.14 on Thu Jan 23 06:25:22 CET 2025.