gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] [gnurl] 116/116: Merge tag 'curl-7_57_0'


From: gnunet
Subject: [GNUnet-SVN] [gnurl] 116/116: Merge tag 'curl-7_57_0'
Date: Tue, 05 Dec 2017 14:52:26 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a commit to branch master
in repository gnurl.

commit 054e207acc8623ec793c8e7a0e7d01f5aa1423b8
Merge: 131de33cb 62c07b574
Author: ng0 <address@hidden>
AuthorDate: Sun Dec 3 19:49:13 2017 +0000

    Merge tag 'curl-7_57_0'
    
    curl 7.57.0

 .travis.yml                                   |   25 +
 CMake/curl-config.cmake                       |   59 +
 CMakeLists.txt                                |   29 +-
 Makefile.am                                   |   12 +-
 README.md                                     |    1 +
 RELEASE-NOTES                                 |  238 +-
 appveyor.yml                                  |    7 +-
 configure.ac                                  |   95 +
 docs/BUGS                                     |    8 +-
 docs/HELP-US.md                               |    2 +-
 docs/INTERNALS.md                             |   70 +-
 docs/Makefile.am                              |    3 +
 docs/RESOURCES                                |    2 +
 docs/ROADMAP.md                               |   94 +-
 docs/THANKS                                   |   23 +
 docs/TODO                                     |   36 +-
 docs/cmdline-opts/form.d                      |    5 +
 docs/cmdline-opts/interface.d                 |    4 +
 docs/cmdline-opts/resolve.d                   |    2 +
 docs/examples/Makefile.inc                    |    3 +-
 docs/examples/curlx.c                         |    3 +-
 docs/examples/rtsp.c                          |    3 +
 docs/examples/shared-connection-cache.c       |   85 +
 docs/libcurl/gnurl_global_init.3              |    3 +
 docs/libcurl/gnurl_mime_filedata.3            |    4 +-
 docs/libcurl/gnurl_multi_fdset.3              |    9 +-
 docs/libcurl/gnurl_share_setopt.3             |    9 +-
 docs/libcurl/gnurl_version_info.3             |    8 +
 docs/libcurl/libgnurl-share.3                 |    9 +-
 docs/libcurl/libgnurl-tutorial.3              |    2 +-
 docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3  |    3 +-
 docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3 |    3 +-
 docs/libcurl/opts/GNURLOPT_RESOLVE.3          |    4 +-
 docs/libcurl/symbols-in-versions              |    2 +
 include/gnurl/curl.h                          |   12 +-
 lib/CMakeLists.txt                            |   19 +-
 lib/Makefile.inc                              |    6 +-
 lib/Makefile.m32                              |   20 +-
 lib/asyn-ares.c                               |   24 +-
 lib/asyn-thread.c                             |    3 +-
 lib/conncache.c                               |  141 +-
 lib/conncache.h                               |   10 +-
 lib/connect.c                                 |  125 +-
 lib/connect.h                                 |    7 +-
 lib/content_encoding.c                        |  735 +++++-
 lib/content_encoding.h                        |   45 +-
 lib/cookie.c                                  |    2 +-
 lib/curl_config.h.cmake                       |    3 +
 lib/curl_fnmatch.c                            |   20 +-
 lib/curl_ntlm_core.c                          |   25 +-
 lib/curl_setup.h                              |    5 +-
 lib/{vauth/digest.h => curl_sha256.h}         |   25 +-
 lib/curlx.h                                   |   12 +-
 lib/easy.c                                    |   87 +-
 lib/file.c                                    |    4 +-
 lib/ftp.c                                     |   23 +-
 lib/ftplistparser.c                           |  175 +-
 lib/hostasyn.c                                |   10 +-
 lib/hostip.c                                  |   17 +-
 lib/hostip4.c                                 |    9 +-
 lib/hostip6.c                                 |   10 +-
 lib/hostsyn.c                                 |   10 +-
 lib/http.c                                    |   69 +-
 lib/http2.c                                   |    9 +-
 lib/http_chunks.c                             |   42 +-
 lib/http_proxy.c                              |    2 +-
 lib/imap.c                                    |   22 +-
 lib/llist.c                                   |    6 +-
 lib/memdebug.c                                |   23 +-
 lib/memdebug.h                                |   13 +-
 lib/mime.c                                    |    2 -
 lib/multi.c                                   |  112 +-
 lib/multihandle.h                             |    4 -
 lib/pingpong.c                                |   12 +-
 lib/pingpong.h                                |    4 +-
 lib/progress.c                                |   28 +-
 lib/rand.c                                    |    2 +-
 lib/select.c                                  |   12 +-
 lib/sendf.c                                   |    6 +-
 lib/setopt.c                                  | 2554 ++++++++++++++++++++
 lib/{vauth/digest.h => setopt.h}              |   26 +-
 lib/sha256.c                                  |  262 +++
 lib/share.c                                   |    6 +-
 lib/share.h                                   |    5 +-
 lib/smb.c                                     |    2 +-
 lib/smtp.c                                    |    2 +-
 lib/socks.c                                   |    4 +-
 lib/speedcheck.c                              |    2 +-
 lib/ssh.c                                     |    8 +-
 lib/telnet.c                                  |    8 +-
 lib/tftp.c                                    |    4 +-
 lib/timeval.c                                 |   98 +-
 lib/timeval.h                                 |   27 +-
 lib/transfer.c                                |   64 +-
 lib/url.c                                     | 3069 +++----------------------
 lib/url.h                                     |   12 +-
 lib/urldata.h                                 |   48 +-
 lib/vauth/digest.c                            |  194 +-
 lib/vauth/digest.h                            |    6 +-
 lib/vauth/ntlm.c                              |    3 +-
 lib/version.c                                 |   48 +-
 lib/vtls/openssl.c                            |   22 +-
 packages/Symbian/group/libcurl.mmp            |    2 +-
 src/CMakeLists.txt                            |   15 +-
 src/Makefile.m32                              |   20 +-
 src/mkhelp.pl                                 |    2 -
 src/tool_cfgable.h                            |    1 +
 src/tool_formparse.c                          |   71 +-
 src/tool_getparam.c                           |   20 +-
 src/tool_help.c                               |    1 +
 src/tool_metalink.c                           |   27 +-
 src/tool_urlglob.c                            |    8 +-
 tests/data/Makefile.inc                       |   19 +-
 tests/data/test1034                           |   25 +-
 tests/data/test1035                           |   21 +-
 tests/data/test1133                           |   14 +-
 tests/data/test1162                           |   52 +
 tests/data/test1163                           |   52 +
 tests/data/test1263                           |   37 +
 tests/data/test1264                           |   36 +
 tests/data/test1290                           |   48 +
 tests/data/test1291                           |   51 +
 tests/data/test1324                           |   56 +
 tests/data/test1554                           |   77 +
 tests/data/test2058                           |  107 +
 tests/data/test2059                           |  107 +
 tests/data/test2060                           |  107 +
 tests/data/test2061                           |   84 +
 tests/data/test2062                           |   84 +
 tests/data/test2063                           |   84 +
 tests/data/test2064                           |   84 +
 tests/data/test2065                           |   84 +
 tests/data/test2066                           |   84 +
 tests/data/test2067                           |   89 +
 tests/data/test2068                           |   89 +
 tests/data/test2069                           |   89 +
 tests/data/test2070                           |   41 +
 tests/data/test2071                           |   41 +
 tests/data/test2072                           |   38 +
 tests/data/test220                            |    5 +-
 tests/data/test221                            |    5 +-
 tests/data/test222                            |    5 +-
 tests/data/test223                            |    5 +-
 tests/data/test224                            |    5 +-
 tests/data/{test222 => test230}               |   64 +-
 tests/data/{test222 => test314}               |   61 +-
 tests/data/test315                            |   91 +
 tests/libtest/Makefile.inc                    |    7 +-
 tests/libtest/lib1554.c                       |   81 +
 tests/libtest/lib501.c                        |    5 +-
 tests/libtest/lib556.c                        |    4 +-
 tests/libtest/lib650.c                        |   57 +-
 tests/runtests.pl                             |   16 +-
 tests/server/Makefile.inc                     |    2 -
 tests/server/util.c                           |  111 +-
 tests/server/util.h                           |    3 +-
 tests/unit/unit1323.c                         |    2 +-
 tests/unit/unit1399.c                         |    2 +-
 158 files changed, 7538 insertions(+), 4151 deletions(-)

