Compare commits
2 Commits
master
...
bagder/spe
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3c7c614df5 | ||
|
|
ae72de1caa |
142
.github/scripts/cleancmd.pl
vendored
142
.github/scripts/cleancmd.pl
vendored
@ -3,55 +3,117 @@
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Input: a cmdline docs markdown, it gets modified *in place*
|
||||
# Input: cmdline docs markdown files, they get modified *in place*
|
||||
#
|
||||
# Strip off the leading meta-data/header part, remove all known curl symbols
|
||||
# and long command line options. Also clean up whatever else the spell checker
|
||||
# might have a problem with that we still deem is fine.
|
||||
#
|
||||
# The main purpose is to strip off the leading meta-data part, but also to
|
||||
# clean up whatever else the spell checker might have a problem with that we
|
||||
# still deem is fine.
|
||||
|
||||
my $header = 1;
|
||||
while(1) {
|
||||
# set this if the markdown has no meta-data header to skip
|
||||
if($ARGV[0] eq "--no-header") {
|
||||
shift @ARGV;
|
||||
$header = 0;
|
||||
}
|
||||
else {
|
||||
last;
|
||||
open(S, "<./docs/libcurl/symbols-in-versions")
|
||||
|| die "can't find symbols-in-versions";
|
||||
while(<S>) {
|
||||
if(/^([^ ]*) /) {
|
||||
push @asyms, $1;
|
||||
}
|
||||
}
|
||||
close(S);
|
||||
|
||||
my $f = $ARGV[0];
|
||||
# init the opts table with "special" options not easy to figure out
|
||||
my @aopts = (
|
||||
'--ftp-ssl-reqd', # old alias
|
||||
);
|
||||
|
||||
open(F, "<$f") or die;
|
||||
|
||||
my $ignore = $header;
|
||||
my $sepcount = 0;
|
||||
my @out;
|
||||
while(<F>) {
|
||||
if(/^---/ && $header) {
|
||||
if(++$sepcount == 2) {
|
||||
$ignore = 0;
|
||||
open(O, "<./docs/options-in-versions")
|
||||
|| die "can't find options-in-versions";
|
||||
while(<O>) {
|
||||
chomp;
|
||||
if(/^([^ ]+)/) {
|
||||
my $o = $1;
|
||||
push @aopts, $o;
|
||||
if($o =~ /^--no-(.*)/) {
|
||||
# for the --no options, also make one without it
|
||||
push @aopts, "--$1";
|
||||
}
|
||||
elsif($o =~ /^--disable-(.*)/) {
|
||||
# for the --disable options, also make the special ones
|
||||
push @aopts, "--$1";
|
||||
push @aopts, "--no-$1";
|
||||
}
|
||||
}
|
||||
}
|
||||
close(O);
|
||||
|
||||
open(C, "<./.github/scripts/spellcheck.curl")
|
||||
|| die "can't find spellcheck.curl";
|
||||
while(<C>) {
|
||||
if(/^\#/) {
|
||||
next;
|
||||
}
|
||||
next if($ignore);
|
||||
|
||||
# strip out backticked words
|
||||
$_ =~ s/`[^`]+`//g;
|
||||
|
||||
# strip out all long command line options
|
||||
$_ =~ s/--[a-z0-9-]+//g;
|
||||
|
||||
# strip out https URLs, we don't want them spellchecked
|
||||
$_ =~ s!https://[a-z0-9\#_/.-]+!!gi;
|
||||
|
||||
push @out, $_;
|
||||
chomp;
|
||||
if(/^([^ ]+)/) {
|
||||
push @asyms, $1;
|
||||
}
|
||||
}
|
||||
close(F);
|
||||
close(C);
|
||||
|
||||
if(!$ignore) {
|
||||
open(O, ">$f") or die;
|
||||
print O @out;
|
||||
close(O);
|
||||
# longest symbols first
|
||||
my @syms = sort { length($b) <=> length($a) } @asyms;
|
||||
|
||||
# longest cmdline options first
|
||||
my @opts = sort { length($b) <=> length($a) } @aopts;
|
||||
|
||||
sub process {
|
||||
my ($f) = @_;
|
||||
|
||||
my $ignore = 0;
|
||||
my $sepcount = 0;
|
||||
my $out;
|
||||
my $line = 0;
|
||||
open(F, "<$f") or die;
|
||||
|
||||
while(<F>) {
|
||||
$line++;
|
||||
if(/^---/ && ($line == 1)) {
|
||||
$ignore = 1;
|
||||
next;
|
||||
}
|
||||
elsif(/^---/ && $ignore) {
|
||||
$ignore = 0;
|
||||
next;
|
||||
}
|
||||
next if($ignore);
|
||||
|
||||
my $l = $_;
|
||||
|
||||
# strip out backticked words
|
||||
$l =~ s/`[^`]+`//g;
|
||||
|
||||
# **bold**
|
||||
$l =~ s/\*\*(\S.*?)\*\*//g;
|
||||
# *italics*
|
||||
$l =~ s/\*(\S.*?)\*//g;
|
||||
|
||||
# strip out https URLs, we don't want them spellchecked
|
||||
$l =~ s!https://[a-z0-9\#_/.-]+!!gi;
|
||||
|
||||
$out .= $l;
|
||||
}
|
||||
close(F);
|
||||
|
||||
# cut out all known curl cmdline options
|
||||
map { $out =~ s/$_//g; } (@opts);
|
||||
|
||||
# cut out all known curl symbols
|
||||
map { $out =~ s/\b$_\b//g; } (@syms);
|
||||
|
||||
if(!$ignore) {
|
||||
open(O, ">$f") or die;
|
||||
print O $out;
|
||||
close(O);
|
||||
}
|
||||
}
|
||||
|
||||
for my $f (@ARGV) {
|
||||
process($f);
|
||||
}
|
||||
|
||||
86
.github/scripts/cleanspell.pl
vendored
86
.github/scripts/cleanspell.pl
vendored
@ -1,86 +0,0 @@
|
||||
#!/usr/bin/env perl
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# Given: a libcurl curldown man page
|
||||
# Outputs: the same file, minus the SYNOPSIS and the EXAMPLE sections
|
||||
#
|
||||
|
||||
my $f = $ARGV[0];
|
||||
|
||||
open(F, "<$f") or die;
|
||||
|
||||
my @out;
|
||||
my $ignore = 0;
|
||||
while(<F>) {
|
||||
if($_ =~ /^# (SYNOPSIS|EXAMPLE)/) {
|
||||
$ignore = 1;
|
||||
}
|
||||
elsif($ignore && ($_ =~ /^# [A-Z]/)) {
|
||||
$ignore = 0;
|
||||
}
|
||||
elsif(!$ignore) {
|
||||
# **bold**
|
||||
$_ =~ s/\*\*(\S.*?)\*\*//g;
|
||||
# *italics*
|
||||
$_ =~ s/\*(\S.*?)\*//g;
|
||||
|
||||
$_ =~ s/CURL(M|SH|U|H)code//g;
|
||||
$_ =~ s/CURL_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLALTSVC_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLAUTH_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLFORM_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLFTP_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLFTPAUTH_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLFTPMETHOD_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLFTPSSL_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLGSSAPI_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLHEADER_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLINFO_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLM_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLMIMEOPT_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLMOPT_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLOPT_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLPIPE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLPROTO_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLPROXY_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLPX_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLSHE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLSHOPT_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLSSLOPT_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLSSH_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLSSLBACKEND_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLU_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLUPART_[A-Z0-9_]*//g;
|
||||
#$_ =~ s/\bCURLU\b//g; # stand-alone CURLU
|
||||
$_ =~ s/CURLUE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLHE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLWS_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLKH[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLUPART_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLUSESSL_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLPAUSE_[A-Z0-9_]*//g;
|
||||
$_ =~ s/CURLHSTS_[A-Z0-9_]*//g;
|
||||
$_ =~ s/curl_global_([a-z_]*)//g;
|
||||
$_ =~ s/curl_(strequal|strnequal|formadd|waitfd|formget|getdate|formfree)//g;
|
||||
$_ =~ s/curl_easy_([a-z]*)//g;
|
||||
$_ =~ s/curl_multi_([a-z_]*)//g;
|
||||
$_ =~ s/curl_mime_(subparts|addpart|filedata|data_cb)//g;
|
||||
$_ =~ s/curl_ws_(send|recv|meta)//g;
|
||||
$_ =~ s/curl_url_(dup)//g;
|
||||
$_ =~ s/curl_pushheader_by(name|num)//g;
|
||||
$_ =~ s/libcurl-(env|ws)//g;
|
||||
$_ =~ s/libcurl\\-(env|ws)//g;
|
||||
$_ =~ s/(^|\W)((tftp|https|http|ftp):\/\/[a-z0-9\-._~%:\/?\#\[\]\@!\$&'()*+,;=\\]+)//gi;
|
||||
push @out, $_;
|
||||
}
|
||||
}
|
||||
close(F);
|
||||
|
||||
open(O, ">$f") or die;
|
||||
for my $l (@out) {
|
||||
print O $l;
|
||||
}
|
||||
close(O);
|
||||
151
.github/scripts/spellcheck.curl
vendored
Normal file
151
.github/scripts/spellcheck.curl
vendored
Normal file
@ -0,0 +1,151 @@
|
||||
# Copyright (C) Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||
#
|
||||
# SPDX-License-Identifier: curl
|
||||
#
|
||||
# common variable types + structs
|
||||
# callback typedefs
|
||||
# public functions names
|
||||
# some man page names
|
||||
curl_fileinfo
|
||||
curl_forms
|
||||
curl_hstsentry
|
||||
curl_httppost
|
||||
curl_index
|
||||
curl_khkey
|
||||
curl_pushheaders
|
||||
curl_waitfd
|
||||
CURLcode
|
||||
CURLformoption
|
||||
CURLHcode
|
||||
CURLMcode
|
||||
CURLMsg
|
||||
CURLSHcode
|
||||
CURLUcode
|
||||
curl_calloc_callback
|
||||
curl_chunk_bgn_callback
|
||||
curl_chunk_end_callback
|
||||
curl_conv_callback
|
||||
curl_debug_callback
|
||||
curl_fnmatch_callback
|
||||
curl_formget_callback
|
||||
curl_free_callback
|
||||
curl_hstsread_callback
|
||||
curl_hstswrite_callback
|
||||
curl_ioctl_callback
|
||||
curl_malloc_callback
|
||||
curl_multi_timer_callback
|
||||
curl_opensocket_callback
|
||||
curl_prereq_callback
|
||||
curl_progress_callback
|
||||
curl_push_callback
|
||||
curl_read_callback
|
||||
curl_realloc_callback
|
||||
curl_resolver_start_callback
|
||||
curl_seek_callback
|
||||
curl_socket_callback
|
||||
curl_sockopt_callback
|
||||
curl_ssl_ctx_callback
|
||||
curl_strdup_callback
|
||||
curl_trailer_callback
|
||||
curl_write_callback
|
||||
curl_xferinfo_callback
|
||||
curl_strequal
|
||||
curl_strnequal
|
||||
curl_mime_init
|
||||
curl_mime_free
|
||||
curl_mime_addpart
|
||||
curl_mime_name
|
||||
curl_mime_filename
|
||||
curl_mime_type
|
||||
curl_mime_encoder
|
||||
curl_mime_data
|
||||
curl_mime_filedata
|
||||
curl_mime_data_cb
|
||||
curl_mime_subparts
|
||||
curl_mime_headers
|
||||
curl_formadd
|
||||
curl_formget
|
||||
curl_formfree
|
||||
curl_getdate
|
||||
curl_getenv
|
||||
curl_version
|
||||
curl_easy_escape
|
||||
curl_escape
|
||||
curl_easy_unescape
|
||||
curl_unescape
|
||||
curl_free
|
||||
curl_global_init
|
||||
curl_global_init_mem
|
||||
curl_global_cleanup
|
||||
curl_global_trace
|
||||
curl_global_sslset
|
||||
curl_slist_append
|
||||
curl_slist_free_all
|
||||
curl_getdate
|
||||
curl_share_init
|
||||
curl_share_setopt
|
||||
curl_share_cleanup
|
||||
curl_version_info
|
||||
curl_easy_strerror
|
||||
curl_share_strerror
|
||||
curl_easy_pause
|
||||
curl_easy_ssls_import
|
||||
curl_easy_ssls_export
|
||||
curl_easy_init
|
||||
curl_easy_setopt
|
||||
curl_easy_perform
|
||||
curl_easy_cleanup
|
||||
curl_easy_getinfo
|
||||
curl_easy_duphandle
|
||||
curl_easy_reset
|
||||
curl_easy_recv
|
||||
curl_easy_send
|
||||
curl_easy_upkeep
|
||||
curl_easy_header
|
||||
curl_easy_nextheader
|
||||
curl_mprintf
|
||||
curl_mfprintf
|
||||
curl_msprintf
|
||||
curl_msnprintf
|
||||
curl_mvprintf
|
||||
curl_mvfprintf
|
||||
curl_mvsprintf
|
||||
curl_mvsnprintf
|
||||
curl_maprintf
|
||||
curl_mvaprintf
|
||||
curl_multi_init
|
||||
curl_multi_add_handle
|
||||
curl_multi_remove_handle
|
||||
curl_multi_fdset
|
||||
curl_multi_waitfds
|
||||
curl_multi_wait
|
||||
curl_multi_poll
|
||||
curl_multi_wakeup
|
||||
curl_multi_perform
|
||||
curl_multi_cleanup
|
||||
curl_multi_info_read
|
||||
curl_multi_strerror
|
||||
curl_multi_socket
|
||||
curl_multi_socket_action
|
||||
curl_multi_socket_all
|
||||
curl_multi_timeout
|
||||
curl_multi_setopt
|
||||
curl_multi_assign
|
||||
curl_multi_get_handles
|
||||
curl_pushheader_bynum
|
||||
curl_pushheader_byname
|
||||
curl_multi_waitfds
|
||||
curl_easy_option_by_name
|
||||
curl_easy_option_by_id
|
||||
curl_easy_option_next
|
||||
curl_url
|
||||
curl_url_cleanup
|
||||
curl_url_dup
|
||||
curl_url_get
|
||||
curl_url_set
|
||||
curl_url_strerror
|
||||
curl_ws_recv
|
||||
curl_ws_send
|
||||
curl_ws_meta
|
||||
libcurl-env
|
||||
libcurl-ws
|
||||
16
.github/workflows/checkdocs.yml
vendored
16
.github/workflows/checkdocs.yml
vendored
@ -107,20 +107,8 @@ jobs:
|
||||
persist-credentials: false
|
||||
name: checkout
|
||||
|
||||
- name: trim all man page *.md files
|
||||
run: find docs -name "*.md" ! -name "_*" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl
|
||||
|
||||
- name: trim libcurl man page *.md files
|
||||
run: find docs/libcurl \( -name "curl_*.md" -o -name "libcurl*.md" \) -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim libcurl option man page *.md files
|
||||
run: find docs/libcurl/opts -name "CURL*.md" -print0 | xargs -0 -n1 .github/scripts/cleanspell.pl
|
||||
|
||||
- name: trim cmdline docs markdown _*.md files
|
||||
run: find docs/cmdline-opts -name "_*.md" -print0 | xargs -0 -n1 .github/scripts/cleancmd.pl --no-header
|
||||
|
||||
- name: trim docs/ markdown _*.md files
|
||||
run: git ls-files docs/*.md docs/internals/*.md | xargs -n1 .github/scripts/cleancmd.pl --no-header
|
||||
- name: trim all *.md files in docs/
|
||||
run: .github/scripts/cleancmd.pl $(find docs -name "*.md")
|
||||
|
||||
- name: setup the custom wordlist
|
||||
run: grep -v '^#' .github/scripts/spellcheck.words > wordlist.txt
|
||||
|
||||
@ -59,4 +59,4 @@ used.
|
||||
|
||||
Doing FTP over an HTTP proxy without --proxytunnel makes curl do HTTP with an
|
||||
FTP URL over the proxy. For such transfers, common FTP specific options do not
|
||||
work, including --ftp-ssl-reqd and --ftp-ssl-control.
|
||||
work, including --ssl-reqd and --ftp-ssl-control.
|
||||
|
||||
@ -24,53 +24,53 @@ displays information about the curl and libcurl installation.
|
||||
|
||||
# OPTIONS
|
||||
|
||||
## --ca
|
||||
## `--ca`
|
||||
|
||||
Displays the built-in path to the CA cert bundle this libcurl uses.
|
||||
|
||||
## --cc
|
||||
## `--cc`
|
||||
|
||||
Displays the compiler used to build libcurl.
|
||||
|
||||
## --cflags
|
||||
## `--cflags`
|
||||
|
||||
Set of compiler options (CFLAGS) to use when compiling files that use
|
||||
libcurl. Currently that is only the include path to the curl include files.
|
||||
|
||||
## --checkfor [version]
|
||||
## `--checkfor [version]`
|
||||
|
||||
Specify the oldest possible libcurl version string you want, and this script
|
||||
returns 0 if the current installation is new enough or it returns 1 and
|
||||
outputs a text saying that the current version is not new enough. (Added in
|
||||
7.15.4)
|
||||
|
||||
## --configure
|
||||
## `--configure`
|
||||
|
||||
Displays the arguments given to configure when building curl.
|
||||
|
||||
## --feature
|
||||
## `--feature`
|
||||
|
||||
Lists what particular main features the installed libcurl was built with. At
|
||||
the time of writing, this list may include SSL, KRB4 or IPv6. Do not assume
|
||||
any particular order. The keywords are separated by newlines. There may be
|
||||
none, one, or several keywords in the list.
|
||||
|
||||
## --help
|
||||
## `--help`
|
||||
|
||||
Displays the available options.
|
||||
|
||||
## --libs
|
||||
## `--libs`
|
||||
|
||||
Shows the complete set of libs and other linker options you need in order to
|
||||
link your application with libcurl.
|
||||
|
||||
## --prefix
|
||||
## `--prefix`
|
||||
|
||||
This is the prefix used when libcurl was installed. libcurl is then installed
|
||||
in $prefix/lib and its header files are installed in $prefix/include and so
|
||||
on. The prefix is set with "configure --prefix".
|
||||
on. The prefix is set with `configure --prefix`.
|
||||
|
||||
## --protocols
|
||||
## `--protocols`
|
||||
|
||||
Lists what particular protocols the installed libcurl was built to support. At
|
||||
the time of writing, this list may include HTTP, HTTPS, FTP, FTPS, FILE,
|
||||
@ -78,22 +78,22 @@ TELNET, LDAP, DICT and many more. Do not assume any particular order. The
|
||||
protocols are listed using uppercase and are separated by newlines. There may
|
||||
be none, one, or several protocols in the list. (Added in 7.13.0)
|
||||
|
||||
## --ssl-backends
|
||||
## `--ssl-backends`
|
||||
|
||||
Lists the SSL backends that were enabled when libcurl was built. It might be
|
||||
no, one or several names. If more than one name, they appear comma-separated.
|
||||
(Added in 7.58.0)
|
||||
|
||||
## --static-libs
|
||||
## `--static-libs`
|
||||
|
||||
Shows the complete set of libs and other linker options you need in order to
|
||||
link your application with libcurl statically. (Added in 7.17.1)
|
||||
|
||||
## --version
|
||||
## `--version`
|
||||
|
||||
Outputs version information about the installed libcurl.
|
||||
|
||||
## --vernum
|
||||
## `--vernum`
|
||||
|
||||
Outputs version information about the installed libcurl, in numerical mode.
|
||||
This shows the version number, in hexadecimal, using 8 bits for each part:
|
||||
@ -104,22 +104,21 @@ omitted. (This option was broken in the 7.15.0 release.)
|
||||
# EXAMPLES
|
||||
|
||||
What linker options do I need when I link with libcurl?
|
||||
~~~
|
||||
$ curl-config --libs
|
||||
~~~
|
||||
|
||||
$ curl-config --libs
|
||||
|
||||
What compiler options do I need when I compile using libcurl functions?
|
||||
~~~
|
||||
$ curl-config --cflags
|
||||
~~~
|
||||
|
||||
$ curl-config --cflags
|
||||
|
||||
How do I know if libcurl was built with SSL support?
|
||||
~~~
|
||||
$ curl-config --feature | grep SSL
|
||||
~~~
|
||||
|
||||
$ curl-config --feature | grep SSL
|
||||
|
||||
What's the installed libcurl version?
|
||||
~~~
|
||||
$ curl-config --version
|
||||
~~~
|
||||
|
||||
$ curl-config --version
|
||||
|
||||
How do I build a single file with a one-line command?
|
||||
~~~
|
||||
$ `curl-config --cc --cflags` -o example source.c `curl-config --libs`
|
||||
~~~
|
||||
|
||||
$ `curl-config --cc --cflags` -o example source.c `curl-config --libs`
|
||||
|
||||
@ -28,11 +28,10 @@ const struct curl_easyoption *curl_easy_option_by_id(CURLoption id);
|
||||
# DESCRIPTION
|
||||
|
||||
Given a *CURLoption* **id**, this function returns a pointer to the
|
||||
*curl_easyoption* struct, holding information about the
|
||||
curl_easy_setopt(3) option using that id. The option id is the CURLOPT_
|
||||
prefix ones provided in the standard curl/curl.h header file. This function
|
||||
returns the non-alias version of the cases where there is an alias function as
|
||||
well.
|
||||
*curl_easyoption* struct, holding information about the curl_easy_setopt(3)
|
||||
option using that id. The option id is the `CURLOPT_` prefixed ones provided
|
||||
in the standard curl/curl.h header file. This function returns the non-alias
|
||||
version of the cases where there is an alias function as well.
|
||||
|
||||
If libcurl has no option with the given id, this function returns NULL.
|
||||
|
||||
|
||||
@ -27,11 +27,10 @@ const struct curl_easyoption *curl_easy_option_by_name(const char *name);
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
Given a **name**, this function returns a pointer to the
|
||||
*curl_easyoption* struct, holding information about the
|
||||
curl_easy_setopt(3) option using that name. The name should be specified
|
||||
without the "CURLOPT_" prefix and the name comparison is made case
|
||||
insensitive.
|
||||
Given a **name**, this function returns a pointer to the *curl_easyoption*
|
||||
struct, holding information about the curl_easy_setopt(3) option using that
|
||||
name. The name should be specified without the `CURLOPT_` prefix and the name
|
||||
comparison is made case insensitive.
|
||||
|
||||
If libcurl has no option with the given name, this function returns NULL.
|
||||
|
||||
|
||||
@ -316,4 +316,4 @@ filenames are now escaped before transmission.
|
||||
# RETURN VALUE
|
||||
|
||||
0 means everything was OK, non-zero means an error occurred corresponding to a
|
||||
CURL_FORMADD_* constant defined in *\<curl/curl.h\>*.
|
||||
`CURL_FORMADD_*` constant defined in *\<curl/curl.h\>*.
|
||||
|
||||
@ -38,9 +38,9 @@ first argument to the curl_formget_callback function.
|
||||
size_t len);"
|
||||
~~~
|
||||
|
||||
The curl_formget_callback is invoked for each part of the HTTP POST chain. The
|
||||
character buffer passed to the callback must not be freed. The callback should
|
||||
return the buffer length passed to it on success.
|
||||
The *curl_formget_callback* is invoked for each part of the HTTP POST chain.
|
||||
The character buffer passed to the callback must not be freed. The callback
|
||||
should return the buffer length passed to it on success.
|
||||
|
||||
If the **CURLFORM_STREAM** option is used in the formpost, it prevents
|
||||
curl_formget(3) from working until you have performed the actual HTTP request.
|
||||
|
||||
@ -376,9 +376,8 @@ supports HTTP zstd content encoding using zstd library (Added in 7.72.0)
|
||||
|
||||
*features* mask bit: CURL_VERSION_CONV
|
||||
|
||||
libcurl was built with support for character conversions, as provided by the
|
||||
CURLOPT_CONV_* callbacks. Always 0 since 7.82.0. (Added in 7.15.4,
|
||||
deprecated.)
|
||||
libcurl was built with support for character conversions provided by
|
||||
callbacks. Always 0 since 7.82.0. (Added in 7.15.4, deprecated.)
|
||||
|
||||
## no name
|
||||
|
||||
|
||||
@ -23,16 +23,16 @@ These variables are intended for internal use only, subject to change and have
|
||||
many effects on the behavior of libcurl. Refer to the source code to determine
|
||||
how exactly they are being used.
|
||||
|
||||
## CURL_ALTSVC_HTTP
|
||||
## `CURL_ALTSVC_HTTP`
|
||||
|
||||
Bypass the AltSvc HTTPS protocol restriction if this variable exists.
|
||||
|
||||
## CURL_DBG_SOCK_RBLOCK
|
||||
## `CURL_DBG_SOCK_RBLOCK`
|
||||
|
||||
The percentage of recv() calls that should be answered with a EAGAIN at random.
|
||||
For TCP/UNIX sockets.
|
||||
|
||||
## CURL_DBG_SOCK_RMAX
|
||||
## `CURL_DBG_SOCK_RMAX`
|
||||
|
||||
The maximum data that shall be received from the network in one recv() call.
|
||||
For TCP/UNIX sockets. This is applied to every recv.
|
||||
@ -40,12 +40,12 @@ For TCP/UNIX sockets. This is applied to every recv.
|
||||
Example: **CURL_DBG_SOCK_RMAX=400** means recv buffer size is limited to a
|
||||
maximum of 400 bytes.
|
||||
|
||||
## CURL_DBG_SOCK_WBLOCK
|
||||
## `CURL_DBG_SOCK_WBLOCK`
|
||||
|
||||
The percentage of send() calls that should be answered with a EAGAIN at random.
|
||||
For TCP/UNIX sockets.
|
||||
|
||||
## CURL_DBG_SOCK_WPARTIAL
|
||||
## `CURL_DBG_SOCK_WPARTIAL`
|
||||
|
||||
The percentage of data that shall be written to the network. For TCP/UNIX
|
||||
sockets. This is applied to every send.
|
||||
@ -53,12 +53,12 @@ sockets. This is applied to every send.
|
||||
Example: **CURL_DBG_SOCK_WPARTIAL=80** means a send with 1000 bytes would
|
||||
only send 800.
|
||||
|
||||
## CURL_DBG_QUIC_WBLOCK
|
||||
## `CURL_DBG_QUIC_WBLOCK`
|
||||
|
||||
The percentage of send() calls that should be answered with EAGAIN at random.
|
||||
QUIC only.
|
||||
|
||||
## CURL_DEBUG
|
||||
## `CURL_DEBUG`
|
||||
|
||||
Trace logging behavior as an alternative to calling curl_global_trace(3).
|
||||
|
||||
@ -73,39 +73,39 @@ Example: **CURL_DEBUG=tcp,-http/2 curl -vv url** means trace protocol details,
|
||||
triggered by `-vv`, add tracing of TCP in addition and remove tracing of
|
||||
HTTP/2.
|
||||
|
||||
## CURL_DEBUG_SIZE
|
||||
## `CURL_DEBUG_SIZE`
|
||||
|
||||
Fake the size returned by CURLINFO_HEADER_SIZE and CURLINFO_REQUEST_SIZE.
|
||||
|
||||
## CURL_GETHOSTNAME
|
||||
## `CURL_GETHOSTNAME`
|
||||
|
||||
Fake the local machine's unqualified hostname for NTLM and SMTP.
|
||||
|
||||
## CURL_HSTS_HTTP
|
||||
## `CURL_HSTS_HTTP`
|
||||
|
||||
Bypass the HSTS HTTPS protocol restriction if this variable exists.
|
||||
|
||||
## CURL_FORCETIME
|
||||
## `CURL_FORCETIME`
|
||||
|
||||
A time of 0 is used for AWS signatures and NTLM if this variable exists.
|
||||
|
||||
## CURL_ENTROPY
|
||||
## `CURL_ENTROPY`
|
||||
|
||||
A fixed faked value to use instead of a proper random number so that functions
|
||||
in libcurl that are otherwise getting random outputs can be tested for what
|
||||
they generate.
|
||||
|
||||
## CURL_SMALLREQSEND
|
||||
## `CURL_SMALLREQSEND`
|
||||
|
||||
An alternative size of HTTP data to be sent at a time only if smaller than the
|
||||
current.
|
||||
|
||||
## CURL_SMALLSENDS
|
||||
## `CURL_SMALLSENDS`
|
||||
|
||||
An alternative size of socket data to be sent at a time only if smaller than
|
||||
the current.
|
||||
|
||||
## CURL_TIME
|
||||
## `CURL_TIME`
|
||||
|
||||
Fake Unix timestamp to use for AltSvc, HSTS and CURLINFO variables that are
|
||||
time related.
|
||||
@ -114,34 +114,34 @@ This variable can also be used to fake the data returned by some CURLINFO
|
||||
variables that are not time-related (such as CURLINFO_LOCAL_PORT), and in that
|
||||
case the value is not a timestamp.
|
||||
|
||||
## CURL_TRACE
|
||||
## `CURL_TRACE`
|
||||
|
||||
LDAP tracing is enabled if this variable exists and its value is 1 or greater.
|
||||
|
||||
OpenLDAP tracing is separate. Refer to CURL_OPENLDAP_TRACE.
|
||||
|
||||
## CURL_OPENLDAP_TRACE
|
||||
## `CURL_OPENLDAP_TRACE`
|
||||
|
||||
OpenLDAP tracing is enabled if this variable exists and its value is 1 or
|
||||
greater. There is a number of debug levels, refer to *openldap.c* comments.
|
||||
|
||||
## CURL_WS_CHUNK_SIZE
|
||||
## `CURL_WS_CHUNK_SIZE`
|
||||
|
||||
Used to influence the buffer chunk size used for WebSocket encoding and
|
||||
decoding.
|
||||
|
||||
## CURL_WS_CHUNK_EAGAIN
|
||||
## `CURL_WS_CHUNK_EAGAIN`
|
||||
|
||||
Used to simulate blocking sends after this chunk size for WebSocket
|
||||
connections.
|
||||
|
||||
## CURL_FORBID_REUSE
|
||||
## `CURL_FORBID_REUSE`
|
||||
|
||||
Used to set the CURLOPT_FORBID_REUSE flag on each transfer initiated
|
||||
by the curl command line tool. The value of the environment variable
|
||||
does not matter.
|
||||
|
||||
## CURL_GRACEFUL_SHUTDOWN
|
||||
## `CURL_GRACEFUL_SHUTDOWN`
|
||||
|
||||
Make a blocking, graceful shutdown of all remaining connections when
|
||||
a multi handle is destroyed. This implicitly triggers for easy handles
|
||||
|
||||
@ -32,7 +32,7 @@ CURLINFO_SCHEME(3) instead, because this option cannot return all
|
||||
possible protocols.
|
||||
|
||||
Pass a pointer to a long to receive the version used in the last http
|
||||
connection. The returned value is set to one of the CURLPROTO_* values:
|
||||
connection. The returned value is set to one of these values:
|
||||
|
||||
~~~c
|
||||
CURLPROTO_DICT, CURLPROTO_FILE, CURLPROTO_FTP, CURLPROTO_FTPS,
|
||||
|
||||
@ -58,12 +58,11 @@ struct curl_tlssessioninfo {
|
||||
};
|
||||
~~~
|
||||
|
||||
The *backend* struct member is one of the defines in the CURLSSLBACKEND_*
|
||||
series: CURLSSLBACKEND_NONE (when built without TLS support),
|
||||
CURLSSLBACKEND_WOLFSSL, CURLSSLBACKEND_SECURETRANSPORT, CURLSSLBACKEND_GNUTLS,
|
||||
CURLSSLBACKEND_MBEDTLS, CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL or
|
||||
CURLSSLBACKEND_SCHANNEL. (Note that the OpenSSL
|
||||
forks are all reported as just OpenSSL here.)
|
||||
The *backend* struct member is one of these defines: CURLSSLBACKEND_NONE (when
|
||||
built without TLS support), CURLSSLBACKEND_WOLFSSL,
|
||||
CURLSSLBACKEND_SECURETRANSPORT, CURLSSLBACKEND_GNUTLS, CURLSSLBACKEND_MBEDTLS,
|
||||
CURLSSLBACKEND_NSS, CURLSSLBACKEND_OPENSSL or CURLSSLBACKEND_SCHANNEL. (Note
|
||||
that the OpenSSL forks are all reported as just OpenSSL here.)
|
||||
|
||||
The *internals* struct member points to a TLS library specific pointer for
|
||||
the active ("in use") SSL connection, with the following underlying types:
|
||||
|
||||
@ -28,8 +28,8 @@ CURLcode curl_easy_setopt(CURL *handle, CURLOPT_MIME_OPTIONS, long options);
|
||||
|
||||
# DESCRIPTION
|
||||
|
||||
Pass a long that holds a bitmask of CURLMIMEOPT_* defines. Each bit is a
|
||||
Boolean flag used while encoding a MIME tree or multipart form data.
|
||||
Pass a long that holds a bitmask of options. Each bit is a boolean flag used
|
||||
while encoding a MIME tree or multipart form data.
|
||||
|
||||
Available bits are:
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@ 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
|
||||
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
|
||||
|
||||
@ -32,10 +32,10 @@ This option is deprecated. We strongly recommend using
|
||||
CURLOPT_REDIR_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
|
||||
Pass a long that holds a bitmask of protocol bits. 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
|
||||
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
|
||||
|
||||
@ -71,7 +71,7 @@ int main(void)
|
||||
~~~
|
||||
|
||||
If you are on Linux and somehow have a need for paths larger than 107 bytes,
|
||||
you can use the proc filesystem to bypass the limitation:
|
||||
you can use the *proc* filesystem to bypass the limitation:
|
||||
|
||||
~~~c
|
||||
int dirfd = open(long_directory_path_to_socket, O_DIRECTORY | O_RDONLY);
|
||||
|
||||
@ -81,9 +81,8 @@ int main(void)
|
||||
|
||||
# HISTORY
|
||||
|
||||
This option was known as CURLOPT_FTP_SSL up to 7.16.4, and the constants were
|
||||
known as CURLFTPSSL_* Handled by LDAP since 7.81.0. Fully supported by the
|
||||
OpenLDAP backend only.
|
||||
This option was known as CURLOPT_FTP_SSL up to 7.16.4. Supported by LDAP since
|
||||
7.81.0. Fully supported by the OpenLDAP backend only.
|
||||
|
||||
# %AVAILABILITY%
|
||||
|
||||
|
||||
@ -51,7 +51,7 @@ stdout
|
||||
A common technique is to use the write callback to store the incoming data
|
||||
into a dynamically growing allocated buffer, and then this
|
||||
CURLOPT_WRITEDATA(3) is used to point to a struct or the buffer to store data
|
||||
in. Like in the getinmemory example:
|
||||
in. Like in the *getinmemory* example:
|
||||
https://curl.se/libcurl/c/getinmemory.html
|
||||
|
||||
# HISTORY
|
||||
|
||||
Loading…
Reference in New Issue
Block a user