DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

CURLOPT_HTTPPROXYTUNNEL(3)





CURLOPT_HTTPPROXYTUNNEL(3curl_easy_setopt optionCURLOPT_HTTPPROXYTUNNEL(3)



NAME

     CURLOPT_HTTPPROXYTUNNEL - tunnel through HTTP proxy


SYNOPSIS

     #include <curl/curl.h>

     CURLcode           curl_easy_setopt(CURL            *handle,
     CURLOPT_HTTPPROXYTUNNEL, long tunnel);


DESCRIPTION

     Set the tunnel parameter to 1L to make  libcurl  tunnel  all
     operations    through    the    HTTP    proxy    (set   with
     CURLOPT_PROXY(3)). There is a big difference between using a
     proxy and to tunnel through it.

     Tunneling means that a HTTP CONNECT request is sent  to  the
     proxy,  asking  it to connect to a remote host on a specific
     port number and then the traffic is just passed through  the
     proxy.  Proxies  tend to white-list specific port numbers it
     allows CONNECT requests to and often only port  80  and  443
     are allowed.

     To suppress proxy CONNECT response headers from  user  call-
     backs use CURLOPT_SUPPRESS_CONNECT_HEADERS(3).

     HTTP proxies can generally only speak HTTP (for obvious rea-
     sons), which makes libcurl convert non-HTTP requests to HTTP
     when using an HTTP proxy without this tunnel option set. For
     example,  asking for an FTP URL and specifying an HTTP proxy
     will make libcurl send an FTP URL in a HTTP GET  request  to
     the proxy. By instead tunneling through the proxy, you avoid
     that conversion (that rarely works through  the  proxy  any-
     way).


DEFAULT

     0


PROTOCOLS

     All network protocols


EXAMPLE

     CURL *curl = curl_easy_init();
     if(curl) {
       curl_easy_setopt(curl, CURLOPT_URL, "ftp://example.com/file.txt");
       curl_easy_setopt(curl, CURLOPT_PROXY, "http://127.0.0.1:80");
       curl_easy_setopt(curl, CURLOPT_HTTPPROXYTUNNEL, 1L);
       curl_easy_perform(curl);
     }


AVAILABILITY

     Always

libcurl 7.58.0      Last change: May 15, 2017                   1


CURLOPT_HTTPPROXYTUNNEL(3curl_easy_setopt optionCURLOPT_HTTPPROXYTUNNEL(3)



RETURN VALUE

     Returns CURLE_OK


SEE ALSO

     CURLOPT_PROXY(3),                      CURLOPT_PROXYTYPE(3),
     CURLOPT_PROXYPORT(3),

libcurl 7.58.0      Last change: May 15, 2017                   2


Man(1) output converted with man2html