Compare commits
267 Commits
issue-346
...
curl-7_47_
Author | SHA1 | Date | |
---|---|---|---|
![]() |
06bf874bbc | ||
![]() |
87a5d3d13e | ||
![]() |
d41dcba4e9 | ||
![]() |
3017d8a8d8 | ||
![]() |
cea1fd7a94 | ||
![]() |
14f92f2d2c | ||
![]() |
53d1e42c41 | ||
![]() |
b9da2cfed1 | ||
![]() |
5a28126b22 | ||
![]() |
1783070801 | ||
![]() |
b03f01742d | ||
![]() |
d58ba66eec | ||
![]() |
d566371130 | ||
![]() |
1074cca8cd | ||
![]() |
be538e0766 | ||
![]() |
be79d83b00 | ||
![]() |
35083ca60e | ||
![]() |
fdcc4d6daa | ||
![]() |
133cd19244 | ||
![]() |
4bed87f8fa | ||
![]() |
3ea77f6add | ||
![]() |
13b6d3b7dd | ||
![]() |
3d209b5fb0 | ||
![]() |
ebfe00c050 | ||
![]() |
fb7cbf75a5 | ||
![]() |
92a20413ac | ||
![]() |
5d7c9379ef | ||
![]() |
036c465e88 | ||
![]() |
bf93a1217c | ||
![]() |
5da7461a55 | ||
![]() |
b019af41e7 | ||
![]() |
325686ef9e | ||
![]() |
c338d8cf9c | ||
![]() |
984d1e9e23 | ||
![]() |
d9b4d1ce20 | ||
![]() |
336e8feec4 | ||
![]() |
89a1eb7b1c | ||
![]() |
973ee6bdd3 | ||
![]() |
3de2d48d4c | ||
![]() |
a2cae9aafd | ||
![]() |
46cb70e9fa | ||
![]() |
19ca40100b | ||
![]() |
b82359643d | ||
![]() |
1d15a509dd | ||
![]() |
a3b8a9e036 | ||
![]() |
2e503441ed | ||
![]() |
e45059214c | ||
![]() |
1c9298ff1b | ||
![]() |
ddfa0d850b | ||
![]() |
752171f016 | ||
![]() |
2aec4359db | ||
![]() |
38b055446a | ||
![]() |
4ca246c3a8 | ||
![]() |
a9ebd1bddc | ||
![]() |
90c2d215d7 | ||
![]() |
8fb8e16ea4 | ||
![]() |
2eb933e8aa | ||
![]() |
08554dff65 | ||
![]() |
7bf5f6e054 | ||
![]() |
520bd9e49f | ||
![]() |
24cf20ec68 | ||
![]() |
7cbe4d8d79 | ||
![]() |
fcabed6cd8 | ||
![]() |
18c95d4bc0 | ||
![]() |
328771981a | ||
![]() |
b064ff0c35 | ||
![]() |
bfe6f1f788 | ||
![]() |
a464f33843 | ||
![]() |
04cb90948e | ||
![]() |
c208c783f5 | ||
![]() |
bd431eef04 | ||
![]() |
5e0e81a9c4 | ||
![]() |
9e093f0e74 | ||
![]() |
58ac23dd16 | ||
![]() |
28533d3277 | ||
![]() |
c3eeb526ae | ||
![]() |
234abd9013 | ||
![]() |
f4646b9069 | ||
![]() |
151da51404 | ||
![]() |
1ff3a07be9 | ||
![]() |
15cb03ad84 | ||
![]() |
871ad2a0f2 | ||
![]() |
6c2c019654 | ||
![]() |
b4a39491ca | ||
![]() |
afcab2c2b6 | ||
![]() |
18ecdd0430 | ||
![]() |
8fbaf6749a | ||
![]() |
63a5a756a8 | ||
![]() |
15cf5a98b7 | ||
![]() |
727f775e59 | ||
![]() |
536f5f442e | ||
![]() |
4bcc532de5 | ||
![]() |
7f683b0ea8 | ||
![]() |
dd1b44c612 | ||
![]() |
fa9332d3ca | ||
![]() |
3b51652328 | ||
![]() |
f08fea7169 | ||
![]() |
034317d2af | ||
![]() |
12f6bf5e58 | ||
![]() |
b6d5cb40d7 | ||
![]() |
6c2a10e963 | ||
![]() |
df40b20e44 | ||
![]() |
e1b6b2219d | ||
![]() |
ec26399bf9 | ||
![]() |
b1f9424fa7 | ||
![]() |
738b0ba09e | ||
![]() |
a62000ecc9 | ||
![]() |
f606435419 | ||
![]() |
5eba895b4c | ||
![]() |
e643c5c908 | ||
![]() |
e7d8d8e257 | ||
![]() |
e2ae32ff5f | ||
![]() |
6623a485d3 | ||
![]() |
940c2f51aa | ||
![]() |
a47137c4a5 | ||
![]() |
5648f0a32c | ||
![]() |
2fddc4e3e1 | ||
![]() |
e55f15454e | ||
![]() |
fe7c39d353 | ||
![]() |
8f281fb76d | ||
![]() |
8cbd80686e | ||
![]() |
a14fa8f8ff | ||
![]() |
81ae6d01fa | ||
![]() |
19a8afb3c0 | ||
![]() |
78c25c854a | ||
![]() |
db05d7a731 | ||
![]() |
cd2b73b3ed | ||
![]() |
5b96b5e79e | ||
![]() |
99d17a5e2b | ||
![]() |
facf2925c7 | ||
![]() |
be0d4141af | ||
![]() |
40c349ada9 | ||
![]() |
bb9ec5ebb2 | ||
![]() |
c341311a0e | ||
![]() |
fc5d783589 | ||
![]() |
98acebb526 | ||
![]() |
06b288a72d | ||
![]() |
d55f9071fb | ||
![]() |
b7f3f1b68f | ||
![]() |
c2f1730e17 | ||
![]() |
8d17117683 | ||
![]() |
c90e348579 | ||
![]() |
f024ece8c7 | ||
![]() |
ad6f6e17d3 | ||
![]() |
0ddc59be0a | ||
![]() |
bbb34b6f15 | ||
![]() |
41efdadf09 | ||
![]() |
6af80afe49 | ||
![]() |
80562083da | ||
![]() |
ff8d352ae9 | ||
![]() |
250d786bd2 | ||
![]() |
0cf80c05ea | ||
![]() |
b27893d15c | ||
![]() |
05cd55f229 | ||
![]() |
b4c39010b5 | ||
![]() |
a72207ecf0 | ||
![]() |
6c5f4303fe | ||
![]() |
39904d6f7d | ||
![]() |
88f585c3a1 | ||
![]() |
051485d9e0 | ||
![]() |
3c4065f402 | ||
![]() |
d0ddfe2216 | ||
![]() |
ca770d87e2 | ||
![]() |
ee04bee82b | ||
![]() |
6cfd646f58 | ||
![]() |
808a17ee67 | ||
![]() |
ba4d8f7eba | ||
![]() |
febda2f305 | ||
![]() |
ceb396c54a | ||
![]() |
796c6ef02b | ||
![]() |
60cf8157c7 | ||
![]() |
ad2d517545 | ||
![]() |
1ee0aded89 | ||
![]() |
f322ca7765 | ||
![]() |
fd0c678e21 | ||
![]() |
aba281e762 | ||
![]() |
64e959ffe3 | ||
![]() |
86e2197337 | ||
![]() |
6c20a87105 | ||
![]() |
b430d94fb2 | ||
![]() |
0755308a6a | ||
![]() |
53b13d0c71 | ||
![]() |
431ba85829 | ||
![]() |
eb3703f052 | ||
![]() |
d7e352402c | ||
![]() |
278ea24a7a | ||
![]() |
1f82df9146 | ||
![]() |
077fd8f1fa | ||
![]() |
b6baa108fa | ||
![]() |
88702ebb31 | ||
![]() |
d6d58dd558 | ||
![]() |
a7c4bcd971 | ||
![]() |
3c24400636 | ||
![]() |
dcf5b614ca | ||
![]() |
6479f5a076 | ||
![]() |
d64add3c71 | ||
![]() |
a215381c94 | ||
![]() |
3e0d64d075 | ||
![]() |
01b7d8274c | ||
![]() |
7023d8aa37 | ||
![]() |
eaa98cef8d | ||
![]() |
4e3d396900 | ||
![]() |
f54a4aa9a3 | ||
![]() |
6225c48a03 | ||
![]() |
9b7f8ab21b | ||
![]() |
2200bf6205 | ||
![]() |
729b92afbe | ||
![]() |
23b8fc15c8 | ||
![]() |
e3c85405d0 | ||
![]() |
2581585961 | ||
![]() |
007f3e0971 | ||
![]() |
23c4090fd3 | ||
![]() |
50bff12ac8 | ||
![]() |
1a614c6c37 | ||
![]() |
505d966850 | ||
![]() |
748ffc77c6 | ||
![]() |
60c86297bf | ||
![]() |
cd3aba1a5c | ||
![]() |
f6fbbd6dc3 | ||
![]() |
210fc95c0f | ||
![]() |
3bd7f28000 | ||
![]() |
3f7b1bb89f | ||
![]() |
1ea3a7d5e4 | ||
![]() |
cba5bc5854 | ||
![]() |
ca5f9341ef | ||
![]() |
49a991346e | ||
![]() |
fbf09b7775 | ||
![]() |
f6ce8c9abb | ||
![]() |
4c62066cec | ||
![]() |
9b87078d55 | ||
![]() |
370ee919b3 | ||
![]() |
e2f430c74a | ||
![]() |
ea2c959db4 | ||
![]() |
ca20ca54b2 | ||
![]() |
d9a1776b32 | ||
![]() |
72d99f2e7b | ||
![]() |
2f4f4108d6 | ||
![]() |
03b6e07816 | ||
![]() |
6288cb9304 | ||
![]() |
eefd5a95af | ||
![]() |
b1fc8c0e97 | ||
![]() |
529f9310b1 | ||
![]() |
b1199def8c | ||
![]() |
b7d894d808 | ||
![]() |
d31ed6ac71 | ||
![]() |
419d410ca0 | ||
![]() |
3042cb5043 | ||
![]() |
23cc0c00d4 | ||
![]() |
ace68fdc0c | ||
![]() |
9744ef2289 | ||
![]() |
c238d4da1b | ||
![]() |
5fecdc26f7 | ||
![]() |
257a1c0d14 | ||
![]() |
fe7590f729 | ||
![]() |
72646c2e48 | ||
![]() |
4201e4a9ac | ||
![]() |
4c773bcb47 | ||
![]() |
cb922d47d6 | ||
![]() |
06b5fd8fde | ||
![]() |
5cf0166636 | ||
![]() |
19cb0c4a88 | ||
![]() |
e77b5b7453 | ||
![]() |
684816cd9b | ||
![]() |
2b98cb57c4 | ||
![]() |
3fde8a4971 | ||
![]() |
443e81ea47 | ||
![]() |
c6aedf680f |
10
.dir-locals.el
Normal file
10
.dir-locals.el
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
;;; Directory Local Variables
|
||||||
|
;;; See Info node `(emacs) Directory Variables' for more information.
|
||||||
|
|
||||||
|
((nil . ((indent-tabs-mode . nil)
|
||||||
|
(show-trailing-whitespace . t)))
|
||||||
|
(c-mode . ((c-basic-offset . 2)
|
||||||
|
))
|
||||||
|
(c++-mode . ((c-basic-offset . 2)
|
||||||
|
))
|
||||||
|
)
|
1
.gitignore
vendored
1
.gitignore
vendored
@@ -49,3 +49,4 @@ missing
|
|||||||
mkinstalldirs
|
mkinstalldirs
|
||||||
tags
|
tags
|
||||||
test-driver
|
test-driver
|
||||||
|
scripts/_curl
|
||||||
|
@@ -1153,7 +1153,7 @@ set(VERSIONNUM "${CURL_VERSION_NUM}")
|
|||||||
# Finally generate a "curl-config" matching this config
|
# Finally generate a "curl-config" matching this config
|
||||||
configure_file("${CURL_SOURCE_DIR}/curl-config.in"
|
configure_file("${CURL_SOURCE_DIR}/curl-config.in"
|
||||||
"${CURL_BINARY_DIR}/curl-config" @ONLY)
|
"${CURL_BINARY_DIR}/curl-config" @ONLY)
|
||||||
install(FILES "${CMAKE_BINARY_DIR}/curl-config"
|
install(FILES "${CURL_BINARY_DIR}/curl-config"
|
||||||
DESTINATION bin
|
DESTINATION bin
|
||||||
PERMISSIONS
|
PERMISSIONS
|
||||||
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
OWNER_READ OWNER_WRITE OWNER_EXECUTE
|
||||||
@@ -1163,7 +1163,7 @@ install(FILES "${CMAKE_BINARY_DIR}/curl-config"
|
|||||||
# Finally generate a pkg-config file matching this config
|
# Finally generate a pkg-config file matching this config
|
||||||
configure_file("${CURL_SOURCE_DIR}/libcurl.pc.in"
|
configure_file("${CURL_SOURCE_DIR}/libcurl.pc.in"
|
||||||
"${CURL_BINARY_DIR}/libcurl.pc" @ONLY)
|
"${CURL_BINARY_DIR}/libcurl.pc" @ONLY)
|
||||||
install(FILES "${CMAKE_BINARY_DIR}/libcurl.pc"
|
install(FILES "${CURL_BINARY_DIR}/libcurl.pc"
|
||||||
DESTINATION lib/pkgconfig)
|
DESTINATION lib/pkgconfig)
|
||||||
|
|
||||||
# This needs to be run very last so other parts of the scripts can take advantage of this.
|
# This needs to be run very last so other parts of the scripts can take advantage of this.
|
||||||
|
2
COPYING
2
COPYING
@@ -1,6 +1,6 @@
|
|||||||
COPYRIGHT AND PERMISSION NOTICE
|
COPYRIGHT AND PERMISSION NOTICE
|
||||||
|
|
||||||
Copyright (c) 1996 - 2015, Daniel Stenberg, <daniel@haxx.se>.
|
Copyright (c) 1996 - 2016, Daniel Stenberg, <daniel@haxx.se>.
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
|
@@ -65,7 +65,7 @@ else
|
|||||||
ARCHES64='-arch x86_64'
|
ARCHES64='-arch x86_64'
|
||||||
#We "know" that 10.4 and earlier do not support 64bit
|
#We "know" that 10.4 and earlier do not support 64bit
|
||||||
OLD_SDK64=`ls $SDK_PATH|egrep -v "10.[0-4]"|head -1`
|
OLD_SDK64=`ls $SDK_PATH|egrep -v "10.[0-4]"|head -1`
|
||||||
NEW_SDK64=`ls -r $SDK_PATH|egrep -v "10.[0-4]"|head -1`
|
NEW_SDK64=`ls -r $SDK_PATH|egrep -v "10.[0-4][^0-9]" | head -1`
|
||||||
if test $USE_OLD -gt 0
|
if test $USE_OLD -gt 0
|
||||||
then
|
then
|
||||||
SDK64=$OLD_SDK64
|
SDK64=$OLD_SDK64
|
||||||
|
@@ -140,7 +140,7 @@ CLEANFILES = $(VC6_LIBDSP) $(VC6_SRCDSP) $(VC7_LIBVCPROJ) $(VC7_SRCVCPROJ) \
|
|||||||
|
|
||||||
bin_SCRIPTS = curl-config
|
bin_SCRIPTS = curl-config
|
||||||
|
|
||||||
SUBDIRS = lib src include
|
SUBDIRS = lib src include scripts
|
||||||
DIST_SUBDIRS = $(SUBDIRS) tests packages docs
|
DIST_SUBDIRS = $(SUBDIRS) tests packages docs
|
||||||
|
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
@@ -160,10 +160,10 @@ dist-hook:
|
|||||||
done)
|
done)
|
||||||
|
|
||||||
html:
|
html:
|
||||||
cd docs; make html
|
cd docs && make html
|
||||||
|
|
||||||
pdf:
|
pdf:
|
||||||
cd docs; make pdf
|
cd docs && make pdf
|
||||||
|
|
||||||
check: test examples check-docs
|
check: test examples check-docs
|
||||||
|
|
||||||
|
117
RELEASE-NOTES
117
RELEASE-NOTES
@@ -1,18 +1,78 @@
|
|||||||
Curl and libcurl 7.46.0
|
Curl and libcurl 7.47.0
|
||||||
|
|
||||||
Public curl releases: 150
|
Public curl releases: 151
|
||||||
Command line options: 177
|
Command line options: 179
|
||||||
curl_easy_setopt() options: 219
|
curl_easy_setopt() options: 221
|
||||||
Public functions in libcurl: 61
|
Public functions in libcurl: 61
|
||||||
Contributors: 1322
|
Contributors: 1340
|
||||||
|
|
||||||
This release includes the following changes:
|
This release includes the following changes:
|
||||||
|
|
||||||
o
|
o version: Add flag CURL_VERSION_PSL for libpsl
|
||||||
|
o http: added CURL_HTTP_VERSION_2TLS to do HTTP/2 for HTTPS only [8]
|
||||||
|
o curl: use 2TLS by default
|
||||||
|
o curl --expect100-timeout: added [10]
|
||||||
|
o Add .dir-locals and set c-basic-offset to 2 (for emacs) [16]
|
||||||
|
|
||||||
This release includes the following bugfixes:
|
This release includes the following bugfixes:
|
||||||
|
|
||||||
o
|
o curl: avoid local drive traversal when saving file on Windows [33]
|
||||||
|
o NTLM: do not resuse proxy connections without diff proxy credentials [34]
|
||||||
|
o tests: Disable the OAUTHBEARER tests when using a non-default port number [1]
|
||||||
|
o curl: remove keepalive #ifdef checks done on libcurl's behalf
|
||||||
|
o formdata: Check if length is too large for memory [2]
|
||||||
|
o lwip: Fix compatibility issues with later versions [3]
|
||||||
|
o openssl: BoringSSL doesn't have CONF_modules_free
|
||||||
|
o config-win32: Fix warning HAVE_WINSOCK2_H undefined
|
||||||
|
o build: fix compilation error with CURL_DISABLE_VERBOSE_STRINGS [4]
|
||||||
|
o http2: Fix hanging paused stream [5]
|
||||||
|
o scripts/Makefile: fix GNUism and survive no perl [6]
|
||||||
|
o openssl: adapt to 1.1.0+ name changes
|
||||||
|
o openssl: adapt to openssl >= 1.1.0 X509 opaque structs [7]
|
||||||
|
o HTTP2.md: spell fix and remove TODO now implemented
|
||||||
|
o setstropt: const-correctness [9]
|
||||||
|
o cyassl: fix compiler warning on type conversion
|
||||||
|
o gskit: Fix host subject altname verification [11]
|
||||||
|
o http2: Support trailer fields [12]
|
||||||
|
o wolfssl: handle builds without SSLv3 support
|
||||||
|
o cyassl: deal with lack of *get_peer_certificate [13]
|
||||||
|
o sockfilt: do not wait on unreliable file or pipe handle
|
||||||
|
o make: build zsh script even in an out-of-tree build
|
||||||
|
o test 1326: fix getting stuck on Windows
|
||||||
|
o test 87: fix file check on Windows
|
||||||
|
o configure: allow static builds on mingw [14]
|
||||||
|
o configure: detect IPv6 support on Windows [15]
|
||||||
|
o ConnectionExists: with *PIPEWAIT, wait for connections [17]
|
||||||
|
o Makefile.inc: s/curl_SOURCES/CURL_FILES [18]
|
||||||
|
o test 16: fixed for Windows
|
||||||
|
o test 252-255: use datacheck mode text for ASCII-mode LISTings
|
||||||
|
o tftpd server: add Windows support by writing files in binary mode
|
||||||
|
o ftplistparser: fix handling of file LISTings using Windows EOL
|
||||||
|
o tests first.c: fix calculation of sleep timeout on Windows
|
||||||
|
o tests (several): use datacheck mode text for ASCII-mode LISTings
|
||||||
|
o CURLOPT_RANGE.3: for HTTP servers, range support is optional
|
||||||
|
o test 1515: add MSYS support by passing a relative path
|
||||||
|
o curl_global_init.3: Add Windows-specific info for init via DLL [19]
|
||||||
|
o http2: Fix client write for trailers on stream close [20]
|
||||||
|
o mbedtls: Fix ALPN support
|
||||||
|
o connection reuse: IDN host names fixed [21]
|
||||||
|
o http2: Fix PUSH_PROMISE headers being treated as trailers [22]
|
||||||
|
o http2: handle the received SETTINGS frame [23]
|
||||||
|
o http2: Ensure that http2_handle_stream_close is called [24]
|
||||||
|
o mbedtls: implement CURLOPT_PINNEDPUBLICKEY
|
||||||
|
o runtests: Add mbedTLS to the SSL backends
|
||||||
|
o IDN host names: Remove the port number before converting to ACE [25]
|
||||||
|
o zsh.pl: fail if no curl is found
|
||||||
|
o scripts: fix zsh completion generation
|
||||||
|
o scripts: don't generate and install zsh completion when cross-compiling [26]
|
||||||
|
o lib: Prefix URLs with lower-case protocol names/schemes [27]
|
||||||
|
o ConnectionExists: only do pipelining/multiplexing when asked [28]
|
||||||
|
o configure: assume IPv6 works when cross-compiled [29]
|
||||||
|
o openssl: for 1.1.0+ they now provide a SSLeay() macro of their own
|
||||||
|
o openssl: improved error detection/reporting
|
||||||
|
o ssh: CURLOPT_SSH_PUBLIC_KEYFILE now treats "" as NULL again [30]
|
||||||
|
o mbedtls: Fix pinned key return value on fail [31]
|
||||||
|
o maketgz: generate date stamp with LC_TIME=C [32]
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
@@ -21,9 +81,48 @@ This release includes the following known bugs:
|
|||||||
This release would not have looked like this without help, code, reports and
|
This release would not have looked like this without help, code, reports and
|
||||||
advice from friends like these:
|
advice from friends like these:
|
||||||
|
|
||||||
|
Alessandro Ghedini, Anders Bakken, Christian Stewart, Dan Fandrich,
|
||||||
|
Daniel Schauenberg, Daniel Stenberg, Francisco Moraes, Gisle Vanem,
|
||||||
|
Isaac Boukris, Johannes Schindelin, John Kohl, Kamil Dudka, Marc Hoersken,
|
||||||
|
Michael Kaufmann, Mohammad AlSaleh, Patrick Monnerat, Ray Satiro, Steve Holme,
|
||||||
|
Tatsuhiro Tsujikawa, Thomas Glanzmann, Thomas Klausner,
|
||||||
|
(21 contributors)
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
|
||||||
References to bug reports and discussions on issues:
|
References to bug reports and discussions on issues:
|
||||||
|
|
||||||
[1] =
|
[1] = http://curl.haxx.se/mail/lib-2015-12/0003.html
|
||||||
|
[2] = https://github.com/bagder/curl/issues/425#issuecomment-154518679
|
||||||
|
[3] = http://curl.haxx.se/mail/lib-2015-12/0023.html
|
||||||
|
[4] = http://curl.haxx.se/bug/?i=558
|
||||||
|
[5] = http://curl.haxx.se/mail/lib-2015-11/0103.html
|
||||||
|
[6] = http://curl.haxx.se/bug/?i=555
|
||||||
|
[7] = http://curl.haxx.se/bug/?i=491
|
||||||
|
[8] = http://curl.haxx.se/libcurl/c/CURLOPT_HTTP_VERSION.html
|
||||||
|
[9] = http://curl.haxx.se/bug/?i=565
|
||||||
|
[10] = http://curl.haxx.se/docs/manpage.html#--expect100-timeout
|
||||||
|
[11] = http://curl.haxx.se/mail/lib-2015-12/0062.html
|
||||||
|
[12] = http://curl.haxx.se/bug/?i=564
|
||||||
|
[13] = http://curl.haxx.se/bug/?i=565
|
||||||
|
[14] = https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-curl
|
||||||
|
[15] = https://github.com/Alexpux/MINGW-packages/commit/9253d0bf58a1486e91f7efb5316e7fdb48fa4007
|
||||||
|
[16] = http://curl.haxx.se/bug/?i=574
|
||||||
|
[17] = http://curl.haxx.se/bug/?i=575
|
||||||
|
[18] = http://curl.haxx.se/bug/?i=577
|
||||||
|
[19] = http://curl.haxx.se/bug/?i=586
|
||||||
|
[20] = http://curl.haxx.se/bug/?i=564
|
||||||
|
[21] = http://curl.haxx.se/bug/?i=592
|
||||||
|
[22] = http://curl.haxx.se/bug/?i=564
|
||||||
|
[23] = http://curl.haxx.se/mail/lib-2016-01/0031.html
|
||||||
|
[24] = http://curl.haxx.se/bug/?i=564
|
||||||
|
[25] = http://curl.haxx.se/bug/?i=596
|
||||||
|
[26] = http://curl.haxx.se/bug/?i=582
|
||||||
|
[27] = http://curl.haxx.se/bug/?i=597
|
||||||
|
[28] = http://curl.haxx.se/bug/?i=584
|
||||||
|
[29] = http://curl.haxx.se/bug/?i=594
|
||||||
|
[30] = http://curl.haxx.se/mail/lib-2016-01/0072.html
|
||||||
|
[31] = http://curl.haxx.se/bug/?i=601
|
||||||
|
[32] = http://curl.haxx.se/mail/lib-2016-01/0123.html
|
||||||
|
[33] = http://curl.haxx.se/docs/adv_20160127B.html
|
||||||
|
[34] = http://curl.haxx.se/docs/adv_20160127A.html
|
||||||
|
24
acinclude.m4
24
acinclude.m4
@@ -2837,7 +2837,6 @@ AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [
|
|||||||
#
|
#
|
||||||
x_LP64_long=""
|
x_LP64_long=""
|
||||||
x_LP32_long=""
|
x_LP32_long=""
|
||||||
x_LP16_long=""
|
|
||||||
#
|
#
|
||||||
if test "$ac_cv_sizeof_long" -eq "8" &&
|
if test "$ac_cv_sizeof_long" -eq "8" &&
|
||||||
test "$ac_cv_sizeof_voidp" -ge "8"; then
|
test "$ac_cv_sizeof_voidp" -ge "8"; then
|
||||||
@@ -2845,9 +2844,6 @@ AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [
|
|||||||
elif test "$ac_cv_sizeof_long" -eq "4" &&
|
elif test "$ac_cv_sizeof_long" -eq "4" &&
|
||||||
test "$ac_cv_sizeof_voidp" -ge "4"; then
|
test "$ac_cv_sizeof_voidp" -ge "4"; then
|
||||||
x_LP32_long="long"
|
x_LP32_long="long"
|
||||||
elif test "$ac_cv_sizeof_long" -eq "2" &&
|
|
||||||
test "$ac_cv_sizeof_voidp" -ge "2"; then
|
|
||||||
x_LP16_long="long"
|
|
||||||
fi
|
fi
|
||||||
#
|
#
|
||||||
dnl DO_CURL_OFF_T_CHECK results are stored in next 3 vars
|
dnl DO_CURL_OFF_T_CHECK results are stored in next 3 vars
|
||||||
@@ -2881,17 +2877,6 @@ AC_DEFUN([CURL_CONFIGURE_CURL_OFF_T], [
|
|||||||
done
|
done
|
||||||
AC_MSG_RESULT([$curl_typeof_curl_off_t])
|
AC_MSG_RESULT([$curl_typeof_curl_off_t])
|
||||||
fi
|
fi
|
||||||
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
|
||||||
AC_MSG_CHECKING([for 16-bit curl_off_t data type])
|
|
||||||
for t2 in \
|
|
||||||
"$x_LP16_long" \
|
|
||||||
'int16_t' \
|
|
||||||
'__int16' \
|
|
||||||
'int' ; do
|
|
||||||
DO_CURL_OFF_T_CHECK([$t2], [2])
|
|
||||||
done
|
|
||||||
AC_MSG_RESULT([$curl_typeof_curl_off_t])
|
|
||||||
fi
|
|
||||||
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
if test "$curl_typeof_curl_off_t" = "unknown"; then
|
||||||
AC_MSG_ERROR([cannot find data type for curl_off_t.])
|
AC_MSG_ERROR([cannot find data type for curl_off_t.])
|
||||||
fi
|
fi
|
||||||
@@ -3052,9 +3037,14 @@ dnl Optionally PKG_CONFIG_LIBDIR may be given as $pcdir.
|
|||||||
dnl
|
dnl
|
||||||
|
|
||||||
AC_DEFUN([CURL_CHECK_PKGCONFIG], [
|
AC_DEFUN([CURL_CHECK_PKGCONFIG], [
|
||||||
AC_PATH_TOOL( PKGCONFIG, pkg-config, no, $PATH:/usr/bin:/usr/local/bin)
|
if test -n "$PKG_CONFIG"; then
|
||||||
|
PKGCONFIG="$PKG_CONFIG"
|
||||||
|
else
|
||||||
|
AC_PATH_TOOL([PKGCONFIG], [pkg-config], [no],
|
||||||
|
[$PATH:/usr/bin:/usr/local/bin])
|
||||||
|
fi
|
||||||
|
|
||||||
if test x$PKGCONFIG != xno; then
|
if test "x$PKGCONFIG" != "xno"; then
|
||||||
AC_MSG_CHECKING([for $1 options with pkg-config])
|
AC_MSG_CHECKING([for $1 options with pkg-config])
|
||||||
dnl ask pkg-config about $1
|
dnl ask pkg-config about $1
|
||||||
itexists=`CURL_EXPORT_PCDIR([$2]) dnl
|
itexists=`CURL_EXPORT_PCDIR([$2]) dnl
|
||||||
|
213
configure.ac
213
configure.ac
@@ -5,7 +5,7 @@
|
|||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
@@ -149,7 +149,7 @@ AC_SUBST(PKGADD_VENDOR)
|
|||||||
|
|
||||||
dnl
|
dnl
|
||||||
dnl initialize all the info variables
|
dnl initialize all the info variables
|
||||||
curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,cyassl,axtls,winssl,darwinssl} )"
|
curl_ssl_msg="no (--with-{ssl,gnutls,nss,polarssl,mbedtls,cyassl,axtls,winssl,darwinssl} )"
|
||||||
curl_ssh_msg="no (--with-libssh2)"
|
curl_ssh_msg="no (--with-libssh2)"
|
||||||
curl_zlib_msg="no (--with-zlib)"
|
curl_zlib_msg="no (--with-zlib)"
|
||||||
curl_gss_msg="no (--with-gssapi)"
|
curl_gss_msg="no (--with-gssapi)"
|
||||||
@@ -167,6 +167,7 @@ curl_verbose_msg="enabled (--disable-verbose)"
|
|||||||
curl_rtsp_msg="no (--enable-rtsp)"
|
curl_rtsp_msg="no (--enable-rtsp)"
|
||||||
curl_rtmp_msg="no (--with-librtmp)"
|
curl_rtmp_msg="no (--with-librtmp)"
|
||||||
curl_mtlnk_msg="no (--with-libmetalink)"
|
curl_mtlnk_msg="no (--with-libmetalink)"
|
||||||
|
curl_psl_msg="no (--with-libpsl)"
|
||||||
|
|
||||||
init_ssl_msg=${curl_ssl_msg}
|
init_ssl_msg=${curl_ssl_msg}
|
||||||
|
|
||||||
@@ -1082,7 +1083,11 @@ AC_HELP_STRING([--disable-ipv6],[Disable IPv6 support]),
|
|||||||
|
|
||||||
AC_TRY_RUN([ /* is AF_INET6 available? */
|
AC_TRY_RUN([ /* is AF_INET6 available? */
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
#include <winsock2.h>
|
||||||
|
#else
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
|
#endif
|
||||||
#include <stdlib.h> /* for exit() */
|
#include <stdlib.h> /* for exit() */
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
@@ -1096,8 +1101,8 @@ main()
|
|||||||
ipv6=yes,
|
ipv6=yes,
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
ipv6=no,
|
ipv6=no,
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(yes)
|
||||||
ipv6=no
|
ipv6=yes
|
||||||
))
|
))
|
||||||
|
|
||||||
if test "$ipv6" = "yes"; then
|
if test "$ipv6" = "yes"; then
|
||||||
@@ -1109,7 +1114,12 @@ if test "$ipv6" = yes; then
|
|||||||
AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
|
AC_MSG_CHECKING([if struct sockaddr_in6 has sin6_scope_id member])
|
||||||
AC_TRY_COMPILE([
|
AC_TRY_COMPILE([
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <netinet/in.h>] ,
|
#ifdef HAVE_WINSOCK2_H
|
||||||
|
#include <winsock2.h>
|
||||||
|
#include <ws2tcpip.h>
|
||||||
|
#else
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#endif] ,
|
||||||
struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
|
struct sockaddr_in6 s; s.sin6_scope_id = 0; , have_sin6_scope_id=yes)
|
||||||
if test "$have_sin6_scope_id" = yes; then
|
if test "$have_sin6_scope_id" = yes; then
|
||||||
AC_MSG_RESULT([yes])
|
AC_MSG_RESULT([yes])
|
||||||
@@ -1398,6 +1408,24 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||||||
CLEANCPPFLAGS="$CPPFLAGS"
|
CLEANCPPFLAGS="$CPPFLAGS"
|
||||||
CLEANLIBS="$LIBS"
|
CLEANLIBS="$LIBS"
|
||||||
|
|
||||||
|
dnl This is for Msys/Mingw
|
||||||
|
case $host in
|
||||||
|
*-*-msys* | *-*-mingw*)
|
||||||
|
AC_MSG_CHECKING([for gdi32])
|
||||||
|
my_ac_save_LIBS=$LIBS
|
||||||
|
LIBS="-lgdi32 $LIBS"
|
||||||
|
AC_TRY_LINK([#include <windef.h>
|
||||||
|
#include <wingdi.h>],
|
||||||
|
[GdiFlush();],
|
||||||
|
[ dnl worked!
|
||||||
|
AC_MSG_RESULT([yes])],
|
||||||
|
[ dnl failed, restore LIBS
|
||||||
|
LIBS=$my_ac_save_LIBS
|
||||||
|
AC_MSG_RESULT(no)]
|
||||||
|
)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
case "$OPT_SSL" in
|
case "$OPT_SSL" in
|
||||||
yes)
|
yes)
|
||||||
dnl --with-ssl (without path) used
|
dnl --with-ssl (without path) used
|
||||||
@@ -1476,24 +1504,6 @@ if test "$curl_ssl_msg" = "$init_ssl_msg" && test X"$OPT_SSL" != Xno; then
|
|||||||
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
|
CPPFLAGS="$CPPFLAGS $SSL_CPPFLAGS"
|
||||||
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
|
LDFLAGS="$LDFLAGS $SSL_LDFLAGS"
|
||||||
|
|
||||||
dnl This is for Msys/Mingw
|
|
||||||
case $host in
|
|
||||||
*-*-msys* | *-*-mingw*)
|
|
||||||
AC_MSG_CHECKING([for gdi32])
|
|
||||||
my_ac_save_LIBS=$LIBS
|
|
||||||
LIBS="-lgdi32 $LIBS"
|
|
||||||
AC_TRY_LINK([#include <windef.h>
|
|
||||||
#include <wingdi.h>],
|
|
||||||
[GdiFlush();],
|
|
||||||
[ dnl worked!
|
|
||||||
AC_MSG_RESULT([yes])],
|
|
||||||
[ dnl failed, restore LIBS
|
|
||||||
LIBS=$my_ac_save_LIBS
|
|
||||||
AC_MSG_RESULT(no)]
|
|
||||||
)
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
AC_CHECK_LIB(crypto, HMAC_Update,[
|
AC_CHECK_LIB(crypto, HMAC_Update,[
|
||||||
HAVECRYPTO="yes"
|
HAVECRYPTO="yes"
|
||||||
LIBS="-lcrypto $LIBS"
|
LIBS="-lcrypto $LIBS"
|
||||||
@@ -1975,6 +1985,93 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl ----------------------------------------------------
|
||||||
|
dnl check for mbedTLS
|
||||||
|
dnl ----------------------------------------------------
|
||||||
|
|
||||||
|
OPT_MBEDTLS=no
|
||||||
|
|
||||||
|
_cppflags=$CPPFLAGS
|
||||||
|
_ldflags=$LDFLAGS
|
||||||
|
AC_ARG_WITH(mbedtls,dnl
|
||||||
|
AC_HELP_STRING([--with-mbedtls=PATH],[where to look for mbedTLS, PATH points to the installation root])
|
||||||
|
AC_HELP_STRING([--without-mbedtls], [disable mbedTLS detection]),
|
||||||
|
OPT_MBEDTLS=$withval)
|
||||||
|
|
||||||
|
if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
||||||
|
|
||||||
|
if test X"$OPT_MBEDTLS" != Xno; then
|
||||||
|
|
||||||
|
if test "$OPT_MBEDTLS" = "yes"; then
|
||||||
|
OPT_MBEDTLS=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test -z "$OPT_MBEDTLS" ; then
|
||||||
|
dnl check for lib first without setting any new path
|
||||||
|
|
||||||
|
AC_CHECK_LIB(mbedtls, mbedtls_havege_init,
|
||||||
|
dnl libmbedtls found, set the variable
|
||||||
|
[
|
||||||
|
AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
|
||||||
|
AC_SUBST(USE_MBEDTLS, [1])
|
||||||
|
MBEDTLS_ENABLED=1
|
||||||
|
USE_MBEDTLS="yes"
|
||||||
|
curl_ssl_msg="enabled (mbedTLS)"
|
||||||
|
], [], -lmbedx509 -lmbedcrypto)
|
||||||
|
fi
|
||||||
|
|
||||||
|
addld=""
|
||||||
|
addlib=""
|
||||||
|
addcflags=""
|
||||||
|
mbedtlslib=""
|
||||||
|
|
||||||
|
if test "x$USE_MBEDTLS" != "xyes"; then
|
||||||
|
dnl add the path and test again
|
||||||
|
addld=-L$OPT_MBEDTLS/lib$libsuff
|
||||||
|
addcflags=-I$OPT_MBEDTLS/include
|
||||||
|
mbedtlslib=$OPT_MBEDTLS/lib$libsuff
|
||||||
|
|
||||||
|
LDFLAGS="$LDFLAGS $addld"
|
||||||
|
if test "$addcflags" != "-I/usr/include"; then
|
||||||
|
CPPFLAGS="$CPPFLAGS $addcflags"
|
||||||
|
fi
|
||||||
|
|
||||||
|
AC_CHECK_LIB(mbedtls, mbedtls_ssl_init,
|
||||||
|
[
|
||||||
|
AC_DEFINE(USE_MBEDTLS, 1, [if mbedTLS is enabled])
|
||||||
|
AC_SUBST(USE_MBEDTLS, [1])
|
||||||
|
MBEDTLS_ENABLED=1
|
||||||
|
USE_MBEDTLS="yes"
|
||||||
|
curl_ssl_msg="enabled (mbedTLS)"
|
||||||
|
],
|
||||||
|
[
|
||||||
|
CPPFLAGS=$_cppflags
|
||||||
|
LDFLAGS=$_ldflags
|
||||||
|
], -lmbedx509 -lmbedcrypto)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x$USE_MBEDTLS" = "xyes"; then
|
||||||
|
AC_MSG_NOTICE([detected mbedTLS])
|
||||||
|
|
||||||
|
LIBS="-lmbedtls -lmbedx509 -lmbedcrypto $LIBS"
|
||||||
|
|
||||||
|
if test -n "$mbedtlslib"; then
|
||||||
|
dnl when shared libs were found in a path that the run-time
|
||||||
|
dnl linker doesn't search through, we need to add it to
|
||||||
|
dnl LD_LIBRARY_PATH to prevent further configure tests to fail
|
||||||
|
dnl due to this
|
||||||
|
if test "x$cross_compiling" != "xyes"; then
|
||||||
|
LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$mbedtlslib"
|
||||||
|
export LD_LIBRARY_PATH
|
||||||
|
AC_MSG_NOTICE([Added $mbedtlslib to LD_LIBRARY_PATH])
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
fi dnl mbedTLS not disabled
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
dnl ----------------------------------------------------
|
dnl ----------------------------------------------------
|
||||||
dnl check for CyaSSL
|
dnl check for CyaSSL
|
||||||
dnl ----------------------------------------------------
|
dnl ----------------------------------------------------
|
||||||
@@ -2078,11 +2175,11 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||||||
]])
|
]])
|
||||||
],[
|
],[
|
||||||
AC_MSG_RESULT(yes)
|
AC_MSG_RESULT(yes)
|
||||||
AC_DEFINE(USE_CYASSL, 1, [if CyaSSL is enabled])
|
AC_DEFINE(USE_CYASSL, 1, [if CyaSSL/WolfSSL is enabled])
|
||||||
AC_SUBST(USE_CYASSL, [1])
|
AC_SUBST(USE_CYASSL, [1])
|
||||||
CYASSL_ENABLED=1
|
CYASSL_ENABLED=1
|
||||||
USE_CYASSL="yes"
|
USE_CYASSL="yes"
|
||||||
curl_ssl_msg="enabled (CyaSSL)"
|
curl_ssl_msg="enabled (WolfSSL)"
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
AC_MSG_RESULT(no)
|
AC_MSG_RESULT(no)
|
||||||
@@ -2094,7 +2191,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$USE_CYASSL" = "xyes"; then
|
if test "x$USE_CYASSL" = "xyes"; then
|
||||||
AC_MSG_NOTICE([detected CyaSSL])
|
AC_MSG_NOTICE([detected $cyassllibname])
|
||||||
|
|
||||||
dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
|
dnl cyassl/ctaocrypt/types.h needs SIZEOF_LONG_LONG defined!
|
||||||
AC_CHECK_SIZEOF(long long)
|
AC_CHECK_SIZEOF(long long)
|
||||||
@@ -2107,6 +2204,16 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||||||
|
|
||||||
LIBS="-l$cyassllibname -lm $LIBS"
|
LIBS="-l$cyassllibname -lm $LIBS"
|
||||||
|
|
||||||
|
if test "x$cyassllibname" = "xwolfssl"; then
|
||||||
|
dnl Recent WolfSSL versions build without SSLv3 by default
|
||||||
|
dnl WolfSSL needs configure --enable-opensslextra to have *get_peer*
|
||||||
|
AC_CHECK_FUNCS(wolfSSLv3_client_method \
|
||||||
|
wolfSSL_get_peer_certificate)
|
||||||
|
else
|
||||||
|
dnl Cyassl needs configure --enable-opensslextra to have *get_peer*
|
||||||
|
AC_CHECK_FUNCS(CyaSSL_get_peer_certificate)
|
||||||
|
fi
|
||||||
|
|
||||||
if test -n "$cyassllib"; then
|
if test -n "$cyassllib"; then
|
||||||
dnl when shared libs were found in a path that the run-time
|
dnl when shared libs were found in a path that the run-time
|
||||||
dnl linker doesn't search through, we need to add it to
|
dnl linker doesn't search through, we need to add it to
|
||||||
@@ -2299,7 +2406,7 @@ if test "$curl_ssl_msg" = "$init_ssl_msg"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
|
if test "x$OPENSSL_ENABLED$GNUTLS_ENABLED$NSS_ENABLED$POLARSSL_ENABLED$MBEDTLS_ENABLED$AXTLS_ENABLED$CYASSL_ENABLED$WINSSL_ENABLED$DARWINSSL_ENABLED" = "x"; then
|
||||||
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
|
AC_MSG_WARN([SSL disabled, you will not be able to use HTTPS, FTPS, NTLM and more.])
|
||||||
AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
|
AC_MSG_WARN([Use --with-ssl, --with-gnutls, --with-polarssl, --with-cyassl, --with-nss, --with-axtls, --with-winssl, or --with-darwinssl to address this.])
|
||||||
else
|
else
|
||||||
@@ -2314,6 +2421,27 @@ dnl **********************************************************************
|
|||||||
|
|
||||||
CURL_CHECK_CA_BUNDLE
|
CURL_CHECK_CA_BUNDLE
|
||||||
|
|
||||||
|
dnl **********************************************************************
|
||||||
|
dnl Check for libpsl
|
||||||
|
dnl **********************************************************************
|
||||||
|
|
||||||
|
AC_ARG_WITH(libpsl,
|
||||||
|
AS_HELP_STRING([--without-libpsl],
|
||||||
|
[disable support for libpsl cookie checking]),
|
||||||
|
with_libpsl=$withval,
|
||||||
|
with_libpsl=yes)
|
||||||
|
if test $with_libpsl != "no"; then
|
||||||
|
AC_SEARCH_LIBS(psl_builtin, psl,
|
||||||
|
[curl_psl_msg="yes";
|
||||||
|
AC_DEFINE([USE_LIBPSL], [1], [PSL support enabled])
|
||||||
|
],
|
||||||
|
[curl_psl_msg="no (libpsl not found)";
|
||||||
|
AC_MSG_WARN([libpsl was not found])
|
||||||
|
]
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
AM_CONDITIONAL([USE_LIBPSL], [test "$curl_psl_msg" = "yes"])
|
||||||
|
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
dnl Check for libmetalink
|
dnl Check for libmetalink
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
@@ -2921,6 +3049,31 @@ if test X"$want_h2" != Xno; then
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
dnl **********************************************************************
|
||||||
|
dnl Check for zsh completion path
|
||||||
|
dnl **********************************************************************
|
||||||
|
|
||||||
|
OPT_ZSH_FPATH=default
|
||||||
|
AC_ARG_WITH(zsh-functions-dir,
|
||||||
|
AC_HELP_STRING([--with-zsh-functions-dir=PATH],[Install zsh completions to PATH])
|
||||||
|
AC_HELP_STRING([--without-zsh-functions-dir],[Do not install zsh completions]),
|
||||||
|
[OPT_ZSH_FPATH=$withval])
|
||||||
|
case "$OPT_ZSH_FPATH" in
|
||||||
|
no)
|
||||||
|
dnl --without-zsh-functions-dir option used
|
||||||
|
;;
|
||||||
|
default|yes)
|
||||||
|
dnl --with-zsh-functions-dir option used without path
|
||||||
|
ZSH_FUNCTIONS_DIR="$datarootdir/zsh/site-functions"
|
||||||
|
AC_SUBST(ZSH_FUNCTIONS_DIR)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
dnl --with-zsh-functions-dir option used with path
|
||||||
|
ZSH_FUNCTIONS_DIR="$withval"
|
||||||
|
AC_SUBST(ZSH_FUNCTIONS_DIR)
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
dnl Back to "normal" configuring
|
dnl Back to "normal" configuring
|
||||||
dnl **********************************************************************
|
dnl **********************************************************************
|
||||||
@@ -3537,6 +3690,10 @@ if test "x$HAVE_GSSAPI" = "x1"; then
|
|||||||
SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API"
|
SUPPORT_FEATURES="$SUPPORT_FEATURES GSS-API"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if test "x$curl_psl_msg" = "xyes"; then
|
||||||
|
SUPPORT_FEATURES="$SUPPORT_FEATURES PSL"
|
||||||
|
fi
|
||||||
|
|
||||||
if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
|
if test "x$CURL_DISABLE_CRYPTO_AUTH" != "x1" -a \
|
||||||
\( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
|
\( "x$HAVE_GSSAPI" = "x1" -o "x$USE_WINDOWS_SSPI" = "x1" \); then
|
||||||
SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO"
|
SUPPORT_FEATURES="$SUPPORT_FEATURES SPNEGO"
|
||||||
@@ -3684,6 +3841,7 @@ AC_CONFIG_FILES([Makefile \
|
|||||||
include/curl/Makefile \
|
include/curl/Makefile \
|
||||||
src/Makefile \
|
src/Makefile \
|
||||||
lib/Makefile \
|
lib/Makefile \
|
||||||
|
scripts/Makefile \
|
||||||
lib/libcurl.vers \
|
lib/libcurl.vers \
|
||||||
tests/Makefile \
|
tests/Makefile \
|
||||||
tests/certs/Makefile \
|
tests/certs/Makefile \
|
||||||
@@ -3742,6 +3900,7 @@ AC_MSG_NOTICE([Configured to build curl/libcurl:
|
|||||||
RTSP support: ${curl_rtsp_msg}
|
RTSP support: ${curl_rtsp_msg}
|
||||||
RTMP support: ${curl_rtmp_msg}
|
RTMP support: ${curl_rtmp_msg}
|
||||||
metalink support: ${curl_mtlnk_msg}
|
metalink support: ${curl_mtlnk_msg}
|
||||||
|
PSL support: ${curl_psl_msg}
|
||||||
HTTP2 support: ${curl_h2_msg}
|
HTTP2 support: ${curl_h2_msg}
|
||||||
Protocols: ${SUPPORT_PROTOCOLS}
|
Protocols: ${SUPPORT_PROTOCOLS}
|
||||||
])
|
])
|
||||||
|
@@ -1,176 +0,0 @@
|
|||||||
Date: February 11, 2007
|
|
||||||
Author: Daniel Stenberg <daniel@haxx.se>
|
|
||||||
URL: http://curl.haxx.se/legal/distro-dilemma.html
|
|
||||||
|
|
||||||
Condition
|
|
||||||
|
|
||||||
This document is written to describe the situation as it is right now.
|
|
||||||
libcurl 7.16.1 is currently the latest version available. Things may of
|
|
||||||
course change in the future.
|
|
||||||
|
|
||||||
This document reflects my view and understanding of these things. Please tell
|
|
||||||
me where and how you think I'm wrong, and I'll try to correct my mistakes.
|
|
||||||
|
|
||||||
Background
|
|
||||||
|
|
||||||
The Free Software Foundation has deemed the Original BSD license[1] to be
|
|
||||||
"incompatible"[2] with GPL[3]. I'd rather say it is the other way around, but
|
|
||||||
the point is the same: if you distribute a binary version of a GPL program,
|
|
||||||
it MUST NOT be linked with any Original BSD-licensed parts or libraries.
|
|
||||||
Doing so will violate the GPL license. For a long time, very many GPL
|
|
||||||
licensed programs have avoided this license mess by adding an exception[8] to
|
|
||||||
their license. And many others have just closed their eyes for this problem.
|
|
||||||
|
|
||||||
libcurl is MIT-style[4] licensed - how on earth did this dilemma fall onto
|
|
||||||
our plates?
|
|
||||||
|
|
||||||
libcurl is only a little library. libcurl can be built to use OpenSSL for its
|
|
||||||
SSL/TLS capabilities. OpenSSL is basically Original BSD licensed[5].
|
|
||||||
|
|
||||||
If libcurl built to use OpenSSL is used by a GPL-licensed application and you
|
|
||||||
decide to distribute a binary version of it (Linux distros - for example -
|
|
||||||
tend to), you have a clash. GPL vs Original BSD.
|
|
||||||
|
|
||||||
This dilemma is not libcurl-specific nor is it specific to any particular
|
|
||||||
Linux distro. (This article mentions and refers to Debian several times, but
|
|
||||||
only because Debian seems to be the only Linux distro to have faced this
|
|
||||||
issue yet since no other distro is shipping libcurl built with two SSL
|
|
||||||
libraries.)
|
|
||||||
|
|
||||||
Part of the Operating System
|
|
||||||
|
|
||||||
This would not be a problem if the used lib would be considered part of the
|
|
||||||
underlying operating system, as then the GPL license has an exception
|
|
||||||
clause[6] that allows applications to use such libs without having to be
|
|
||||||
allowed to distribute it or its sources. Possibly some distros will claim
|
|
||||||
that OpenSSL is part of their operating system.
|
|
||||||
|
|
||||||
Debian does however not take this stance and has officially(?) claimed that
|
|
||||||
OpenSSL is not a required part of the Debian operating system
|
|
||||||
|
|
||||||
Some people claim that this paragraph cannot be exploited this way by a Linux
|
|
||||||
distro, but I am not a lawyer and that is a discussion left outside of this
|
|
||||||
document.
|
|
||||||
|
|
||||||
GnuTLS
|
|
||||||
|
|
||||||
Since May 2005 libcurl can get built to use GnuTLS instead of OpenSSL. GnuTLS
|
|
||||||
is an LGPL[7] licensed library that offers a matching set of features as
|
|
||||||
OpenSSL does. Now, you can build and distribute an TLS/SSL capable libcurl
|
|
||||||
without including any Original BSD licensed code.
|
|
||||||
|
|
||||||
I believe Debian is the first (only?) distro that provides libcurl/GnuTLS
|
|
||||||
packages.
|
|
||||||
|
|
||||||
yassl
|
|
||||||
|
|
||||||
libcurl can get also get built to use yassl for the TLS/SSL layer. yassl is a
|
|
||||||
GPL[3] licensed library.
|
|
||||||
|
|
||||||
|
|
||||||
GnuTLS vs OpenSSL vs yassl
|
|
||||||
|
|
||||||
While these three libraries offer similar features, they are not equal.
|
|
||||||
libcurl does not (yet) offer a standardized stable ABI if you decide to
|
|
||||||
switch from using libcurl-openssl to libcurl-gnutls or vice-versa. The GnuTLS
|
|
||||||
and yassl support is very recent in libcurl and it has not been tested nor
|
|
||||||
used very extensively, while the OpenSSL equivalent code has been used and
|
|
||||||
thus matured since 1999.
|
|
||||||
|
|
||||||
GnuTLS
|
|
||||||
- LGPL licensed
|
|
||||||
- supports SRP
|
|
||||||
- lacks SSLv2 support
|
|
||||||
- lacks MD2 support (used by at least some CA certs)
|
|
||||||
- lacks the crypto functions libcurl uses for NTLM
|
|
||||||
|
|
||||||
OpenSSL
|
|
||||||
- Original BSD licensed
|
|
||||||
- lacks SRP
|
|
||||||
- supports SSLv2
|
|
||||||
- older and more widely used
|
|
||||||
- provides crypto functions libcurl uses for NTLM
|
|
||||||
- libcurl can do non-blocking connects with it in 7.15.4 and later
|
|
||||||
|
|
||||||
yassl
|
|
||||||
- GPL licensed
|
|
||||||
- much untested and unproven in the real work by (lib)curl users so we don't
|
|
||||||
know a lot about restrictions or benefits from using this
|
|
||||||
|
|
||||||
The Better License, Original BSD, GPL or LGPL?
|
|
||||||
|
|
||||||
It isn't obvious or without debate to any objective interested party that
|
|
||||||
either of these licenses are the "better" or even the "preferred" one in a
|
|
||||||
generic situation.
|
|
||||||
|
|
||||||
Instead, I think we should accept the fact that the SSL/TLS libraries and
|
|
||||||
their different licenses will fit different applications and their authors
|
|
||||||
differently depending on the applications' licenses and their general usage
|
|
||||||
pattern (considering how GPL and LGPL libraries for example can be burdensome
|
|
||||||
for embedded systems usage).
|
|
||||||
|
|
||||||
In Debian land, there seems to be a common opinion that LGPL is "maximally
|
|
||||||
compatible" with apps while Original BSD is not. Like this:
|
|
||||||
|
|
||||||
https://lists.debian.org/debian-devel/2005/09/msg01417.html
|
|
||||||
|
|
||||||
More SSL Libraries
|
|
||||||
|
|
||||||
In libcurl, there's no stopping us here. There are more Open Source/Free
|
|
||||||
SSL/TLS libraries out there and we would very much like to support them as
|
|
||||||
well, to offer application authors an even wider scope of choice.
|
|
||||||
|
|
||||||
Application Angle of this Problem
|
|
||||||
|
|
||||||
libcurl is built to use one SSL/TLS library. It uses a single fixed name (by
|
|
||||||
default) on the built/created lib file, and applications are built/linked to
|
|
||||||
use that single lib. Replacing one libcurl instance with another one that
|
|
||||||
uses the other SSL/TLS library might break one or more applications (due to
|
|
||||||
ABI differences and/or different feature set). You want your application to
|
|
||||||
use the libcurl it was built for.
|
|
||||||
|
|
||||||
Project cURL Angle of this Problem
|
|
||||||
|
|
||||||
We distribute libcurl and everyone may build libcurl with either library at
|
|
||||||
their choice. This problem is not directly a problem of ours. It merely
|
|
||||||
affects users - GPL application authors only - of our lib as it comes
|
|
||||||
included and delivered on some distros.
|
|
||||||
|
|
||||||
libcurl has different ABI when built with different SSL/TLS libraries due to
|
|
||||||
these reasons:
|
|
||||||
|
|
||||||
1. No one has worked on fixing this. The mutex/lock callbacks should be set
|
|
||||||
with a generic libcurl function that should use the proper underlying
|
|
||||||
functions.
|
|
||||||
|
|
||||||
2. The CURLOPT_SSL_CTX_FUNCTION option is not possible to "emulate" on GnuTLS
|
|
||||||
but simply requires OpenSSL.
|
|
||||||
|
|
||||||
3. There might be some other subtle differences just because nobody has yet
|
|
||||||
tried to make a fixed ABI like this.
|
|
||||||
|
|
||||||
Distro Angle of this Problem
|
|
||||||
|
|
||||||
To my knowledge there is only one distro that ships libcurl built with either
|
|
||||||
OpenSSL or GnuTLS.
|
|
||||||
|
|
||||||
Debian Linux is now (since mid September 2005) providing two different
|
|
||||||
libcurl packages, one for libcurl built with OpenSSL and one built with
|
|
||||||
GnuTLS. They use different .so names and can this both be installed in a
|
|
||||||
single system simultaneously. This has been said to be a transitional system
|
|
||||||
not desired to keep in the long run.
|
|
||||||
|
|
||||||
Footnotes
|
|
||||||
|
|
||||||
[1] = http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6
|
|
||||||
[2] = https://www.gnu.org/philosophy/bsd.html
|
|
||||||
[3] = https://www.gnu.org/licenses/gpl.html
|
|
||||||
[4] = http://curl.haxx.se/docs/copyright.html
|
|
||||||
[5] = https://www.openssl.org/source/license.html
|
|
||||||
[6] = https://www.gnu.org/licenses/gpl.html end of section 3
|
|
||||||
[7] = https://www.gnu.org/licenses/lgpl.html
|
|
||||||
[8] = https://en.wikipedia.org/wiki/OpenSSL_exception
|
|
||||||
|
|
||||||
Feedback/Updates provided by
|
|
||||||
|
|
||||||
Eric Cooper
|
|
35
docs/FAQ
35
docs/FAQ
@@ -225,7 +225,9 @@ FAQ
|
|||||||
implement it for you, that is not a very friendly attitude. We spend a
|
implement it for you, that is not a very friendly attitude. We spend a
|
||||||
considerable time already on maintaining and developing curl. In order to
|
considerable time already on maintaining and developing curl. In order to
|
||||||
get more out of us, you should consider trading in some of your time and
|
get more out of us, you should consider trading in some of your time and
|
||||||
efforts in return.
|
efforts in return. Simply go to the GitHub repo which resides at
|
||||||
|
https://github.com/bagder/curl, fork the project, and create pull requests
|
||||||
|
with your proposed changes.
|
||||||
|
|
||||||
If you write the code, chances are bigger that it will get into curl faster.
|
If you write the code, chances are bigger that it will get into curl faster.
|
||||||
|
|
||||||
@@ -251,9 +253,10 @@ FAQ
|
|||||||
|
|
||||||
We still get help from companies. Haxx provides web site, bandwidth, mailing
|
We still get help from companies. Haxx provides web site, bandwidth, mailing
|
||||||
lists etc, sourceforge.net hosts project services we take advantage from,
|
lists etc, sourceforge.net hosts project services we take advantage from,
|
||||||
like the bug tracker and github hosts the primary git repository. Also
|
like the bug tracker, and GitHub hosts the primary git repository at
|
||||||
again, some companies have sponsored certain parts of the development in the
|
https://github.com/bagder/curl. Also again, some companies have sponsored
|
||||||
past and I hope some will continue to do so in the future.
|
certain parts of the development in the past and I hope some will continue to
|
||||||
|
do so in the future.
|
||||||
|
|
||||||
If you want to support our project, consider a donation or a banner-program
|
If you want to support our project, consider a donation or a banner-program
|
||||||
or even better: by helping us coding, documenting, testing etc.
|
or even better: by helping us coding, documenting, testing etc.
|
||||||
@@ -352,13 +355,15 @@ FAQ
|
|||||||
cryptography. When doing so, the Export Control Classification Number (ECCN)
|
cryptography. When doing so, the Export Control Classification Number (ECCN)
|
||||||
is used to identify the level of export control etc.
|
is used to identify the level of export control etc.
|
||||||
|
|
||||||
ASF gives a good explanation at https://www.apache.org/dev/crypto.html
|
Apache Software Foundation gives a good explanation of ECCNs at
|
||||||
|
https://www.apache.org/dev/crypto.html
|
||||||
|
|
||||||
We believe curl's number might be ECCN 5D002, another possibility is
|
We believe curl's number might be ECCN 5D002, another possibility is
|
||||||
5D992. It seems necessary to write them, asking to confirm.
|
5D992. It seems necessary to write them (the authority that administers ECCN
|
||||||
|
numbers), asking to confirm.
|
||||||
|
|
||||||
Comprehensible explanations of the meaning of such numbers and how to
|
Comprehensible explanations of the meaning of such numbers and how to obtain
|
||||||
obtain them (resp.) are here
|
them (resp.) are here
|
||||||
|
|
||||||
http://www.bis.doc.gov/licensing/exportingbasics.htm
|
http://www.bis.doc.gov/licensing/exportingbasics.htm
|
||||||
http://www.bis.doc.gov/licensing/do_i_needaneccn.html
|
http://www.bis.doc.gov/licensing/do_i_needaneccn.html
|
||||||
@@ -1087,7 +1092,7 @@ FAQ
|
|||||||
|
|
||||||
In such cases, the TCP/IP stack is responsible for detecting when the
|
In such cases, the TCP/IP stack is responsible for detecting when the
|
||||||
network connection is irrevocably lost. Since with some protocols it is
|
network connection is irrevocably lost. Since with some protocols it is
|
||||||
perfectly legal for the client wait indefinitely for data, the stack may
|
perfectly legal for the client to wait indefinitely for data, the stack may
|
||||||
never report a problem, and even when it does, it can take up to 20 minutes
|
never report a problem, and even when it does, it can take up to 20 minutes
|
||||||
for it to detect an issue. The curl option --keepalive-time enables
|
for it to detect an issue. The curl option --keepalive-time enables
|
||||||
keep-alive support in the TCP/IP stack which makes it periodically probe the
|
keep-alive support in the TCP/IP stack which makes it periodically probe the
|
||||||
@@ -1536,9 +1541,7 @@ FAQ
|
|||||||
|
|
||||||
7.2 Who wrote PHP/CURL?
|
7.2 Who wrote PHP/CURL?
|
||||||
|
|
||||||
PHP/CURL is a module that comes with the regular PHP package. It depends and
|
PHP/CURL was initially written by Sterling Hughes.
|
||||||
uses libcurl, so you need to have libcurl installed properly first before
|
|
||||||
PHP/CURL can be used. PHP/CURL was initially written by Sterling Hughes.
|
|
||||||
|
|
||||||
7.3 Can I perform multiple requests using the same handle?
|
7.3 Can I perform multiple requests using the same handle?
|
||||||
|
|
||||||
@@ -1547,4 +1550,10 @@ FAQ
|
|||||||
unknown to me).
|
unknown to me).
|
||||||
|
|
||||||
After a transfer, you just set new options in the handle and make another
|
After a transfer, you just set new options in the handle and make another
|
||||||
transfer. This will make libcurl to re-use the same connection if it can.
|
transfer. This will make libcurl re-use the same connection if it can.
|
||||||
|
|
||||||
|
7.4 Does PHP/CURL have dependencies?
|
||||||
|
|
||||||
|
PHP/CURL is a module that comes with the regular PHP package. It depends on
|
||||||
|
and uses libcurl, so you need to have libcurl installed properly before
|
||||||
|
PHP/CURL can be used.
|
||||||
|
@@ -100,8 +100,5 @@ automatically. [Spec](https://tools.ietf.org/html/draft-ietf-httpbis-alt-svc-05)
|
|||||||
TODO
|
TODO
|
||||||
----
|
----
|
||||||
|
|
||||||
- Provide API to set priorities / dependencies of individual streams
|
- Implement "prior-knowledge" HTTP/2 connections over clear text so that
|
||||||
|
|
||||||
- Implement "prior-knowledge" HTTP/2 connecitons over clear text so that
|
|
||||||
curl can connect with HTTP/2 at once without 1.1+Upgrade.
|
curl can connect with HTTP/2 at once without 1.1+Upgrade.
|
||||||
|
|
||||||
|
@@ -33,22 +33,22 @@ SUBDIRS = examples libcurl
|
|||||||
|
|
||||||
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES)
|
CLEANFILES = $(GENHTMLPAGES) $(PDFPAGES)
|
||||||
|
|
||||||
EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \
|
EXTRA_DIST = MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS SSLCERTS \
|
||||||
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \
|
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS VERSIONS \
|
||||||
KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \
|
KNOWN_BUGS BINDINGS $(man_MANS) $(HTMLPAGES) HISTORY INSTALL \
|
||||||
$(PDFPAGES) LICENSE-MIXING README.netware DISTRO-DILEMMA INSTALL.devcpp \
|
$(PDFPAGES) LICENSE-MIXING README.netware INSTALL.devcpp \
|
||||||
MAIL-ETIQUETTE HTTP-COOKIES SECURITY RELEASE-PROCEDURE \
|
MAIL-ETIQUETTE HTTP-COOKIES SECURITY RELEASE-PROCEDURE SSL-PROBLEMS \
|
||||||
SSL-PROBLEMS HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md
|
HTTP2.md ROADMAP.md CODE_OF_CONDUCT.md
|
||||||
|
|
||||||
MAN2HTML= roffit < $< >$@
|
MAN2HTML= roffit < $< >$@
|
||||||
|
|
||||||
SUFFIXES = .1 .html .pdf
|
SUFFIXES = .1 .html .pdf
|
||||||
|
|
||||||
html: $(HTMLPAGES)
|
html: $(HTMLPAGES)
|
||||||
cd libcurl; make html
|
cd libcurl && make html
|
||||||
|
|
||||||
pdf: $(PDFPAGES)
|
pdf: $(PDFPAGES)
|
||||||
cd libcurl; make pdf
|
cd libcurl && make pdf
|
||||||
|
|
||||||
.1.html:
|
.1.html:
|
||||||
$(MAN2HTML)
|
$(MAN2HTML)
|
||||||
|
@@ -18,32 +18,11 @@ HTTP/2
|
|||||||
To decide: if we need to bundle parts of the nghttp2 stuff that probably
|
To decide: if we need to bundle parts of the nghttp2 stuff that probably
|
||||||
won't be shipped by many distros.
|
won't be shipped by many distros.
|
||||||
|
|
||||||
- stream properties API
|
|
||||||
|
|
||||||
Provide options for setting priorities and dependencies among the streams
|
|
||||||
(easy handles). They are mostly information set for the stream and sent to
|
|
||||||
the server so we don't have to add much logic for this.
|
|
||||||
|
|
||||||
- server push
|
|
||||||
|
|
||||||
Not exactly clear exactly how to support this API-wise, but by adding
|
|
||||||
handles without asking for a resource it could be a way to be prepared to
|
|
||||||
receive pushes in case such are sent. We probably need it to still specify
|
|
||||||
a URL with host name, port etc but we probably need a special option to
|
|
||||||
tell libcurl it is for server push purposes.
|
|
||||||
|
|
||||||
- provide option for HTTP/2 "prior knowledge" over clear text
|
- provide option for HTTP/2 "prior knowledge" over clear text
|
||||||
|
|
||||||
As it would avoid the roundtrip-heavy Upgrade: procedures when you _know_
|
As it would avoid the roundtrip-heavy Upgrade: procedures when you _know_
|
||||||
it speaks HTTP/2.
|
it speaks HTTP/2.
|
||||||
|
|
||||||
- provide option to allow curl to default to HTTP/2 only when using HTTPS
|
|
||||||
|
|
||||||
We could switch on HTTP/2 by-default for HTTPS quite easily and it
|
|
||||||
shouldn't hurt anyone, while HTTP/2 for HTTP by default could introduce
|
|
||||||
lots of Upgrade: roundtrips that users won't like. So a separated option
|
|
||||||
alternative makes sense.
|
|
||||||
|
|
||||||
SRV records
|
SRV records
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
@@ -117,7 +96,7 @@ Improve
|
|||||||
|
|
||||||
2. curl -h output (considered overwhelming to users)
|
2. curl -h output (considered overwhelming to users)
|
||||||
|
|
||||||
3. we have > 160 command line options, is there a way to redo things to
|
3. we have > 170 command line options, is there a way to redo things to
|
||||||
simplify or improve the situation as we are likely to keep adding
|
simplify or improve the situation as we are likely to keep adding
|
||||||
features/options in the future too
|
features/options in the future too
|
||||||
|
|
||||||
|
26
docs/THANKS
26
docs/THANKS
@@ -207,6 +207,7 @@ Christian Krause
|
|||||||
Christian Kurz
|
Christian Kurz
|
||||||
Christian Robottom Reis
|
Christian Robottom Reis
|
||||||
Christian Schmitz
|
Christian Schmitz
|
||||||
|
Christian Stewart
|
||||||
Christian Vogt
|
Christian Vogt
|
||||||
Christian Weisgerber
|
Christian Weisgerber
|
||||||
Christophe Demory
|
Christophe Demory
|
||||||
@@ -261,7 +262,9 @@ Daniel Kahn Gillmor
|
|||||||
Daniel Lee Hwang
|
Daniel Lee Hwang
|
||||||
Daniel Melani
|
Daniel Melani
|
||||||
Daniel Mentz
|
Daniel Mentz
|
||||||
|
Daniel Schauenberg
|
||||||
Daniel Seither
|
Daniel Seither
|
||||||
|
Daniel Shahaf
|
||||||
Daniel Steinberg
|
Daniel Steinberg
|
||||||
Daniel Stenberg
|
Daniel Stenberg
|
||||||
Daniel Theron
|
Daniel Theron
|
||||||
@@ -275,6 +278,7 @@ Dave May
|
|||||||
Dave Reisner
|
Dave Reisner
|
||||||
Dave Thompson
|
Dave Thompson
|
||||||
Dave Vasilevsky
|
Dave Vasilevsky
|
||||||
|
Davey Shafik
|
||||||
David Bau
|
David Bau
|
||||||
David Binderman
|
David Binderman
|
||||||
David Blaikie
|
David Blaikie
|
||||||
@@ -328,12 +332,14 @@ Dmitry Falko
|
|||||||
Dmitry Kurochkin
|
Dmitry Kurochkin
|
||||||
Dmitry Popov
|
Dmitry Popov
|
||||||
Dmitry Rechkin
|
Dmitry Rechkin
|
||||||
|
Dmitry S. Baikov
|
||||||
Dolbneff A.V
|
Dolbneff A.V
|
||||||
Domenico Andreoli
|
Domenico Andreoli
|
||||||
Dominick Meglio
|
Dominick Meglio
|
||||||
Dominique Leuenberger
|
Dominique Leuenberger
|
||||||
Doug Kaufman
|
Doug Kaufman
|
||||||
Doug Porter
|
Doug Porter
|
||||||
|
Douglas Creager
|
||||||
Douglas E. Wegscheid
|
Douglas E. Wegscheid
|
||||||
Douglas Kilpatrick
|
Douglas Kilpatrick
|
||||||
Douglas R. Horner
|
Douglas R. Horner
|
||||||
@@ -398,9 +404,11 @@ Feist Josselin
|
|||||||
Felix Yan
|
Felix Yan
|
||||||
Felix von Leitner
|
Felix von Leitner
|
||||||
Feng Tu
|
Feng Tu
|
||||||
|
Flavio Medeiros
|
||||||
Florian Schoppmann
|
Florian Schoppmann
|
||||||
Florian Weimer
|
Florian Weimer
|
||||||
Forrest Cahoon
|
Forrest Cahoon
|
||||||
|
Francisco Moraes
|
||||||
Frank Gevaerts
|
Frank Gevaerts
|
||||||
Frank Hempel
|
Frank Hempel
|
||||||
Frank Keeney
|
Frank Keeney
|
||||||
@@ -549,6 +557,7 @@ Jason Liu
|
|||||||
Jason McDonald
|
Jason McDonald
|
||||||
Jason S. Priebe
|
Jason S. Priebe
|
||||||
Javier Barroso
|
Javier Barroso
|
||||||
|
Javier G. Sogo
|
||||||
Jay Austin
|
Jay Austin
|
||||||
Jayesh A Shah
|
Jayesh A Shah
|
||||||
Jaz Fresh
|
Jaz Fresh
|
||||||
@@ -604,6 +613,7 @@ Johan Nilsson
|
|||||||
Johan van Selst
|
Johan van Selst
|
||||||
Johannes Bauer
|
Johannes Bauer
|
||||||
Johannes Ernst
|
Johannes Ernst
|
||||||
|
Johannes Schindelin
|
||||||
John Bradshaw
|
John Bradshaw
|
||||||
John Coffey
|
John Coffey
|
||||||
John Crow
|
John Crow
|
||||||
@@ -614,7 +624,9 @@ John Gardiner Myers
|
|||||||
John Janssen
|
John Janssen
|
||||||
John Joseph Bachir
|
John Joseph Bachir
|
||||||
John Kelly
|
John Kelly
|
||||||
|
John Kohl
|
||||||
John Lask
|
John Lask
|
||||||
|
John Levon
|
||||||
John Lightsey
|
John Lightsey
|
||||||
John Marino
|
John Marino
|
||||||
John Marshall
|
John Marshall
|
||||||
@@ -633,6 +645,7 @@ Jon Torrey
|
|||||||
Jon Travis
|
Jon Travis
|
||||||
Jon Turner
|
Jon Turner
|
||||||
Jonas Forsman
|
Jonas Forsman
|
||||||
|
Jonas Minnberg
|
||||||
Jonas Schnelli
|
Jonas Schnelli
|
||||||
Jonatan Lander
|
Jonatan Lander
|
||||||
Jonatan Vela
|
Jonatan Vela
|
||||||
@@ -661,6 +674,7 @@ Julien Nabet
|
|||||||
Julien Royer
|
Julien Royer
|
||||||
Jun-ichiro itojun Hagino
|
Jun-ichiro itojun Hagino
|
||||||
Jurij Smakov
|
Jurij Smakov
|
||||||
|
Justin Ehlert
|
||||||
Justin Fletcher
|
Justin Fletcher
|
||||||
Justin Karneges
|
Justin Karneges
|
||||||
Justin Maggard
|
Justin Maggard
|
||||||
@@ -672,6 +686,7 @@ Kai Sommerfeld
|
|||||||
Kai-Uwe Rommel
|
Kai-Uwe Rommel
|
||||||
Kalle Vahlman
|
Kalle Vahlman
|
||||||
Kamil Dudka
|
Kamil Dudka
|
||||||
|
Kang Lin
|
||||||
Kang-Jin Lee
|
Kang-Jin Lee
|
||||||
Karl Moerder
|
Karl Moerder
|
||||||
Karol Pietrzak
|
Karol Pietrzak
|
||||||
@@ -703,6 +718,7 @@ Krishnendu Majumdar
|
|||||||
Krister Johansen
|
Krister Johansen
|
||||||
Kristian Gunstone
|
Kristian Gunstone
|
||||||
Kristian Köhntopp
|
Kristian Köhntopp
|
||||||
|
Kurt Fankhauser
|
||||||
Kyle J. McKay
|
Kyle J. McKay
|
||||||
Kyle L. Huff
|
Kyle L. Huff
|
||||||
Kyle Sallee
|
Kyle Sallee
|
||||||
@@ -719,6 +735,7 @@ Lars Nilsson
|
|||||||
Lars Torben Wilson
|
Lars Torben Wilson
|
||||||
Lau Hang Kin
|
Lau Hang Kin
|
||||||
Laurent Rabret
|
Laurent Rabret
|
||||||
|
Lauri Kasanen
|
||||||
Legoff Vincent
|
Legoff Vincent
|
||||||
Lehel Bernadt
|
Lehel Bernadt
|
||||||
Leif W
|
Leif W
|
||||||
@@ -747,6 +764,7 @@ Lucas Adamski
|
|||||||
Lucas Pardue
|
Lucas Pardue
|
||||||
Ludek Finstrle
|
Ludek Finstrle
|
||||||
Ludovico Cavedon
|
Ludovico Cavedon
|
||||||
|
Lukas Ruzicka
|
||||||
Lukasz Czekierda
|
Lukasz Czekierda
|
||||||
Luke Amery
|
Luke Amery
|
||||||
Luke Call
|
Luke Call
|
||||||
@@ -855,6 +873,7 @@ Michal Marek
|
|||||||
Michał Fita
|
Michał Fita
|
||||||
Michał Górny
|
Michał Górny
|
||||||
Michał Kowalczyk
|
Michał Kowalczyk
|
||||||
|
Michał Piechowski
|
||||||
Michel Promonet
|
Michel Promonet
|
||||||
Michele Bini
|
Michele Bini
|
||||||
Miguel Angel
|
Miguel Angel
|
||||||
@@ -913,6 +932,7 @@ Nis Jorgensen
|
|||||||
Nobuhiro Ban
|
Nobuhiro Ban
|
||||||
Nodak Sodak
|
Nodak Sodak
|
||||||
Norbert Frese
|
Norbert Frese
|
||||||
|
Norbert Kett
|
||||||
Norbert Novotny
|
Norbert Novotny
|
||||||
Ofer
|
Ofer
|
||||||
Ola Mork
|
Ola Mork
|
||||||
@@ -1049,6 +1069,7 @@ Richard Bramante
|
|||||||
Richard Clayton
|
Richard Clayton
|
||||||
Richard Cooper
|
Richard Cooper
|
||||||
Richard Gorton
|
Richard Gorton
|
||||||
|
Richard Hosking
|
||||||
Richard Michael
|
Richard Michael
|
||||||
Richard Moore
|
Richard Moore
|
||||||
Richard Prescott
|
Richard Prescott
|
||||||
@@ -1122,6 +1143,7 @@ Scott Cantor
|
|||||||
Scott Davis
|
Scott Davis
|
||||||
Scott McCreary
|
Scott McCreary
|
||||||
Sean Boudreau
|
Sean Boudreau
|
||||||
|
Sebastian Pohlschmidt
|
||||||
Sebastian Rasmussen
|
Sebastian Rasmussen
|
||||||
Senthil Raja Velu
|
Senthil Raja Velu
|
||||||
Sergei Nikulov
|
Sergei Nikulov
|
||||||
@@ -1195,6 +1217,7 @@ Tatsuhiro Tsujikawa
|
|||||||
Temprimus
|
Temprimus
|
||||||
Terri Oda
|
Terri Oda
|
||||||
Thomas Braun
|
Thomas Braun
|
||||||
|
Thomas Glanzmann
|
||||||
Thomas J. Moore
|
Thomas J. Moore
|
||||||
Thomas Klausner
|
Thomas Klausner
|
||||||
Thomas L. Shinnick
|
Thomas L. Shinnick
|
||||||
@@ -1213,7 +1236,7 @@ Tim Costello
|
|||||||
Tim Harder
|
Tim Harder
|
||||||
Tim Heckman
|
Tim Heckman
|
||||||
Tim Newsome
|
Tim Newsome
|
||||||
Tim Ruehsen
|
Tim Rühsen
|
||||||
Tim Sneddon
|
Tim Sneddon
|
||||||
Tim Stack
|
Tim Stack
|
||||||
Tim Starling
|
Tim Starling
|
||||||
@@ -1302,6 +1325,7 @@ Wojciech Zwiefka
|
|||||||
Wouter Van Rooy
|
Wouter Van Rooy
|
||||||
Wu Yongzheng
|
Wu Yongzheng
|
||||||
Xavier Bouchoux
|
Xavier Bouchoux
|
||||||
|
Xiangbin Li
|
||||||
Yaakov Selkowitz
|
Yaakov Selkowitz
|
||||||
Yamada Yasuharu
|
Yamada Yasuharu
|
||||||
Yang Tse
|
Yang Tse
|
||||||
|
@@ -51,3 +51,4 @@ s/Viktor Szakats/Viktor Szakáts/
|
|||||||
s/Jonathan Cardoso/Jonathan Cardoso Machado/
|
s/Jonathan Cardoso/Jonathan Cardoso Machado/
|
||||||
s/Linus Nielsen/Linus Nielsen Feltzing/
|
s/Linus Nielsen/Linus Nielsen Feltzing/
|
||||||
s/Todd Ouska$/Todd A Ouska/
|
s/Todd Ouska$/Todd A Ouska/
|
||||||
|
s/Tim Ruehsen/Tim Rühsen/
|
||||||
|
112
docs/TODO
112
docs/TODO
@@ -27,11 +27,17 @@
|
|||||||
1.9 Cache negative name resolves
|
1.9 Cache negative name resolves
|
||||||
1.10 Support IDNA2008
|
1.10 Support IDNA2008
|
||||||
1.11 minimize dependencies with dynamicly loaded modules
|
1.11 minimize dependencies with dynamicly loaded modules
|
||||||
|
1.12 have form functions use CURL handle argument
|
||||||
|
1.13 Add CURLOPT_MAIL_CLIENT option
|
||||||
|
1.14 Typesafe curl_easy_setopt()
|
||||||
|
1.15 TCP Fast Open
|
||||||
|
1.16 Try to URL encode given URL
|
||||||
|
|
||||||
2. libcurl - multi interface
|
2. libcurl - multi interface
|
||||||
2.1 More non-blocking
|
2.1 More non-blocking
|
||||||
2.2 Fix HTTP Pipelining for PUT
|
2.2 Better support for same name resolves
|
||||||
2.3 Better support for same name resolves
|
2.3 Non-blocking curl_multi_remove_handle()
|
||||||
|
2.4 Split connect and authentication process
|
||||||
|
|
||||||
3. Documentation
|
3. Documentation
|
||||||
3.1 Update date and version in man pages
|
3.1 Update date and version in man pages
|
||||||
@@ -78,6 +84,7 @@
|
|||||||
11.1 File listing support
|
11.1 File listing support
|
||||||
11.2 Honor file timestamps
|
11.2 Honor file timestamps
|
||||||
11.3 Use NTLMv2
|
11.3 Use NTLMv2
|
||||||
|
11.4 Create remote directories
|
||||||
|
|
||||||
12. New protocols
|
12. New protocols
|
||||||
12.1 RSYNC
|
12.1 RSYNC
|
||||||
@@ -141,8 +148,6 @@
|
|||||||
21.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
|
21.6 remove CURLOPT_DNS_USE_GLOBAL_CACHE
|
||||||
21.7 remove progress meter from libcurl
|
21.7 remove progress meter from libcurl
|
||||||
21.8 remove 'curl_httppost' from public
|
21.8 remove 'curl_httppost' from public
|
||||||
21.9 have form functions use CURL handle argument
|
|
||||||
21.10 Add CURLOPT_MAIL_CLIENT option
|
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
|
|
||||||
@@ -236,6 +241,59 @@
|
|||||||
app/invoke/used protocols would be necessary to load. See
|
app/invoke/used protocols would be necessary to load. See
|
||||||
https://github.com/bagder/curl/issues/349
|
https://github.com/bagder/curl/issues/349
|
||||||
|
|
||||||
|
1.12 have form functions use CURL handle argument
|
||||||
|
|
||||||
|
curl_formadd() and curl_formget() both currently have no CURL handle
|
||||||
|
argument, but both can use a callback that is set in the easy handle, and
|
||||||
|
thus curl_formget() with callback cannot function without first having
|
||||||
|
curl_easy_perform() (or similar) called - which is hard to grasp and a design
|
||||||
|
mistake.
|
||||||
|
|
||||||
|
The curl_formadd() design can probably also be reconsidered to make it easier
|
||||||
|
to use and less error-prone. Probably easiest by splitting it into several
|
||||||
|
function calls.
|
||||||
|
|
||||||
|
1.13 Add CURLOPT_MAIL_CLIENT option
|
||||||
|
|
||||||
|
Rather than use the URL to specify the mail client string to present in the
|
||||||
|
HELO and EHLO commands, libcurl should support a new CURLOPT specifically for
|
||||||
|
specifying this data as the URL is non-standard and to be honest a bit of a
|
||||||
|
hack ;-)
|
||||||
|
|
||||||
|
Please see the following thread for more information:
|
||||||
|
http://curl.haxx.se/mail/lib-2012-05/0178.html
|
||||||
|
|
||||||
|
1.14 Typesafe curl_easy_setopt()
|
||||||
|
|
||||||
|
One of the most common problems in libcurl using applications is the lack of
|
||||||
|
type checks for curl_easy_setopt() which happens because it accepts varargs
|
||||||
|
and thus can take any type.
|
||||||
|
|
||||||
|
One possible solution to this is to introduce a few different versions of the
|
||||||
|
setopt version for the different kinds of data you can set.
|
||||||
|
|
||||||
|
curl_easy_set_num() - sets a long value
|
||||||
|
|
||||||
|
curl_easy_set_large() - sets a curl_off_t value
|
||||||
|
|
||||||
|
curl_easy_set_ptr() - sets a pointer
|
||||||
|
|
||||||
|
curl_easy_set_cb() - sets a callback PLUS its callback data
|
||||||
|
|
||||||
|
1.15 TCP Fast Open
|
||||||
|
|
||||||
|
RFC 7413 defines how to include data already in the TCP SYN handshake to
|
||||||
|
reduce latency.
|
||||||
|
|
||||||
|
1.16 Try to URL encode given URL
|
||||||
|
|
||||||
|
Given a URL that for example contains spaces, libcurl could have an option
|
||||||
|
that would try somewhat harder than it does now and convert spaces to %20 and
|
||||||
|
perhaps URL encoded byte values over 128 etc (basically do what the redirect
|
||||||
|
following code already does).
|
||||||
|
|
||||||
|
https://github.com/bagder/curl/issues/514
|
||||||
|
|
||||||
2. libcurl - multi interface
|
2. libcurl - multi interface
|
||||||
|
|
||||||
2.1 More non-blocking
|
2.1 More non-blocking
|
||||||
@@ -252,13 +310,7 @@
|
|||||||
- The "DONE" operation (post transfer protocol-specific actions) for the
|
- The "DONE" operation (post transfer protocol-specific actions) for the
|
||||||
protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task.
|
protocols SFTP, SMTP, FTP. Fixing Curl_done() for this is a worthy task.
|
||||||
|
|
||||||
2.2 Fix HTTP Pipelining for PUT
|
2.2 Better support for same name resolves
|
||||||
|
|
||||||
HTTP Pipelining can be a way to greatly enhance performance for multiple
|
|
||||||
serial requests and currently libcurl only supports that for HEAD and GET
|
|
||||||
requests but it should also be possible for PUT.
|
|
||||||
|
|
||||||
2.3 Better support for same name resolves
|
|
||||||
|
|
||||||
If a name resolve has been initiated for name NN and a second easy handle
|
If a name resolve has been initiated for name NN and a second easy handle
|
||||||
wants to resolve that name as well, make it wait for the first resolve to end
|
wants to resolve that name as well, make it wait for the first resolve to end
|
||||||
@@ -266,6 +318,20 @@
|
|||||||
especially needed when adding many simultaneous handles using the same host
|
especially needed when adding many simultaneous handles using the same host
|
||||||
name when the DNS resolver can get flooded.
|
name when the DNS resolver can get flooded.
|
||||||
|
|
||||||
|
2.3 Non-blocking curl_multi_remove_handle()
|
||||||
|
|
||||||
|
The multi interface has a few API calls that assume a blocking behavior, like
|
||||||
|
add_handle() and remove_handle() which limits what we can do internally. The
|
||||||
|
multi API need to be moved even more into a single function that "drives"
|
||||||
|
everything in a non-blocking manner and signals when something is done. A
|
||||||
|
remove or add would then only ask for the action to get started and then
|
||||||
|
multi_perform() etc still be called until the add/remove is completed.
|
||||||
|
|
||||||
|
2.4 Split connect and authentication process
|
||||||
|
|
||||||
|
The multi interface treats the authentication process as part of the connect
|
||||||
|
phase. As such any failures during authentication won't trigger the relevant
|
||||||
|
QUIT or LOGOFF for protocols such as IMAP, POP3 and SMTP.
|
||||||
|
|
||||||
3. Documentation
|
3. Documentation
|
||||||
|
|
||||||
@@ -460,6 +526,11 @@ The timestamp of the transferred file should reflect that of the original file.
|
|||||||
|
|
||||||
Currently the SMB authentication uses NTLMv1.
|
Currently the SMB authentication uses NTLMv1.
|
||||||
|
|
||||||
|
11.4 Create remote directories
|
||||||
|
|
||||||
|
Support for creating remote directories when uploading a file to a directory
|
||||||
|
that doesn't exist on the server, just like --ftp-create-dirs.
|
||||||
|
|
||||||
12. New protocols
|
12. New protocols
|
||||||
|
|
||||||
12.1 RSYNC
|
12.1 RSYNC
|
||||||
@@ -815,22 +886,3 @@ Currently the SMB authentication uses NTLMv1.
|
|||||||
|
|
||||||
Changing them to return a private handle will benefit the implementation and
|
Changing them to return a private handle will benefit the implementation and
|
||||||
allow us much greater freedoms while still maintaining a solid API and ABI.
|
allow us much greater freedoms while still maintaining a solid API and ABI.
|
||||||
|
|
||||||
21.9 have form functions use CURL handle argument
|
|
||||||
|
|
||||||
curl_formadd() and curl_formget() both currently have no CURL handle
|
|
||||||
argument, but both can use a callback that is set in the easy handle, and
|
|
||||||
thus curl_formget() with callback cannot function without first having
|
|
||||||
curl_easy_perform() (or similar) called - which is hard to grasp and a design
|
|
||||||
mistake.
|
|
||||||
|
|
||||||
21.10 Add CURLOPT_MAIL_CLIENT option
|
|
||||||
|
|
||||||
Rather than use the URL to specify the mail client string to present in the
|
|
||||||
HELO and EHLO commands, libcurl should support a new CURLOPT specifically for
|
|
||||||
specifying this data as the URL is non-standard and to be honest a bit of a
|
|
||||||
hack ;-)
|
|
||||||
|
|
||||||
Please see the following thread for more information:
|
|
||||||
http://curl.haxx.se/mail/lib-2012-05/0178.html
|
|
||||||
|
|
||||||
|
32
docs/curl.1
32
docs/curl.1
@@ -488,10 +488,10 @@ If this option is used several times, the last one will be used.
|
|||||||
(SSL) Tells curl to use the specified client certificate file when getting a
|
(SSL) Tells curl to use the specified client certificate file when getting a
|
||||||
file with HTTPS, FTPS or another SSL-based protocol. The certificate must be
|
file with HTTPS, FTPS or another SSL-based protocol. The certificate must be
|
||||||
in PKCS#12 format if using Secure Transport, or PEM format if using any other
|
in PKCS#12 format if using Secure Transport, or PEM format if using any other
|
||||||
engine. If the optional password isn't specified, it will be queried
|
engine. If the optional password isn't specified, it will be queried for on
|
||||||
for on the terminal. Note that this option assumes a \&"certificate" file that
|
the terminal. Note that this option assumes a \&"certificate" file that is the
|
||||||
is the private key and the private certificate concatenated! See \fI--cert\fP
|
private key and the client certificate concatenated! See \fI--cert\fP and
|
||||||
and \fI--key\fP to specify them independently.
|
\fI--key\fP to specify them independently.
|
||||||
|
|
||||||
If curl is built against the NSS SSL library then this option can tell
|
If curl is built against the NSS SSL library then this option can tell
|
||||||
curl the nickname of the certificate to use within the NSS database defined
|
curl the nickname of the certificate to use within the NSS database defined
|
||||||
@@ -523,6 +523,13 @@ after having run curl.
|
|||||||
(SSL) Specify the path name to the Entropy Gathering Daemon socket. The socket
|
(SSL) Specify the path name to the Entropy Gathering Daemon socket. The socket
|
||||||
is used to seed the random engine for SSL connections. See also the
|
is used to seed the random engine for SSL connections. See also the
|
||||||
\fI--random-file\fP option.
|
\fI--random-file\fP option.
|
||||||
|
.IP "--expect100-timeout <seconds>"
|
||||||
|
(HTTP) Maximum time in seconds that you allow curl to wait for a 100-continue
|
||||||
|
response when curl emits an Expects: 100-continue header in its request. By
|
||||||
|
default curl will wait one second. This option accepts decimal values! When
|
||||||
|
curl stops waiting, it will continue as if the response has been received.
|
||||||
|
|
||||||
|
(Added in 7.47.0)
|
||||||
.IP "--cert-type <type>"
|
.IP "--cert-type <type>"
|
||||||
(SSL) Tells curl what certificate type the provided certificate is in. PEM,
|
(SSL) Tells curl what certificate type the provided certificate is in. PEM,
|
||||||
DER and ENG are recognized types. If not specified, PEM is assumed.
|
DER and ENG are recognized types. If not specified, PEM is assumed.
|
||||||
@@ -789,10 +796,12 @@ This option can be used multiple times to add/replace/remove multiple headers.
|
|||||||
be the 128 bit MD5 checksum of the remote host's public key, curl will refuse
|
be the 128 bit MD5 checksum of the remote host's public key, curl will refuse
|
||||||
the connection with the host unless the md5sums match. (Added in 7.17.1)
|
the connection with the host unless the md5sums match. (Added in 7.17.1)
|
||||||
.IP "--ignore-content-length"
|
.IP "--ignore-content-length"
|
||||||
(HTTP)
|
For HTTP, Ignore the Content-Length header. This is particularly useful for
|
||||||
Ignore the Content-Length header. This is particularly useful for servers
|
servers running Apache 1.x, which will report incorrect Content-Length for
|
||||||
running Apache 1.x, which will report incorrect Content-Length for files
|
files larger than 2 gigabytes.
|
||||||
larger than 2 gigabytes.
|
|
||||||
|
For FTP (since 7.46.0), skip the RETR command to figure out the size before
|
||||||
|
downloading a file.
|
||||||
.IP "-i, --include"
|
.IP "-i, --include"
|
||||||
(HTTP) Include the HTTP-header in the output. The HTTP-header includes things
|
(HTTP) Include the HTTP-header in the output. The HTTP-header includes things
|
||||||
like server-name, date of the document, HTTP-version and more...
|
like server-name, date of the document, HTTP-version and more...
|
||||||
@@ -1472,13 +1481,10 @@ specifies the last 500 bytes
|
|||||||
specifies the bytes from offset 9500 and forward
|
specifies the bytes from offset 9500 and forward
|
||||||
.TP
|
.TP
|
||||||
.B 0-0,-1
|
.B 0-0,-1
|
||||||
specifies the first and last byte only(*)(H)
|
specifies the first and last byte only(*)(HTTP)
|
||||||
.TP
|
|
||||||
.B 500-700,600-799
|
|
||||||
specifies 300 bytes from offset 500(H)
|
|
||||||
.TP
|
.TP
|
||||||
.B 100-199,500-599
|
.B 100-199,500-599
|
||||||
specifies two separate 100-byte ranges(*)(H)
|
specifies two separate 100-byte ranges(*) (HTTP)
|
||||||
.RE
|
.RE
|
||||||
.IP
|
.IP
|
||||||
(*) = NOTE that this will cause the server to reply with a multipart
|
(*) = NOTE that this will cause the server to reply with a multipart
|
||||||
|
4
docs/examples/.gitignore
vendored
4
docs/examples/.gitignore
vendored
@@ -73,3 +73,7 @@ smtp-vrfy
|
|||||||
url2file
|
url2file
|
||||||
usercertinmem
|
usercertinmem
|
||||||
xmlstream
|
xmlstream
|
||||||
|
http2-download
|
||||||
|
http2-serverpush
|
||||||
|
http2-upload
|
||||||
|
imap-lsub
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
# | (__| |_| | _ <| |___
|
# | (__| |_| | _ <| |___
|
||||||
# \___|\___/|_| \_\_____|
|
# \___|\___/|_| \_\_____|
|
||||||
#
|
#
|
||||||
# Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
# Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
#
|
#
|
||||||
# This software is licensed as described in the file COPYING, which
|
# This software is licensed as described in the file COPYING, which
|
||||||
# you should have received as part of this distribution. The terms
|
# you should have received as part of this distribution. The terms
|
||||||
@@ -32,7 +32,7 @@ check_PROGRAMS = 10-at-a-time anyauthput cookie_interface debug fileupload \
|
|||||||
imap-list imap-lsub imap-fetch imap-store imap-append imap-examine \
|
imap-list imap-lsub imap-fetch imap-store imap-append imap-examine \
|
||||||
imap-search imap-create imap-delete imap-copy imap-noop imap-ssl \
|
imap-search imap-create imap-delete imap-copy imap-noop imap-ssl \
|
||||||
imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
|
imap-tls imap-multi url2file sftpget ftpsget postinmemory http2-download \
|
||||||
http2-upload http2-serverpush
|
http2-upload http2-serverpush getredirect
|
||||||
|
|
||||||
# These examples require external dependencies that may not be commonly
|
# These examples require external dependencies that may not be commonly
|
||||||
# available on POSIX systems, so don't bother attempting to compile them here.
|
# available on POSIX systems, so don't bother attempting to compile them here.
|
||||||
|
@@ -32,51 +32,7 @@ actually torture our web site with your tests! Thanks.
|
|||||||
|
|
||||||
EXAMPLES
|
EXAMPLES
|
||||||
|
|
||||||
anyauthput.c - HTTP PUT using "any" authentication method
|
Each example source code file is designed to be and work stand-alone and
|
||||||
cacertinmem.c - Use a built-in PEM certificate to retrieve a https page
|
rather self-explanatory. The examples may at times lack the level of error
|
||||||
cookie_interface.c - shows usage of simple cookie interface
|
checks you need in a real world, but that is then only for the sake of
|
||||||
curlgtk.c - download using a GTK progress bar
|
readability: to make the code smaller and easier to follow.
|
||||||
curlx.c - getting file info from the remote cert data
|
|
||||||
debug.c - showing how to use the debug callback
|
|
||||||
fileupload.c - uploading to a file:// URL
|
|
||||||
fopen.c - fopen() layer that supports opening URLs and files
|
|
||||||
ftpget.c - simple getting a file from FTP
|
|
||||||
ftpgetresp.c - get the response strings from the FTP server
|
|
||||||
ftpupload.c - upload a file to an FTP server
|
|
||||||
ftpuploadresume.c - resume an upload to an FTP server
|
|
||||||
getinfo.c - get the Content-Type from the recent transfer
|
|
||||||
getinmemory.c - download a file to memory only
|
|
||||||
ghiper.c - curl_multi_socket() using code with glib-2
|
|
||||||
hiperfifo.c - downloads all URLs written to the fifo, using
|
|
||||||
curl_multi_socket() and libevent
|
|
||||||
htmltidy.c - download a document and use libtidy to parse the HTML
|
|
||||||
htmltitle.cc - download a HTML file and extract the <title> tag from a HTML
|
|
||||||
page using libxml
|
|
||||||
http-post.c - HTTP POST
|
|
||||||
httpput.c - HTTP PUT a local file
|
|
||||||
https.c - simple HTTPS transfer
|
|
||||||
imap.c - simple IMAP transfer
|
|
||||||
multi-app.c - a multi-interface app
|
|
||||||
multi-debugcallback.c - a multi-interface app using the debug callback
|
|
||||||
multi-double.c - a multi-interface app doing two simultaneous transfers
|
|
||||||
multi-post.c - a multi-interface app doing a multipart formpost
|
|
||||||
multi-single.c - a multi-interface app getting a single file
|
|
||||||
multi-uv.c - a multi-interface app using libuv
|
|
||||||
multithread.c - an example using multi-treading transferring multiple files
|
|
||||||
opensslthreadlock.c - show how to do locking when using OpenSSL multi-threaded
|
|
||||||
persistant.c - request two URLs with a persistent connection
|
|
||||||
pop3s.c - POP3S transfer
|
|
||||||
pop3slist.c - POP3S LIST
|
|
||||||
post-callback.c - send a HTTP POST using a callback
|
|
||||||
postit2.c - send a HTTP multipart formpost
|
|
||||||
sampleconv.c - showing how a program on a non-ASCII platform would invoke
|
|
||||||
callbacks to do its own codeset conversions instead of using
|
|
||||||
the built-in iconv functions in libcurl
|
|
||||||
sepheaders.c - download headers to a separate file
|
|
||||||
simple.c - the most simple download a URL source
|
|
||||||
simplepost.c - HTTP POST
|
|
||||||
simplessl.c - HTTPS example with certificates many options set
|
|
||||||
synctime.c - Sync local time by extracting date from remote HTTP servers
|
|
||||||
url2file.c - download a document and store it in a file
|
|
||||||
xmlstream.c - Stream-parse a document using the streaming Expat parser
|
|
||||||
10-at-a-time.c - Download many files simultaneously, 10 at a time.
|
|
||||||
|
70
docs/examples/getredirect.c
Normal file
70
docs/examples/getredirect.c
Normal file
@@ -0,0 +1,70 @@
|
|||||||
|
/***************************************************************************
|
||||||
|
* _ _ ____ _
|
||||||
|
* Project ___| | | | _ \| |
|
||||||
|
* / __| | | | |_) | |
|
||||||
|
* | (__| |_| | _ <| |___
|
||||||
|
* \___|\___/|_| \_\_____|
|
||||||
|
*
|
||||||
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
|
*
|
||||||
|
* This software is licensed as described in the file COPYING, which
|
||||||
|
* you should have received as part of this distribution. The terms
|
||||||
|
* are also available at http://curl.haxx.se/docs/copyright.html.
|
||||||
|
*
|
||||||
|
* You may opt to use, copy, modify, merge, publish, distribute and/or sell
|
||||||
|
* copies of the Software, and permit persons to whom the Software is
|
||||||
|
* furnished to do so, under the terms of the COPYING file.
|
||||||
|
*
|
||||||
|
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
|
||||||
|
* KIND, either express or implied.
|
||||||
|
*
|
||||||
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Show how to extract Location: header and URL to redirect to.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
CURL *curl;
|
||||||
|
CURLcode res;
|
||||||
|
char *location;
|
||||||
|
long response_code;
|
||||||
|
|
||||||
|
curl = curl_easy_init();
|
||||||
|
if(curl) {
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||||
|
|
||||||
|
/* example.com is redirected, figure out the redirection! */
|
||||||
|
|
||||||
|
/* Perform the request, res will get the return code */
|
||||||
|
res = curl_easy_perform(curl);
|
||||||
|
/* Check for errors */
|
||||||
|
if(res != CURLE_OK)
|
||||||
|
fprintf(stderr, "curl_easy_perform() failed: %s\n",
|
||||||
|
curl_easy_strerror(res));
|
||||||
|
else {
|
||||||
|
res = curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
|
||||||
|
if((res == CURLE_OK) &&
|
||||||
|
((code / 100) != 3)) {
|
||||||
|
/* a redirect implies a 3xx response code */
|
||||||
|
fprintf(stderr, "Not a redirect.\n");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
res = curl_easy_getinfo(curl, CURLINFO_REDIRECT_URL, &location);
|
||||||
|
|
||||||
|
if((res == CURLE_OK) && location) {
|
||||||
|
/* This is the new absolute URL that you could redirect to, even if
|
||||||
|
* the Location: response header may have been a relative URL. */
|
||||||
|
printf("Redirected to: %s\n", location);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* always cleanup */
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
/* somewhat unix-specific */
|
/* somewhat unix-specific */
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
/* somewhat unix-specific */
|
/* somewhat unix-specific */
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
*/
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
@@ -19,10 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
/* <DESC>
|
/* <DESC>
|
||||||
* Simple IMAP APPEND use
|
* IMAP example showing how to send e-mails
|
||||||
* </DESC>
|
* </DESC>
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to copy an e-mail from one folder to another
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to create a new folder
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to delete a folder
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to obtain information about a folder
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to retreieve e-mails
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example to list the folders within a mailbox
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example to list the subscribed folders
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,7 +19,14 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example using the multi interface
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
/* This is a simple example showing how to fetch mail using libcurl's IMAP
|
/* This is a simple example showing how to fetch mail using libcurl's IMAP
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to perform a noop
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to search for new e-mails
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example using SSL
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example showing how to modify the properties of an e-mail
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* IMAP example using TLS
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -19,10 +19,6 @@
|
|||||||
# KIND, either express or implied.
|
# KIND, either express or implied.
|
||||||
#
|
#
|
||||||
###########################################################################
|
###########################################################################
|
||||||
#
|
|
||||||
# Adapted for djgpp / Watt-32 / DOS by
|
|
||||||
# Gisle Vanem <gvanem@broadpark.no>
|
|
||||||
#
|
|
||||||
|
|
||||||
TOPDIR = ../..
|
TOPDIR = ../..
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,7 +19,11 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* This is an example application source code using the multi interface. */
|
/* <DESC>
|
||||||
|
* A basic application source code using the multi interface doing two
|
||||||
|
* transfers in parallel.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example showing how to delete e-mails
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example to list the contents of a mailbox
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,7 +19,14 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example using the multi interface
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
/* This is a simple example showing how to retrieve mail using libcurl's POP3
|
/* This is a simple example showing how to retrieve mail using libcurl's POP3
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example showing how to perform a noop
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example showing how to retrieve e-mails
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example using SSL
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example showing how to obtain message statistics
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example using TLS
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example showing how to retreive only the headers of an e-mail
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* POP3 example to list the contents of a mailbox by unique ID
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Make a HTTP POST with data from memory and receive response in memory.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* HTTP Multipart formpost with file upload and two additional parts.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
/* Example code that uploads a file name 'foo' to a remote script that accepts
|
/* Example code that uploads a file name 'foo' to a remote script that accepts
|
||||||
* "HTML form based" (as described in RFC1738) uploads using HTTP POST.
|
* "HTML form based" (as described in RFC1738) uploads using HTTP POST.
|
||||||
*
|
*
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,11 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Use the progress callbacks, old and/or new one depending on available
|
||||||
|
* libcurl version.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,11 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Use CURLOPT_RESOLVE to feed custom IP addresses for given host name + port
|
||||||
|
* number combinations.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -27,6 +27,10 @@
|
|||||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
/* <DESC>
|
||||||
|
* A basic RTSP transfer
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,10 +19,13 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* This is a simple example showing how a program on a non-ASCII platform
|
||||||
|
* would invoke callbacks to do its own codeset conversions instead of
|
||||||
|
* using the built-in iconv functions in libcurl.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
This is a simple example showing how a program on a non-ASCII platform
|
|
||||||
would invoke callbacks to do its own codeset conversions instead of
|
|
||||||
using the built-in iconv functions in libcurl.
|
|
||||||
|
|
||||||
The IBM-1047 EBCDIC codeset is used for this example but the code
|
The IBM-1047 EBCDIC codeset is used for this example but the code
|
||||||
would be similar for other non-ASCII codesets.
|
would be similar for other non-ASCII codesets.
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,7 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* An example of curl_easy_send() and curl_easy_recv() usage. */
|
/* <DESC>
|
||||||
|
* An example of curl_easy_send() and curl_easy_recv() usage.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@@ -66,6 +69,14 @@ int main(void)
|
|||||||
size_t iolen;
|
size_t iolen;
|
||||||
curl_off_t nread;
|
curl_off_t nread;
|
||||||
|
|
||||||
|
/* A general note of caution here: if you're using curl_easy_recv() or
|
||||||
|
curl_easy_send() to implement HTTP or _any_ other protocol libcurl
|
||||||
|
supports "natively", you're doing it wrong and you should stop.
|
||||||
|
|
||||||
|
This example uses HTTP only to show how to use this API, it does not
|
||||||
|
suggest that writing an application doing this is sensible.
|
||||||
|
*/
|
||||||
|
|
||||||
curl = curl_easy_init();
|
curl = curl_easy_init();
|
||||||
if(curl) {
|
if(curl) {
|
||||||
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Simple HTTP GET that stores the headers in a separate file
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Uses the CURLINFO_TLS_SESSION data.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
/* Note that this example currently requires cURL to be linked against
|
/* Note that this example currently requires cURL to be linked against
|
||||||
GnuTLS (and this program must also be linked against -lgnutls). */
|
GnuTLS (and this program must also be linked against -lgnutls). */
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Gets a file using an SFTP URL.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Very simple HTTP GET
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Very simple HTTP POST
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Shows HTTPS usage with client certs and optional ssl engine use.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,9 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* This is a multi threaded application that uses a progress bar to show
|
/* <DESC>
|
||||||
|
* A multi threaded application that uses a progress bar to show
|
||||||
* status. It uses Gtk+ to make a smooth pulse.
|
* status. It uses Gtk+ to make a smooth pulse.
|
||||||
*
|
* </DESC>
|
||||||
|
*/
|
||||||
|
/*
|
||||||
* Written by Jud Bishop after studying the other examples provided with
|
* Written by Jud Bishop after studying the other examples provided with
|
||||||
* libcurl.
|
* libcurl.
|
||||||
*
|
*
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,11 +19,17 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example showing how to expand an e-mail mailing list
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
/* This is a simple example showing how to expand an email mailing list.
|
/* This is a simple example showing how to expand an e-mail mailing list.
|
||||||
*
|
*
|
||||||
* Notes:
|
* Notes:
|
||||||
*
|
*
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example showing how to send e-mails
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example using the multi interface
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example using SSL
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,12 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example using TLS
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,11 +19,17 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
|
/* <DESC>
|
||||||
|
* SMTP example showing how to verify an e-mail address
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
/* This is a simple example showing how to verify an email address from an
|
/* This is a simple example showing how to verify an e-mail address from an
|
||||||
* SMTP server.
|
* SMTP server.
|
||||||
*
|
*
|
||||||
* Notes:
|
* Notes:
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Set your system time from a remote HTTP server's Date: header.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
/* This example code only builds as-is on Windows.
|
/* This example code only builds as-is on Windows.
|
||||||
*
|
*
|
||||||
* While Unix/Linux user, you do not need this software.
|
* While Unix/Linux user, you do not need this software.
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2011, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,11 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Show the required mutex callback setups for GnuTLS and OpenSSL when using
|
||||||
|
* libcurl multi-threaded.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
/* A multi-threaded example that uses pthreads and fetches 4 remote files at
|
/* A multi-threaded example that uses pthreads and fetches 4 remote files at
|
||||||
* once over HTTPS. The lock callbacks and stuff assume OpenSSL or GnuTLS
|
* once over HTTPS. The lock callbacks and stuff assume OpenSSL or GnuTLS
|
||||||
* (libgcrypt) so far.
|
* (libgcrypt) so far.
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,6 +19,10 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
|
* Download a given URL into a local file named page.out.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 2013 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,10 +19,13 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
/* <DESC>
|
||||||
/* Example using an in memory PEM user certificate and RSA key to retrieve an
|
/* Example using an in memory PEM user certificate and RSA key to retrieve an
|
||||||
* https page.
|
* https page.
|
||||||
* Written by Ishan SinghLevett, based on Theo Borm's cacertinmem.c.
|
* </DESC>
|
||||||
* Note that to maintain simplicity this example does not use a CA certificate
|
*/
|
||||||
|
/* Written by Ishan SinghLevett, based on Theo Borm's cacertinmem.c.
|
||||||
|
* Note that to maintain simplicity this example does not use a CA certificate
|
||||||
* for peer verification. However, some form of peer verification
|
* for peer verification. However, some form of peer verification
|
||||||
* must be used in real circumstances when a secure connection is required.
|
* must be used in real circumstances when a secure connection is required.
|
||||||
*/
|
*/
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
* | (__| |_| | _ <| |___
|
* | (__| |_| | _ <| |___
|
||||||
* \___|\___/|_| \_\_____|
|
* \___|\___/|_| \_\_____|
|
||||||
*
|
*
|
||||||
* Copyright (C) 1998 - 2013, Daniel Stenberg, <daniel@haxx.se>, et al.
|
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
*
|
*
|
||||||
* This software is licensed as described in the file COPYING, which
|
* This software is licensed as described in the file COPYING, which
|
||||||
* you should have received as part of this distribution. The terms
|
* you should have received as part of this distribution. The terms
|
||||||
@@ -19,8 +19,11 @@
|
|||||||
* KIND, either express or implied.
|
* KIND, either express or implied.
|
||||||
*
|
*
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
/* Stream-parse a document using the streaming Expat parser.
|
/* <DESC>
|
||||||
* Written by David Strauss
|
* Stream-parse a document using the streaming Expat parser.
|
||||||
|
* </DESC>
|
||||||
|
*/
|
||||||
|
/* Written by David Strauss
|
||||||
*
|
*
|
||||||
* Expat => http://www.libexpat.org/
|
* Expat => http://www.libexpat.org/
|
||||||
*
|
*
|
||||||
|
@@ -99,13 +99,13 @@ libcurl-symbols.3: $(srcdir)/symbols-in-versions $(srcdir)/mksymbolsmanpage.pl
|
|||||||
perl $(srcdir)/mksymbolsmanpage.pl < $(srcdir)/symbols-in-versions > $@
|
perl $(srcdir)/mksymbolsmanpage.pl < $(srcdir)/symbols-in-versions > $@
|
||||||
|
|
||||||
html: $(HTMLPAGES)
|
html: $(HTMLPAGES)
|
||||||
cd opts; make html
|
cd opts && make html
|
||||||
|
|
||||||
.3.html:
|
.3.html:
|
||||||
$(MAN2HTML)
|
$(MAN2HTML)
|
||||||
|
|
||||||
pdf: $(PDFPAGES)
|
pdf: $(PDFPAGES)
|
||||||
cd opts; make pdf
|
cd opts && make pdf
|
||||||
|
|
||||||
.3.pdf:
|
.3.pdf:
|
||||||
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
|
@(foo=`echo $@ | sed -e 's/\.[0-9]$$//g'`; \
|
||||||
|
@@ -297,6 +297,13 @@ Disable Transfer decoding. See \fICURLOPT_HTTP_TRANSFER_DECODING(3)\fP
|
|||||||
100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP
|
100-continue timeout. See \fICURLOPT_EXPECT_100_TIMEOUT_MS(3)\fP
|
||||||
.IP CURLOPT_PIPEWAIT
|
.IP CURLOPT_PIPEWAIT
|
||||||
Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP
|
Wait on connection to pipeline on it. See \fICURLOPT_PIPEWAIT(3)\fP
|
||||||
|
.IP CURLOPT_STREAM_DEPENDS
|
||||||
|
This HTTP/2 stream depends on another. See \fICURLOPT_STREAM_DEPENDS(3)\fP
|
||||||
|
.IP CURLOPT_STREAM_DEPENDS_E
|
||||||
|
This HTTP/2 stream depends on another exclusively. See
|
||||||
|
\fICURLOPT_STREAM_DEPENDS_E(3)\fP
|
||||||
|
.IP CURLOPT_STREAM_WEIGHT
|
||||||
|
Set this HTTP/2 stream's weight. See \fICURLOPT_STREAM_WEIGHT(3)\fP
|
||||||
.SH SMTP OPTIONS
|
.SH SMTP OPTIONS
|
||||||
.IP CURLOPT_MAIL_FROM
|
.IP CURLOPT_MAIL_FROM
|
||||||
Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP
|
Address of the sender. See \fICURLOPT_MAIL_FROM(3)\fP
|
||||||
|
@@ -83,7 +83,18 @@ to send away. libcurl will use the pointer and refer to the data in your
|
|||||||
application, so you must make sure it remains until curl no longer needs it.
|
application, so you must make sure it remains until curl no longer needs it.
|
||||||
If the data isn't NUL-terminated, or if you'd like it to contain zero bytes,
|
If the data isn't NUL-terminated, or if you'd like it to contain zero bytes,
|
||||||
you must set its length with \fBCURLFORM_CONTENTSLENGTH\fP.
|
you must set its length with \fBCURLFORM_CONTENTSLENGTH\fP.
|
||||||
|
.IP CURLFORM_CONTENTLEN
|
||||||
|
followed by a curl_off_t value giving the length of the contents. Note that
|
||||||
|
for \fICURLFORM_STREAM\fP contents, this option is mandatory.
|
||||||
|
|
||||||
|
If you pass a 0 (zero) for this option, libcurl will instead do a strlen() on
|
||||||
|
the contents to figure out the size. If you really want to send a zero byte
|
||||||
|
content then you must make sure strlen() on the data pointer returns zero.
|
||||||
|
|
||||||
|
(Option added in 7.46.0)
|
||||||
.IP CURLFORM_CONTENTSLENGTH
|
.IP CURLFORM_CONTENTSLENGTH
|
||||||
|
(This option is deprecated. Use \fICURLFORM_CONTENTLEN\fP instead!)
|
||||||
|
|
||||||
followed by a long giving the length of the contents. Note that for
|
followed by a long giving the length of the contents. Note that for
|
||||||
\fICURLFORM_STREAM\fP contents, this option is mandatory.
|
\fICURLFORM_STREAM\fP contents, this option is mandatory.
|
||||||
|
|
||||||
|
@@ -50,6 +50,10 @@ This doesn't just mean no other thread that is using libcurl. Because
|
|||||||
similarly thread unsafe, it could conflict with any other thread that uses
|
similarly thread unsafe, it could conflict with any other thread that uses
|
||||||
these other libraries.
|
these other libraries.
|
||||||
|
|
||||||
|
If you are initializing libcurl from a Windows DLL you should not initialize it
|
||||||
|
from DllMain or a static initializer because Windows holds the loader lock
|
||||||
|
during that time and it could cause a deadlock.
|
||||||
|
|
||||||
See the description in \fBlibcurl(3)\fP of global environment requirements for
|
See the description in \fBlibcurl(3)\fP of global environment requirements for
|
||||||
details of how to use this function.
|
details of how to use this function.
|
||||||
|
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -27,7 +27,8 @@ curl_multi_socket_action \- reads/writes available data given an action
|
|||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
|
|
||||||
CURLMcode curl_multi_socket_action(CURLM * multi_handle,
|
CURLMcode curl_multi_socket_action(CURLM * multi_handle,
|
||||||
curl_socket_t sockfd, int ev_bitmask,
|
curl_socket_t sockfd,
|
||||||
|
int ev_bitmask,
|
||||||
int *running_handles);
|
int *running_handles);
|
||||||
.fi
|
.fi
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
@@ -76,9 +76,9 @@ typedef struct {
|
|||||||
.fi
|
.fi
|
||||||
|
|
||||||
\fIage\fP describes what the age of this struct is. The number depends on how
|
\fIage\fP describes what the age of this struct is. The number depends on how
|
||||||
new the libcurl you're using is. You are however guaranteed to get a struct that you
|
new the libcurl you're using is. You are however guaranteed to get a struct
|
||||||
have a matching struct for in the header, as you tell libcurl your "age" with
|
that you have a matching struct for in the header, as you tell libcurl your
|
||||||
the input argument.
|
"age" with the input argument.
|
||||||
|
|
||||||
\fIversion\fP is just an ascii string for the libcurl version.
|
\fIversion\fP is just an ascii string for the libcurl version.
|
||||||
|
|
||||||
@@ -149,6 +149,10 @@ libcurl was built with support for HTTP2.
|
|||||||
.IP CURL_VERSION_UNIX_SOCKETS
|
.IP CURL_VERSION_UNIX_SOCKETS
|
||||||
libcurl was built with support for Unix domain sockets.
|
libcurl was built with support for Unix domain sockets.
|
||||||
(Added in 7.40.0)
|
(Added in 7.40.0)
|
||||||
|
.IP CURL_VERSION_PSL
|
||||||
|
libcurl was built with support for Mozilla's Public Suffix List. This makes
|
||||||
|
libcurl ignore cookies with a domain that's on the list.
|
||||||
|
(Added in 7.47.0)
|
||||||
.RE
|
.RE
|
||||||
\fIssl_version\fP is an ASCII string for the OpenSSL version used. If libcurl
|
\fIssl_version\fP is an ASCII string for the OpenSSL version used. If libcurl
|
||||||
has no SSL support, this is NULL.
|
has no SSL support, this is NULL.
|
||||||
|
@@ -194,6 +194,9 @@ object as the program starts up and the destructor as it terminates. As the
|
|||||||
author of this libcurl-using module, you can make the constructor call
|
author of this libcurl-using module, you can make the constructor call
|
||||||
\fIcurl_global_init(3)\fP and the destructor call \fIcurl_global_cleanup(3)\fP
|
\fIcurl_global_init(3)\fP and the destructor call \fIcurl_global_cleanup(3)\fP
|
||||||
and satisfy libcurl's requirements without your user having to think about it.
|
and satisfy libcurl's requirements without your user having to think about it.
|
||||||
|
(Caveat: If you are initializing libcurl from a Windows DLL you should not
|
||||||
|
initialize it from DllMain or a static initializer because Windows holds the
|
||||||
|
loader lock during that time and it could cause a deadlock.)
|
||||||
|
|
||||||
\fIcurl_global_init(3)\fP has an argument that tells what particular parts of
|
\fIcurl_global_init(3)\fP has an argument that tells what particular parts of
|
||||||
the global constant environment to set up. In order to successfully use any
|
the global constant environment to set up. In order to successfully use any
|
||||||
|
@@ -38,7 +38,19 @@ Support for SMTP responses added in 7.25.0.
|
|||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
HTTP, FTP and SMTP
|
HTTP, FTP and SMTP
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
.nf
|
||||||
|
CURL *curl = curl_easy_init();
|
||||||
|
if(curl) {
|
||||||
|
CURLcode res;
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, "http://example.com");
|
||||||
|
res = curl_easy_perform(curl);
|
||||||
|
if(res == CURLE_OK) {
|
||||||
|
long response_code;
|
||||||
|
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &response_code);
|
||||||
|
}
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
}
|
||||||
|
.fi
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
Added in 7.10.8. CURLINFO_HTTP_CODE was added in 7.4.1.
|
Added in 7.10.8. CURLINFO_HTTP_CODE was added in 7.4.1.
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
|
@@ -77,7 +77,8 @@ Returns the header at index 'num' (or NULL). The returned pointer points to a
|
|||||||
Returns the value for the given header name (or NULL). This is a shortcut so
|
Returns the value for the given header name (or NULL). This is a shortcut so
|
||||||
that the application doesn't have to loop through all headers to find the one
|
that the application doesn't have to loop through all headers to find the one
|
||||||
it is interested in. The data pointed will be freed when this callback
|
it is interested in. The data pointed will be freed when this callback
|
||||||
returns.
|
returns. If more than one header field use the same name, this returns only
|
||||||
|
the first one.
|
||||||
.SH CALLBACK RETURN VALUE
|
.SH CALLBACK RETURN VALUE
|
||||||
.IP "CURL_PUSH_OK (0)"
|
.IP "CURL_PUSH_OK (0)"
|
||||||
The application has accepted the stream and it can now start receiving data,
|
The application has accepted the stream and it can now start receiving data,
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -43,7 +43,7 @@ If curl is built against the NSS SSL library, the NSS PEM PKCS#11 module
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
Built-in system specific
|
Built-in system specific
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -39,7 +39,7 @@ to some limitation in openssl.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -33,7 +33,7 @@ socket. It will be used to seed the random engine for SSL.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -85,7 +85,7 @@ static size_t header_callback(char *buffer, size_t size,
|
|||||||
size_t nitems, void *userdata)
|
size_t nitems, void *userdata)
|
||||||
{
|
{
|
||||||
/* received header is nitems * size long in 'buffer' NOT ZERO TERMINATED */
|
/* received header is nitems * size long in 'buffer' NOT ZERO TERMINATED */
|
||||||
/* 'userdata' is set with CURLOPT_WRITEDATA */
|
/* 'userdata' is set with CURLOPT_HEADERDATA */
|
||||||
return nitems * size;
|
return nitems * size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -45,8 +45,15 @@ Enforce HTTP 1.0 requests.
|
|||||||
.IP CURL_HTTP_VERSION_1_1
|
.IP CURL_HTTP_VERSION_1_1
|
||||||
Enforce HTTP 1.1 requests.
|
Enforce HTTP 1.1 requests.
|
||||||
.IP CURL_HTTP_VERSION_2_0
|
.IP CURL_HTTP_VERSION_2_0
|
||||||
Attempt HTTP 2 requests. libcurl will fall back to HTTP 1.x if HTTP 2 can't be
|
Attempt HTTP 2 requests. libcurl will fall back to HTTP 1.1 if HTTP 2 can't be
|
||||||
negotiated with the server. (Added in 7.33.0)
|
negotiated with the server. (Added in 7.33.0)
|
||||||
|
|
||||||
|
The alias \fICURL_HTTP_VERSION_2\fI was added in 7.43.0 to better reflect the
|
||||||
|
actual protocol name.
|
||||||
|
.IP CURL_HTTP_VERSION_2TLS
|
||||||
|
Attempt HTTP 2 over TLS (HTTPS) only. libcurl will fall back to HTTP 1.1 if
|
||||||
|
HTTP 2 can't be negotiated with the HTTPS server. For clear text HTTP servers,
|
||||||
|
libcurl will use 1.1. (Added in 7.47.0)
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
CURL_HTTP_VERSION_NONE
|
CURL_HTTP_VERSION_NONE
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
|
@@ -22,7 +22,7 @@
|
|||||||
.\"
|
.\"
|
||||||
.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
|
.TH CURLOPT_IGNORE_CONTENT_LENGTH 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt options"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response
|
CURLOPT_IGNORE_CONTENT_LENGTH \- ignore content length
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
.nf
|
.nf
|
||||||
#include <curl/curl.h>
|
#include <curl/curl.h>
|
||||||
@@ -30,12 +30,18 @@ CURLOPT_IGNORE_CONTENT_LENGTH \- ignore Content-Length in HTTP response
|
|||||||
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH,
|
CURLcode curl_easy_setopt(CURL *handle, CURLOPT_IGNORE_CONTENT_LENGTH,
|
||||||
long ignore);
|
long ignore);
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
If \fIignore\fP is set to 1, ignore the Content-Length header in the HTTP
|
If \fIignore\fP is set to 1L, ignore the Content-Length header in the HTTP
|
||||||
response. This is useful for Apache 1.x (and similar servers) which will
|
response and ignore asking for or relying on it for FTP transfers.
|
||||||
|
|
||||||
|
This is useful for HTTP with Apache 1.x (and similar servers) which will
|
||||||
report incorrect content length for files over 2 gigabytes. If this option is
|
report incorrect content length for files over 2 gigabytes. If this option is
|
||||||
used, curl will not be able to accurately report progress, and will simply
|
used, curl will not be able to accurately report progress, and will simply
|
||||||
stop the download when the server ends the connection.
|
stop the download when the server ends the connection.
|
||||||
|
|
||||||
|
It is also useful with FTP when for example the file is growing while the
|
||||||
|
transfer is in progress which otherwise will unconditionally cause libcurl to
|
||||||
|
report error.
|
||||||
|
|
||||||
Only use this option if strictly necessary.
|
Only use this option if strictly necessary.
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
0
|
0
|
||||||
@@ -54,7 +60,7 @@ if(curl) {
|
|||||||
}
|
}
|
||||||
.fi
|
.fi
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
Added in 7.14.1
|
Added in 7.14.1. Support for FTP added in 7.46.0.
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -35,7 +35,7 @@ phrase to load a certificate but you need one to load your private key.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -42,7 +42,7 @@ On mismatch, \fICURLE_SSL_PINNEDPUBKEYNOTMATCH\fP is returned.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
.nf
|
.nf
|
||||||
CURL *curl = curl_easy_init();
|
CURL *curl = curl_easy_init();
|
||||||
@@ -91,8 +91,9 @@ footer:
|
|||||||
.fi
|
.fi
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for
|
Added in 7.39.0 for OpenSSL, GnuTLS and GSKit. Added in 7.43.0 for
|
||||||
NSS and wolfSSL/CyaSSL. sha256 support added in 7.44.0 for OpenSSL,
|
NSS and wolfSSL/CyaSSL. Added for mbedtls in 7.47.0, sha256 support
|
||||||
GnuTLS, NSS and wolfSSL/CyaSSL. Other SSL backends not supported.
|
added in 7.44.0 for OpenSSL, GnuTLS, NSS and wolfSSL/CyaSSL. Other
|
||||||
|
SSL backends not supported.
|
||||||
.SH RETURN VALUE
|
.SH RETURN VALUE
|
||||||
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
|
Returns CURLE_OK if TLS enabled, CURLE_UNKNOWN_OPTION if not, or
|
||||||
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
|
CURLE_OUT_OF_MEMORY if there was insufficient heap space.
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -35,9 +35,13 @@ out and X and Y are byte indexes.
|
|||||||
HTTP transfers also support several intervals, separated with commas as in
|
HTTP transfers also support several intervals, separated with commas as in
|
||||||
\fI"X-Y,N-M"\fP. Using this kind of multiple intervals will cause the HTTP
|
\fI"X-Y,N-M"\fP. Using this kind of multiple intervals will cause the HTTP
|
||||||
server to send the response document in pieces (using standard MIME separation
|
server to send the response document in pieces (using standard MIME separation
|
||||||
techniques). For RTSP, the formatting of a range should follow RFC2326 Section
|
techniques). Unfortunately, the HTTP standard (RFC 7233 section 3.1) allows
|
||||||
12.29. For RTSP, byte ranges are \fBnot\fP permitted. Instead, ranges should
|
servers to ignore range requests so even when you set \fICURLOPT_RANGE\fP for
|
||||||
be given in npt, utc, or smpte formats.
|
a request, you may end up getting the full response sent back.
|
||||||
|
|
||||||
|
For RTSP, the formatting of a range should follow RFC2326 Section 12.29. For
|
||||||
|
RTSP, byte ranges are \fBnot\fP permitted. Instead, ranges should be given in
|
||||||
|
npt, utc, or smpte formats.
|
||||||
|
|
||||||
Pass a NULL to this option to disable the use of ranges.
|
Pass a NULL to this option to disable the use of ranges.
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -44,15 +44,14 @@ ADDRESS can of course be either IPv4 or IPv6 style addressing.
|
|||||||
|
|
||||||
This option effectively pre-populates the DNS cache with entries for the
|
This option effectively pre-populates the DNS cache with entries for the
|
||||||
host+port pair so redirects and everything that operations against the
|
host+port pair so redirects and everything that operations against the
|
||||||
HOST+PORT will instead use your provided ADDRESS. Addresses to set with
|
HOST+PORT will instead use your provided ADDRESS. Addresses set with
|
||||||
\fICURL_RESOLVE\fP will not time-out from the DNS cache like ordinary
|
\fICURL_RESOLVE\fP will not time-out from the DNS cache like ordinary entries.
|
||||||
entries.
|
|
||||||
|
|
||||||
You can remove names from the DNS cache again, to stop providing these fake
|
Remove names from the DNS cache again, to stop providing these fake resolves,
|
||||||
resolves, by including a string in the linked list that uses the format
|
by including a string in the linked list that uses the format
|
||||||
\&"-HOST:PORT". The host name must be prefixed with a dash, and the host name
|
\&"-HOST:PORT". The host name must be prefixed with a dash, and the host name
|
||||||
and port number must exactly match what was already added previously. (Added in
|
and port number must exactly match what was already added previously. (Added
|
||||||
7.42.0)
|
in 7.42.0)
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
|
@@ -35,11 +35,11 @@ libcurl defaults to \fB$HOME/.ssh/id_dsa.pub\fP if the HOME environment
|
|||||||
variable is set, and just "id_dsa.pub" in the current directory if HOME is not
|
variable is set, and just "id_dsa.pub" in the current directory if HOME is not
|
||||||
set.
|
set.
|
||||||
|
|
||||||
If an empty string is passed, libcurl will pass no public key to libssh2 which
|
If NULL (or an empty string) is passed, libcurl will pass no public key to
|
||||||
then tries to compute it from the private key, this is known to work when
|
libssh2, which then tries to compute it from the private key. This is known
|
||||||
libssh2 1.4.0+ is linked against OpenSSL.
|
to work with libssh2 1.4.0+ linked against OpenSSL.
|
||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
As explained above
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
SFTP and SCP
|
SFTP and SCP
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -43,7 +43,7 @@ private key with \fICURLOPT_SSLKEY(3)\fP.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -36,7 +36,7 @@ PKCS#12-encoded files.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
"PEM"
|
"PEM"
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -36,7 +36,7 @@ returned.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
NULL
|
NULL
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
.\" * | (__| |_| | _ <| |___
|
.\" * | (__| |_| | _ <| |___
|
||||||
.\" * \___|\___/|_| \_\_____|
|
.\" * \___|\___/|_| \_\_____|
|
||||||
.\" *
|
.\" *
|
||||||
.\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <daniel@haxx.se>, et al.
|
.\" * Copyright (C) 1998 - 2015, Daniel Stenberg, <daniel@haxx.se>, et al.
|
||||||
.\" *
|
.\" *
|
||||||
.\" * This software is licensed as described in the file COPYING, which
|
.\" * This software is licensed as described in the file COPYING, which
|
||||||
.\" * you should have received as part of this distribution. The terms
|
.\" * you should have received as part of this distribution. The terms
|
||||||
@@ -36,7 +36,7 @@ returned.
|
|||||||
.SH DEFAULT
|
.SH DEFAULT
|
||||||
None
|
None
|
||||||
.SH PROTOCOLS
|
.SH PROTOCOLS
|
||||||
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3, SMTPS etc.
|
All TLS based protocols: HTTPS, FTPS, IMAPS, POP3S, SMTPS etc.
|
||||||
.SH EXAMPLE
|
.SH EXAMPLE
|
||||||
TODO
|
TODO
|
||||||
.SH AVAILABILITY
|
.SH AVAILABILITY
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user