Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
CURLOPT_RE...OTOCOLS_STR(3) Library Functions Manual CURLOPT_RE...OTOCOLS_STR(3)

NAME
     CURLOPT_REDIR_PROTOCOLS_STR - protocols allowed to redirect to

SYNOPSIS
     #include <curl/curl.h>

     CURLcode curl_easy_setopt(CURL *handle, CURLOPT_REDIR_PROTOCOLS_STR,
			       char *spec);

DESCRIPTION
     Pass a pointer to a string that holds a comma-separated list of case insen-
     sitive  protocol  names  (URL  schemes).  That  list  limits what protocols
     libcurl may use in a transfer that it follows to in a  redirect  when  CUR-
     LOPT_FOLLOWLOCATION(3) is enabled. This option allows applications to limit
     specific transfers to only be allowed to use a subset of protocols in redi-
     rections.

     Protocols denied by CURLOPT_PROTOCOLS_STR(3) are not overridden by this op-
     tion.

     By  default  libcurl  allows  HTTP, HTTPS, FTP and FTPS on redirects (since
     7.65.2).

     These are the available protocols:

     DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP,  HTTPS,  IMAP,  IMAPS,  LDAP,
     LDAPS,  MQTT,  MQTTS, POP3, POP3S, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS,
     TELNET, TFTP, WS, WSS

     You can set "ALL" as a short-cut to enable all protocols. Note that by set-
     ting all, you may enable protocols that were  not	supported  the	day  you
     write this but are introduced in a future libcurl version.

     If  trying to set a non-existing protocol or if no matching protocol at all
     is set, it returns error.

     Using this option multiple times makes the last  set  string  override  the
     previous ones. Set it to NULL to restore to internal default.

     The  application does not have to keep the string around after setting this
     option.

DEFAULT
     HTTP, HTTPS, FTP and FTPS

PROTOCOLS
     This functionality affects http only

EXAMPLE
     int main(int argc, char **argv)
     {
       CURL *curl = curl_easy_init();
       if(curl) {
	 CURLcode result;
	 /* 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_STR, "http,https");

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

AVAILABILITY
     Added in curl 7.85.0

RETURN VALUE
     Returns CURLE_UNKNOWN_OPTION if the option is not implemented, CURLE_UNSUP-
     PORTED_PROTOCOL  if  a  listed  protocol  is  not	supported  or  disabled,
     CURLE_BAD_FUNCTION_ARGUMENT if no protocol is listed else CURLE_OK.

SEE ALSO
     CURLINFO_SCHEME(3), CURLOPT_DEFAULT_PROTOCOL(3), CURLOPT_PROTOCOLS(3), CUR-
     LOPT_PROTOCOLS_STR(3), CURLOPT_REDIR_PROTOCOLS(3)

libcurl 			   2026-06-11	     CURLOPT_RE...OTOCOLS_STR(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=CURLOPT_REDIR_PROTOCOLS_STR&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help