manpagez: man pages & more
man CURLOPT_SOCKS5_AUTH(3)
Home | html | info | man
CURLOPT_SOCKS5_AUTH(3)     Library Functions Manual     CURLOPT_SOCKS5_AUTH(3)


NAME

       CURLOPT_SOCKS5_AUTH - methods for SOCKS5 proxy authentication


SYNOPSIS

       #include <curl/curl.h>

       CURLcode curl_easy_setopt(CURL *handle, CURLOPT_SOCKS5_AUTH, long bitmask);


DESCRIPTION

       Pass a long as parameter, which is set to a bitmask, to tell libcurl
       which authentication method(s) are allowed for SOCKS5 proxy
       authentication. The only supported flags are CURLAUTH_BASIC, which
       allows username/password authentication, CURLAUTH_GSSAPI, which allows
       GSS-API authentication, and CURLAUTH_NONE, which allows no
       authentication. Set the actual username and password with the
       CURLOPT_PROXYUSERPWD(3) option.

       The specific socks authentication method is an access property, it does
       not change the security context. This means that this option changes
       how the connection and access to the proxy happens when a connection is
       setup, but it does not affect which proxy connections libcurl can
       reuse. libcurl may reuse a connection that was set up with a different
       socks authentication method. Proxy connection reuse still depends on
       other properties matching, such as the protocol, proxy hostname, port
       number, credentials and other settings that affect the connection.


DEFAULT

       CURLAUTH_BASIC | CURLAUTH_GSSAPI


PROTOCOLS

       This functionality affects all supported protocols


EXAMPLE

       int main(void)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           CURLcode result;
           curl_easy_setopt(curl, CURLOPT_URL, "https://example.com");

           /* request to use a SOCKS5 proxy */
           curl_easy_setopt(curl, CURLOPT_PROXY, "socks5://user:pass@myproxy.com");

           /* enable username/password authentication only */
           curl_easy_setopt(curl, CURLOPT_SOCKS5_AUTH, CURLAUTH_BASIC);

           /* Perform the request */
           result = curl_easy_perform(curl);
           curl_easy_cleanup(curl);
         }
       }


HISTORY

       CURLAUTH_* macros became long types in 7.26.0, prior to this version a
       long cast was necessary when passed to curl_easy_setopt(3).


AVAILABILITY

       Added in curl 7.55.0


RETURN VALUE

       curl_easy_setopt(3) returns a CURLcode indicating success or error.

       CURLE_OK (0) means everything was OK, non-zero means an error occurred,
       see libcurl-errors(3).


SEE ALSO

       CURLOPT_PROXY(3), CURLOPT_PROXYTYPE(3)

libcurl                           2026-06-09            CURLOPT_SOCKS5_AUTH(3)

curl 8.20.0 - Generated Wed Jun 10 08:04:35 CDT 2026
© manpagez.com 2000-2026
Individual documents may contain additional copyright information.