dwww Home | Manual pages | Find package

CURLOPT_PROTOCOLS(3)        Library Functions Manual       CURLOPT_PROTOCOLS(3)

NAME
       CURLOPT_PROTOCOLS - allowed protocols

SYNOPSIS
       #include <curl/curl.h>

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

DESCRIPTION
       This  option  is  deprecated. We strongly recommend using CURLOPT_PROTO-
       COLS_STR(3) instead because this option  cannot  control  all  available
       protocols.

       Pass a long that holds a bitmask of protocol bits. If used, this bitmask
       limits  what  protocols libcurl may use in the transfer. This allows you
       to have a libcurl built to support a wide range of protocols  but  still
       limit  specific transfers to only be allowed to use a subset of them. By
       default libcurl accepts all protocols it supports  (CURLPROTO_ALL).  See
       also CURLOPT_REDIR_PROTOCOLS(3).

       These are the available protocol defines:
       CURLPROTO_DICT
       CURLPROTO_FILE
       CURLPROTO_FTP
       CURLPROTO_FTPS
       CURLPROTO_GOPHER
       CURLPROTO_HTTP
       CURLPROTO_HTTPS
       CURLPROTO_IMAP
       CURLPROTO_IMAPS
       CURLPROTO_LDAP
       CURLPROTO_LDAPS
       CURLPROTO_POP3
       CURLPROTO_POP3S
       CURLPROTO_RTMP
       CURLPROTO_RTMPE
       CURLPROTO_RTMPS
       CURLPROTO_RTMPT
       CURLPROTO_RTMPTE
       CURLPROTO_RTMPTS
       CURLPROTO_RTSP
       CURLPROTO_SCP
       CURLPROTO_SFTP
       CURLPROTO_SMB
       CURLPROTO_SMBS
       CURLPROTO_SMTP
       CURLPROTO_SMTPS
       CURLPROTO_TELNET
       CURLPROTO_TFTP

DEFAULT
       All protocols built-in.

PROTOCOLS
       This functionality affects all supported protocols

EXAMPLE
       int main(int argc, char **argv)
       {
         CURL *curl = curl_easy_init();
         if(curl) {
           /* pass in the URL from an external source */
           curl_easy_setopt(curl, CURLOPT_URL, argv[1]);

           /* only allow HTTP, TFTP and SFTP */
           curl_easy_setopt(curl, CURLOPT_PROTOCOLS,
                            (long)CURLPROTO_HTTP | CURLPROTO_TFTP | CURLPROTO_SFTP);

           /* Perform the request */
           curl_easy_perform(curl);
         }
       }

DEPRECATED
       Deprecated since 7.85.0.

AVAILABILITY
       Added in curl 7.19.4

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_DEFAULT_PROTOCOL(3), CURLOPT_REDIR_PROTOCOLS(3), CURLOPT_URL(3)

libcurl                            2026-07-12              CURLOPT_PROTOCOLS(3)

Generated by dwww version 1.16 on Sat Oct 3 05:45:34 CEST 2026.