diff --cc docs/libcurl/gnurl_global_init.3
index 2d32e6474,000000000..6ff5b774b
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_global_init.3
+++ b/docs/libcurl/gnurl_global_init.3
@@@ -1,98 -1,0 +1,101 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_global_init 3 "11 May 2004" "libcurl 7.12" "libcurl Manual"
 +.SH NAME
 +curl_global_init - Global libcurl initialisation
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "CURLcode curl_global_init(long " flags ");"
 +.ad
 +.SH DESCRIPTION
 +This function sets up the program environment that libcurl needs.  Think of it
 +as an extension of the library loader.
 +
 +This function must be called at least once within a program (a program is all
 +the code that shares a memory space) before the program calls any other
 +function in libcurl.  The environment it sets up is constant for the life of
 +the program and is the same for every program, so multiple calls have the same
 +effect as one call.
 +
 +The flags option is a bit pattern that tells libcurl exactly what features to
 +init, as described below. Set the desired bits by ORing the values together.
 +In normal operation, you must specify CURL_GLOBAL_ALL.  Don't use any other
 +value unless you are familiar with it and mean to control internal operations 
of
 +libcurl.
 +
 +\fBThis function is not thread safe.\fP You must not call it when any other
 +thread in the program (i.e. a thread sharing the same memory) is running.
 +This doesn't just mean no other thread that is using libcurl.  Because
 +\fIcurl_global_init(3)\fP calls functions of other libraries that are
 +similarly thread unsafe, it could conflict with any other thread that uses
 +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 \fIlibcurl(3)\fP of global environment requirements for
 +details of how to use this function.
 +.SH FLAGS
 +.IP CURL_GLOBAL_ALL
 +Initialize everything possible. This sets all known bits except
 +\fBCURL_GLOBAL_ACK_EINTR\fP.
 +
 +.IP CURL_GLOBAL_SSL
