Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

CURLOPT_PROTOCOLS (3)

Name

CURLOPT_PROTOCOLS - allowed protocols

Synopsis

#include <curl/curl.h>

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

Description

CURLOPT_PROTOCOLS(3)       curl_easy_setopt options       CURLOPT_PROTOCOLS(3)



NAME
       CURLOPT_PROTOCOLS - allowed protocols

SYNOPSIS
       #include <curl/curl.h>

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

DESCRIPTION
       Pass  a long that holds a bitmask of CURLPROTO_* defines. 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  will  accept 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
       All

EXAMPLE
       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,
                          CURLPROTO_HTTP | CURLPROTO_TFTP | CURLPROTO_SFTP);

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

AVAILABILITY
       Added in 7.19.4

RETURN VALUE
       Returns CURLE_OK if the option is supported,  and  CURLE_UNKNOWN_OPTION
       if not.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:


       +---------------+------------------+
       |ATTRIBUTE TYPE | ATTRIBUTE VALUE  |
       +---------------+------------------+
       |Availability   | web/curl         |
       +---------------+------------------+
       |Stability      | Uncommitted      |
       +---------------+------------------+

SEE ALSO
       CURLOPT_REDIR_PROTOCOLS(3), CURLOPT_URL(3),



NOTES
       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source       was       downloaded      from       https://curl.se/down-
       load/curl-7.83.1.tar.bz2.

       Further information about this software can be found on the open source
       community website at http://curl.haxx.se/.



libcurl 7.83.1                 November 26, 2021          CURLOPT_PROTOCOLS(3)