mirror of
https://github.com/curl/curl.git
synced 2025-01-12 13:55:11 +08:00
e3fe020089
Remove the PROTOCOLS section from the source files completely and instead generate them based on the header data in the curldown files. It also generates TLS backend information for options marked for TLS as protocol. Closes #13175
103 lines
2.0 KiB
Markdown
103 lines
2.0 KiB
Markdown
---
|
|
c: Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
|
SPDX-License-Identifier: curl
|
|
Title: CURLOPT_PROTOCOLS
|
|
Section: 3
|
|
Source: libcurl
|
|
See-also:
|
|
- CURLOPT_DEFAULT_PROTOCOL (3)
|
|
- CURLOPT_REDIR_PROTOCOLS (3)
|
|
- CURLOPT_URL (3)
|
|
Protocol:
|
|
- All
|
|
---
|
|
|
|
# NAME
|
|
|
|
CURLOPT_PROTOCOLS - allowed protocols
|
|
|
|
# SYNOPSIS
|
|
|
|
~~~c
|
|
#include <curl/curl.h>
|
|
|
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_PROTOCOLS, long bitmask);
|
|
~~~
|
|
|
|
# DESCRIPTION
|
|
|
|
This option is deprecated. We strongly recommend using
|
|
CURLOPT_PROTOCOLS_STR(3) instead because this option cannot control all
|
|
available protocols!
|
|
|
|
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
|
|
accepts all protocols it supports (*CURLPROTO_ALL*). See also
|
|
CURLOPT_REDIR_PROTOCOLS(3).
|
|
|
|
These are the available protocol defines:
|
|
~~~c
|
|
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.
|
|
|
|
# EXAMPLE
|
|
|
|
~~~c
|
|
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,
|
|
CURLPROTO_HTTP | CURLPROTO_TFTP | CURLPROTO_SFTP);
|
|
|
|
/* Perform the request */
|
|
curl_easy_perform(curl);
|
|
}
|
|
}
|
|
~~~
|
|
|
|
# AVAILABILITY
|
|
|
|
Added in 7.19.4. Deprecated since 7.85.0.
|
|
|
|
# RETURN VALUE
|
|
|
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|