++(This flag's presence or absense serves no meaning since 7.57.0. The
++description below is for older libcurl versions.)
++
 +Initialize SSL.
 +
 +The implication here is that if this bit is not set, the initialization of the
 +SSL layer needs to be done by the application or at least outside of
 +libcurl. The exact procedure how to do SSL initializtion depends on the TLS
 +backend libcurl uses.
 +
 +Doing TLS based transfers without having the TLS layer initialized may lead to
 +unexpected behaviors.
 +.IP CURL_GLOBAL_WIN32
 +Initialize the Win32 socket libraries.
 +
 +The implication here is that if this bit is not set, the initialization of
 +winsock has to be done by the application or you risk getting undefined
 +behaviors. This option exists for when the initialization is handled outside
 +of libcurl so there's no need for libcurl to do it again.
 +.IP CURL_GLOBAL_NOTHING
 +Initialise nothing extra. This sets no bit.
 +.IP CURL_GLOBAL_DEFAULT
 +A sensible default. It will init both SSL and Win32. Right now, this equals
 +the functionality of the \fBCURL_GLOBAL_ALL\fP mask.
 +.IP CURL_GLOBAL_ACK_EINTR
 +When this flag is set, curl will acknowledge EINTR condition when connecting
 +or when waiting for data.  Otherwise, curl waits until full timeout
 +elapses. (Added in 7.30.0)
 +.SH RETURN VALUE
 +If this function returns non-zero, something went wrong and you cannot use the
 +other curl functions.
 +.SH "SEE ALSO"
 +.BR curl_global_init_mem "(3), "
 +.BR curl_global_cleanup "(3), "
 +.BR curl_global_sslset "(3), "
 +.BR curl_easy_init "(3) "
 +.BR libcurl "(3) "
diff --cc docs/libcurl/gnurl_multi_fdset.3
index a2a7b28b0,000000000..a098ed0e6
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_multi_fdset.3
+++ b/docs/libcurl/gnurl_multi_fdset.3
@@@ -1,83 -1,0 +1,84 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2014, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_multi_fdset 3 "2 Jan 2006" "libcurl 7.16.0" "libcurl Manual"
 +.SH NAME
 +curl_multi_fdset - extracts file descriptor information from a multi handle
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLMcode curl_multi_fdset(CURLM *multi_handle,
 +                           fd_set *read_fd_set,
 +                           fd_set *write_fd_set,
 +                           fd_set *exc_fd_set,
 +                           int *max_fd);
 +.ad
 +.SH DESCRIPTION
 +This function extracts file descriptor information from a given multi_handle.
 +libcurl returns its fd_set sets. The application can use these to select() on,
 +but be sure to FD_ZERO them before calling this function as
 +\fIcurl_multi_fdset(3)\fP only adds its own descriptors, it doesn't zero or
 +otherwise remove any others. The \fIcurl_multi_perform(3)\fP function should
 +be called as soon as one of them is ready to be read from or written to.
 +
 +If the \fIread_fd_set\fP argument is not a null pointer, it points to an
 +object of type fd_set that on returns specifies the file descriptors to be
 +checked for being ready to read.
 +
 +If the \fIwrite_fd_set\fP argument is not a null pointer, it points to an
 +object of type fd_set that on return specifies the file descriptors to be
 +checked for being ready to write.
 +
 +If the \fIexc_fd_set\fP argument is not a null pointer, it points to an object
 +of type fd_set that on return specifies the file descriptors to be checked for
 +error conditions pending.
 +
 +If no file descriptors are set by libcurl, \fImax_fd\fP will contain -1 when
 +this function returns. Otherwise it will contain the highest descriptor number
 +libcurl set. When libcurl returns -1 in \fImax_fd\fP, it is because libcurl
 +currently does something that isn't possible for your application to monitor
 +with a socket and unfortunately you can then not know exactly when the current
 +action is completed using select(). You then need to wait a while before you
