Go to main content

man pages section 3: Library Interfaces and Headers

Exit Print View

Updated: Thursday, June 13, 2019
 
 

CURLOPT_REDIR_PROTOCOLS (3)

Name

CURLOPT_REDIR_PROTOCOLS - set protocols allowed to redirect to

Synopsis

#include <curl/curl.h>

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

Description

curl_easy_setopt options                            CURLOPT_REDIR_PROTOCOLS(3)



NAME
       CURLOPT_REDIR_PROTOCOLS - set protocols allowed to redirect to

SYNOPSIS
       #include <curl/curl.h>

       CURLcode  curl_easy_setopt(CURL  *handle, CURLOPT_REDIR_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 a transfer that it
       follows to in a redirect  when  CURLOPT_FOLLOWLOCATION(3)  is  enabled.
       This allows you to limit specific transfers to only be allowed to use a
       subset of protocols in redirections.

       Protocols denied by CURLOPT_PROTOCOLS(3) are  not  overridden  by  this
       option.

       By  default libcurl will allow all protocols on redirect except several
       disabled for security reasons: Since 7.19.4 FILE and SCP are  disabled,
       and  since 7.40.0 SMB and SMBS are also disabled. CURLPROTO_ALL enables
       all protocols on redirect, including those disabled for security.

       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 except for FILE, SCP and since 7.40.0 SMB and SMBS.

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 redirects to HTTP and HTTPS URLs */
         curl_easy_setopt(curl, CURLOPT_REDIR_PROTOCOLS,
                          CURLPROTO_HTTP | CURLPROTO_HTTPS);

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

AVAILABILITY
       Added in 7.19.4, before then it would follow all protocols.

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_PROTOCOLS(3),



NOTES
       This     software     was    built    from    source    available    at
       https://github.com/oracle/solaris-userland.   The  original   community
       source    was    downloaded    from    https://github.com/curl/curl/ar-
       chive/curl-7_64_0.zip

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



libcurl 7.37.0                    19 Jun 2014
                                                    CURLOPT_REDIR_PROTOCOLS(3)