- proceed and call \fIcurl_multi_perform(3)\fP anyway. How long to wait? We
- suggest 100 milliseconds at least, but you may want to test it out in your own
- particular conditions to find a suitable value.
++proceed and call \fIcurl_multi_perform(3)\fP anyway. How long to wait? Unless
++\fIcurl_multi_timeout(3)\fP gives you a lower number, we suggest 100
++milliseconds or so, but you may want to test it out in your own particular
++conditions to find a suitable value.
 +
 +When doing select(), you should use \fIcurl_multi_timeout(3)\fP to figure out
 +how long to wait for action. Call \fIcurl_multi_perform(3)\fP even if no
 +activity has been seen on the fd_sets after the timeout expires as otherwise
 +internal retries and timeouts may not work as you'd think and want.
 +
 +If one of the sockets used by libcurl happens to be larger than what can be
 +set in an fd_set, which on POSIX systems means that the file descriptor is
 +larger than FD_SETSIZE, then libcurl will try to not set it. Setting a too
 +large file descriptor in an fd_set implies an out of bounds write which can
 +cause crashes, or worse. The effect of NOT storing it will possibly save you
 +from the crash, but will make your program NOT wait for sockets it should wait
 +for...
 +.SH RETURN VALUE
 +CURLMcode type, general libcurl multi interface error code. See
 +\fIlibcurl-errors(3)\fP
 +.SH "SEE ALSO"
 +.BR curl_multi_cleanup "(3), " curl_multi_init "(3), "
 +.BR curl_multi_wait "(3), "
 +.BR curl_multi_timeout "(3), " curl_multi_perform "(3), " select "(2) "
diff --cc docs/libcurl/gnurl_share_setopt.3
index 9e06b9d38,000000000..57fb7d9e5
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_share_setopt.3
+++ b/docs/libcurl/gnurl_share_setopt.3
@@@ -1,86 -1,0 +1,93 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2011, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.TH curl_share_setopt 3 "8 Aug 2003" "libcurl 7.10.7" "libcurl Manual"
 +.SH NAME
 +curl_share_setopt - Set options for a shared object
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +CURLSHcode curl_share_setopt(CURLSH *share, CURLSHoption option, parameter);
 +.ad
 +.SH DESCRIPTION
 +Set the \fIoption\fP to \fIparameter\fP for the given \fIshare\fP.
 +.SH OPTIONS
 +.IP CURLSHOPT_LOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void lock_function(CURL *handle, curl_lock_data data, curl_lock_access access,
 +void *userptr);
 +
 +\fIdata\fP defines what data libcurl wants to lock, and you must make sure 
that
 +only one lock is given at any time for each kind of data.
 +
 +\fIaccess\fP defines what access type libcurl wants, shared or single.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_UNLOCKFUNC
 +The \fIparameter\fP must be a pointer to a function matching the following
 +prototype:
 +
 +void unlock_function(CURL *handle, curl_lock_data data, void *userptr);
 +
 +\fIdata\fP defines what data libcurl wants to unlock, and you must make sure
 +that only one lock is given at any time for each kind of data.
 +
 +\fIuserptr\fP is the pointer you set with \fICURLSHOPT_USERDATA\fP.
 +.IP CURLSHOPT_SHARE
 +The \fIparameter\fP specifies a type of data that should be shared. This may
 +be set to one of the values described below.
 +.RS
 +.IP CURL_LOCK_DATA_COOKIE
 +Cookie data will be shared across the easy handles using this shared object.
 +.IP CURL_LOCK_DATA_DNS
 +Cached DNS hosts will be shared across the easy handles using this shared
 +object. Note that when you use the multi interface, all easy handles added to
 +the same multi handle will share DNS cache by default without this having to
 +be used!
 +.IP CURL_LOCK_DATA_SSL_SESSION
 +SSL session IDs will be shared across the easy handles using this shared
 +object. This will reduce the time spent in the SSL handshake when reconnecting
 +to the same server. Note SSL session IDs are reused within the same easy 
handle
 +by default. Note this symbol was added in 7.10.3 but was not implemented until
 +7.23.0.
++.IP CURL_LOCK_DATA_CONNECT
++Put the connection cache in the share object and make all easy handles using
++this share object share the connection cache. Using this, you can for example
++do multi-threaded libcurl use with one handle in each thread, and yet have a
++shared pool of unused connections and this way get way better connection
++re-use than if you use one separate pool in each thread. Support for this was
++added in 7.57.0, but the symbol existed long before this.
 +.RE
 +.IP CURLSHOPT_UNSHARE
 +This option does the opposite of \fICURLSHOPT_SHARE\fP. It specifies that
 +the specified \fIparameter\fP will no longer be shared. Valid values are
 +the same as those for \fICURLSHOPT_SHARE\fP.
 +.IP CURLSHOPT_USERDATA
 +The \fIparameter\fP allows you to specify a pointer to data that will be 
passed
 +to the lock_function and unlock_function each time it is called.
 +.SH RETURN VALUE
 +CURLSHE_OK (zero) means that the option was set properly, non-zero means an
 +error occurred as \fI<curl/curl.h>\fP defines. See the \fIlibcurl-errors.3\fP
 +man page for the full list with descriptions.
 +.SH "SEE ALSO"
 +.BR curl_share_cleanup "(3), " curl_share_init "(3)"
diff --cc docs/libcurl/gnurl_version_info.3
index 35d7f4522,000000000..18d3bd2f5
mode 100644,000000..100644
--- a/docs/libcurl/gnurl_version_info.3
+++ b/docs/libcurl/gnurl_version_info.3
@@@ -1,180 -1,0 +1,188 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH curl_version_info 3 "2 Nov 2014" "libcurl 7.40.0" "libcurl Manual"
 +.SH NAME
 +curl_version_info - returns run-time libcurl version info
 +.SH SYNOPSIS
 +.B #include <gnurl/curl.h>
 +.sp
 +.BI "curl_version_info_data *curl_version_info( CURLversion "type ");"
 +.ad
 +.SH DESCRIPTION
 +Returns a pointer to a filled in static struct with information about various
 +features in the running version of libcurl. \fItype\fP should be set to the
 +version of this functionality by the time you write your program. This way,
 +libcurl will always return a proper struct that your program understands,
 +while programs in the future might get a different
 +struct. \fBCURLVERSION_NOW\fP will be the most recent one for the library you
 +have installed:
 +
 +        data = curl_version_info(CURLVERSION_NOW);
 +
 +Applications should use this information to judge if things are possible to do
 +or not, instead of using compile-time checks, as dynamic/DLL libraries can be
 +changed independent of applications.
 +
 +The curl_version_info_data struct looks like this
 +
 +.nf
 +typedef struct {
 +  CURLversion age;          /* see description below */
 +
 +  /* when 'age' is 0 or higher, the members below also exist: */
 +  const char *version;      /* human readable string */
 +  unsigned int version_num; /* numeric representation */
 +  const char *host;         /* human readable string */
 +  int features;             /* bitmask, see below */
 +  char *ssl_version;        /* human readable string */
 +  long ssl_version_num;     /* not used, always zero */
 +  const char *libz_version; /* human readable string */
 +  const char * const *protocols; /* protocols */
 +
 +  /* when 'age' is 1 or higher, the members below also exist: */
 +  const char *ares;         /* human readable string */
 +  int ares_num;             /* number */
 +
 +  /* when 'age' is 2 or higher, the member below also exists: */
 +  const char *libidn;       /* human readable string */
 +
 +  /* when 'age' is 3 or higher (7.16.1 or later), the members below also
 +     exist  */
 +  int iconv_ver_num;       /* '_libiconv_version' if iconv support enabled */
 +
 +  const char *libssh_version; /* human readable string */
 +
++  /* when 'age' is 4 or higher (7.57.0 or later), the members below also
++     exist  */
++  unsigned int brotli_ver_num; /* Numeric Brotli version
++                                  (MAJOR << 24) | (MINOR << 12) | PATCH */
++  const char *brotli_version; /* human readable string. */
++
 +} curl_version_info_data;
 +.fi
 +
 +\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 have a matching struct for in the header, as you tell libcurl your
 +"age" with the input argument.
 +
 +\fIversion\fP is just an ascii string for the libcurl version.
 +
 +\fIversion_num\fP is a 24 bit number created like this: <8 bits major number>
 +| <8 bits minor number> | <8 bits patch number>. Version 7.9.8 is therefore
 +returned as 0x070908.
 +
 +\fIhost\fP is an ascii string showing what host information that this libcurl
 +was built for. As discovered by a configure script or set by the build
 +environment.
 +
 +\fIfeatures\fP can have none, one or more bits set, and the currently defined
 +bits are:
 +.RS
 +.IP CURL_VERSION_IPV6
 +supports IPv6
 +.IP CURL_VERSION_KERBEROS4
 +supports Kerberos V4 (when using FTP)
 +.IP CURL_VERSION_KERBEROS5
 +supports Kerberos V5 authentication for FTP, IMAP, POP3, SMTP and SOCKSv5 
proxy
 +(Added in 7.40.0)
 +.IP CURL_VERSION_SSL
 +supports SSL (HTTPS/FTPS) (Added in 7.10)
 +.IP CURL_VERSION_LIBZ
 +supports HTTP deflate using libz (Added in 7.10)
 +.IP CURL_VERSION_NTLM
 +supports HTTP NTLM (added in 7.10.6)
 +.IP CURL_VERSION_GSSNEGOTIATE
 +supports HTTP GSS-Negotiate (added in 7.10.6)
 +.IP CURL_VERSION_DEBUG
 +libcurl was built with debug capabilities (added in 7.10.6)
 +.IP CURL_VERSION_CURLDEBUG
 +libcurl was built with memory tracking debug capabilities. This is mainly of
 +interest for libcurl hackers. (added in 7.19.6)
 +.IP CURL_VERSION_ASYNCHDNS
 +libcurl was built with support for asynchronous name lookups, which allows
 +more exact timeouts (even on Windows) and less blocking when using the multi
 +interface. (added in 7.10.7)
 +.IP CURL_VERSION_SPNEGO
 +libcurl was built with support for SPNEGO authentication (Simple and Protected
 +GSS-API Negotiation Mechanism, defined in RFC 2478.) (added in 7.10.8)
 +.IP CURL_VERSION_LARGEFILE
 +libcurl was built with support for large files. (Added in 7.11.1)
 +.IP CURL_VERSION_IDN
 +libcurl was built with support for IDNA, domain names with international
 +letters. (Added in 7.12.0)
 +.IP CURL_VERSION_SSPI
 +libcurl was built with support for SSPI. This is only available on Windows and
 +makes libcurl use Windows-provided functions for Kerberos, NTLM, SPNEGO and
 +Digest authentication. It also allows libcurl to use the current user
 +credentials without the app having to pass them on. (Added in 7.13.2)
 +.IP CURL_VERSION_GSSAPI
 +libcurl was built with support for GSS-API. This makes libcurl use provided
 +functions for Kerberos and SPNEGO authentication. It also allows libcurl
 +to use the current user credentials without the app having to pass them on.
 +(Added in 7.38.0)
 +.IP CURL_VERSION_CONV
 +libcurl was built with support for character conversions, as provided by the
 +CURLOPT_CONV_* callbacks. (Added in 7.15.4)
 +.IP CURL_VERSION_TLSAUTH_SRP
 +libcurl was built with support for TLS-SRP. (Added in 7.21.4)
 +.IP CURL_VERSION_NTLM_WB
 +libcurl was built with support for NTLM delegation to a winbind helper.
 +(Added in 7.22.0)
 +.IP CURL_VERSION_HTTP2
 +libcurl was built with support for HTTP2.
 +(Added in 7.33.0)
 +.IP CURL_VERSION_UNIX_SOCKETS
 +libcurl was built with support for Unix domain sockets.
 +(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)
 +.IP CURL_VERSION_HTTPS_PROXY
 +libcurl was built with support for HTTPS-proxy.
 +(Added in 7.52.0)
 +.IP CURL_VERSION_MULTI_SSL
 +libcurl was built with multiple SSL backends. For details, see
 +\fIcurl_global_sslset(3)\fP.
 +(Added in 7.56.0)
++.IP CURL_VERSION_BROTLI
++supports HTTP Brotli content encoding using libbrotlidec (Added in 7.57.0)
 +.RE
 +\fIssl_version\fP is an ASCII string for the OpenSSL version used. If libcurl
 +has no SSL support, this is NULL.
 +
 +\fIssl_version_num\fP is always 0.
 +
 +\fIlibz_version\fP is an ASCII string (there is no numerical version). If
 +libcurl has no libz support, this is NULL.
 +
 +\fIprotocols\fP is a pointer to an array of char * pointers, containing the
 +names protocols that libcurl supports (using lowercase letters). The protocol
 +names are the same as would be used in URLs. The array is terminated by a NULL
 +entry.
 +.SH RETURN VALUE
 +A pointer to a curl_version_info_data struct.
 +.SH "SEE ALSO"
 +\fIcurl_version(3)\fP
 +
diff --cc docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
index 4937086ae,000000000..235abd03e
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
+++ b/docs/libcurl/opts/GNURLINFO_HTTPAUTH_AVAIL.3
@@@ -1,69 -1,0 +1,70 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_HTTPAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_HTTPAUTH_AVAIL \- get available HTTP authentication methods
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_HTTPAUTH_AVAIL, long 
*authp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive a bitmask indicating the authentication
 +method(s) available according to the previous response. The meaning of the
 +bits is explained in the \fICURLOPT_HTTPAUTH(3)\fP option for
 +\fIcurl_easy_setopt(3)\fP.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the available authentication types */
 +    long auth;
 +    res = curl_easy_getinfo(curl, CURLINFO_HTTPAUTH_AVAIL, &auth);
 +    if(!res) {
 +      if(!auth)
 +        printf("No auth available, perhaps no 401?\\n");
 +      else {
 +        printf("%s%s%s%s\\n",
 +               auth & CURLAUTH_BASIC ? "Basic ":"",
 +               auth & CURLAUTH_DIGEST ? "Digest ":"",
 +               auth & CURLAUTH_NEGOTIATE ? "Negotiate ":"",
 +               auth % CURLAUTH_NTLM ? "NTLM ":"");
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
- Added in 7.10.8
++Added RFC2617 in 7.10.8
++Added RFC7616 in 7.57.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --cc docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3
index ab404449c,000000000..429a8a25c
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3
+++ b/docs/libcurl/opts/GNURLINFO_PROXYAUTH_AVAIL.3
@@@ -1,70 -1,0 +1,71 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
 +.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLINFO_PROXYAUTH_AVAIL 3 "12 Sep 2015" "libcurl 7.44.0" 
"curl_easy_getinfo options"
 +.SH NAME
 +CURLINFO_PROXYAUTH_AVAIL \- get available HTTP proxy authentication methods
 +.SH SYNOPSIS
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_getinfo(CURL *handle, CURLINFO_PROXYAUTH_AVAIL, long 
*authp);
 +.SH DESCRIPTION
 +Pass a pointer to a long to receive a bitmask indicating the authentication
 +method(s) available according to the previous response. The meaning of the
 +bits is explained in the \fICURLOPT_PROXYAUTH(3)\fP option for
 +\fIcurl_easy_setopt(3)\fP.
 +.SH PROTOCOLS
 +HTTP(S)
 +.SH EXAMPLE
 +.nf
 +CURL *curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +  curl_easy_setopt(curl, CURLOPT_PROXY, "http://127.0.0.1:80";);
 +
 +  res = curl_easy_perform(curl);
 +
 +  if(!res) {
 +    /* extract the available proxy authentication types */
 +    long auth;
 +    res = curl_easy_getinfo(curl, CURLINFO_PROXYAUTH_AVAIL, &auth);
 +    if(!res) {
 +      if(!auth)
 +        printf("No proxy auth available, perhaps no 407?\\n");
 +      else {
 +        printf("%s%s%s%s\\n",
 +               auth & CURLAUTH_BASIC ? "Basic ":"",
 +               auth & CURLAUTH_DIGEST ? "Digest ":"",
 +               auth & CURLAUTH_NEGOTIATE ? "Negotiate ":"",
 +               auth % CURLAUTH_NTLM ? "NTLM ":"");
 +      }
 +    }
 +  }
 +  curl_easy_cleanup(curl);
 +}
 +.fi
 +.SH AVAILABILITY
- Added in 7.10.8
++Added RFC2617 in 7.10.8
++Added RFC7616 in 7.57.0
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR curl_easy_getinfo "(3), " curl_easy_setopt "(3), "
diff --cc docs/libcurl/opts/GNURLOPT_RESOLVE.3
index 13fe1ea12,000000000..e321f000f
mode 100644,000000..100644
--- a/docs/libcurl/opts/GNURLOPT_RESOLVE.3
+++ b/docs/libcurl/opts/GNURLOPT_RESOLVE.3
@@@ -1,86 -1,0 +1,88 @@@
 +.\" **************************************************************************
 +.\" *                                  _   _ ____  _
 +.\" *  Project                     ___| | | |  _ \| |
 +.\" *                             / __| | | | |_) | |
 +.\" *                            | (__| |_| |  _ <| |___
 +.\" *                             \___|\___/|_| \_\_____|
 +.\" *
- .\" * Copyright (C) 1998 - 2016, Daniel Stenberg, <address@hidden>, et al.
++.\" * Copyright (C) 1998 - 2017, Daniel Stenberg, <address@hidden>, 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 https://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.
 +.\" *
 +.\" **************************************************************************
 +.\"
 +.TH CURLOPT_RESOLVE 3 "19 Jun 2014" "libcurl 7.37.0" "curl_easy_setopt 
options"
 +.SH NAME
 +CURLOPT_RESOLVE \- provide custom host name to IP address resolves
 +.SH SYNOPSIS
 +.nf
 +#include <gnurl/curl.h>
 +
 +CURLcode curl_easy_setopt(CURL *handle, CURLOPT_RESOLVE,
 +                          struct curl_slist *hosts);
 +.SH DESCRIPTION
 +Pass a pointer to a linked list of strings with host name resolve information
 +to use for requests with this handle. The linked list should be a fully valid
 +list of \fBstruct curl_slist\fP structs properly filled in. Use
 +\fIcurl_slist_append(3)\fP to create the list and \fIcurl_slist_free_all(3)\fP
 +to clean up an entire list.
 +
 +Each single name resolve string should be written using the format
 +HOST:PORT:ADDRESS where HOST is the name libcurl will try to resolve, PORT is
 +the port number of the service where libcurl wants to connect to the HOST and
 +ADDRESS is the numerical IP address. If libcurl is built to support IPv6,
 +ADDRESS can of course be either IPv4 or IPv6 style addressing.
 +
 +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 will instead use your provided ADDRESS. Addresses set with
 +\fICURLOPT_RESOLVE(3)\fP will not time-out from the DNS cache like ordinary
 +entries.
 +
 +The provided ADDRESS set by this option will be used even if
 +\fICURLOPT_IPRESOLVE(3)\fP is set to make libcurl use another IP version.
 +
 +Remove names from the DNS cache again, to stop providing these fake resolves,
 +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
 +and port number must exactly match what was already added previously.
++
++Support for providing the ADDRESS within [brackets] was added in 7.57.0.
 +.SH DEFAULT
 +NULL
 +.SH PROTOCOLS
 +All
 +.SH EXAMPLE
 +.nf
 +CURL *curl;
 +struct curl_slist *host = NULL;
 +host = curl_slist_append(NULL, "example.com:80:127.0.0.1");
 +
 +curl = curl_easy_init();
 +if(curl) {
 +  curl_easy_setopt(curl, CURLOPT_RESOLVE, host);
 +  curl_easy_setopt(curl, CURLOPT_URL, "http://example.com";);
 +
 +  curl_easy_perform(curl);
 +
 +  /* always cleanup */
 +  curl_easy_cleanup(curl);
 +}
 +
 +curl_slist_free_all(host);
 +.fi
 +.SH AVAILABILITY
 +Added in 7.21.3. Removal support added in 7.42.0.
 +.SH RETURN VALUE
 +Returns CURLE_OK if the option is supported, and CURLE_UNKNOWN_OPTION if not.
 +.SH "SEE ALSO"
 +.BR CURLOPT_IPRESOLVE "(3), " CURLOPT_DNS_CACHE_TIMEOUT "(3), " 
CURLOPT_CONNECT_TO "(3), "
diff --cc lib/content_encoding.c
index b1a540f03,3d061375c..65e9ba2ec
--- a/lib/content_encoding.c
+++ b/lib/content_encoding.c
@@@ -22,13 -22,27 +22,27 @@@
  
  #include "curl_setup.h"
  
- #ifdef HAVE_LIBZ
- 
  #include "urldata.h"
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
+ #include <stddef.h>
+ 
+ #ifdef HAVE_ZLIB_H
+ #include <zlib.h>
+ #ifdef __SYMBIAN32__
+ /* zlib pollutes the namespace with this definition */
+ #undef WIN32
+ #endif
+ #endif
+ 
+ #ifdef HAVE_BROTLI
+ #include <brotli/decode.h>
+ #endif
+ 
  #include "sendf.h"
+ #include "http.h"
  #include "content_encoding.h"
  #include "strdup.h"
+ #include "strcase.h"
  #include "curl_memory.h"
  #include "memdebug.h"
  
diff --cc lib/sendf.c
index 799f0ce13,a1cb8e478..939bb7dea
--- a/lib/sendf.c
+++ b/lib/sendf.c
@@@ -22,7 -22,11 +22,11 @@@
  
  #include "curl_setup.h"
  
+ #ifdef HAVE_LINUX_TCP_H
+ #include <linux/tcp.h>
+ #endif
+ 
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  
  #include "urldata.h"
  #include "sendf.h"
diff --cc lib/share.h
index 59a4a14f0,4b13406d9..c0d0a5189
--- a/lib/share.h
+++ b/lib/share.h
@@@ -23,9 -23,10 +23,10 @@@
   ***************************************************************************/
  
  #include "curl_setup.h"
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  #include "cookie.h"
  #include "urldata.h"
+ #include "conncache.h"
  
  /* SalfordC says "A structure member may not be volatile". Hence:
   */
diff --cc lib/urldata.h
index fc9549608,edd1fd9ac..f008dd44e
--- a/lib/urldata.h
+++ b/lib/urldata.h
@@@ -88,15 -88,7 +88,7 @@@
  
  #include "timeval.h"
  
- #ifdef HAVE_ZLIB_H
- #include <zlib.h>               /* for content-encoding */
- #ifdef __SYMBIAN32__
- /* zlib pollutes the namespace with this definition */
- #undef WIN32
- #endif
- #endif
- 
 -#include <curl/curl.h>
 +#include <gnurl/curl.h>
  
  #include "http_chunks.h" /* for the structs and enum stuff */
  #include "hostip.h"

-- 
To stop receiving notification emails like this one, please contact
address@hidden



reply via email to

[Prev in Thread] Current Thread [Next in Thread]