aboutsummaryrefslogtreecommitdiff
path: root/include
AgeCommit message (Collapse)Author
2017-11-05HTTP: implement Brotli content encodingPatrick Monnerat
This uses the brotli external library (https://github.com/google/brotli). Brotli becomes a feature: additional curl_version_info() bit and structure fields are provided for it and CURLVERSION_NOW bumped. Tests 314 and 315 check Brotli content unencoding with correct and erroneous data. Some tests are updated to accomodate with the now configuration dependent parameters of the Accept-Encoding header.
2017-10-08curlver.h: next expected release is 7.57.0Daniel Stenberg
2017-09-27curl.h: include <sys/select.h> on cygwin tooDaniel Stenberg
When building with -std=c++14 on cygwin, this header won't be automatically included as it otherwise is. The <sys/select.h> include decision should ideally be reversed and be avoided where that header file doesn't exist. Reported-by: Ian Fette Fixes #1925
2017-09-22vtls: provide curl_global_sslset() even in non-SSL buildsDaniel Stenberg
... it just returns error: Bug: https://github.com/curl/curl/commit/1328f69d53f2f2e937696ea954c480412b018451#commitcomment-24470367 Reported-by: Marcel Raad Closes #1906
2017-09-22form/mime: field names are not allowed to contain zero-valued bytes.Patrick Monnerat
Also suppress length argument of curl_mime_name() (names are always zero-terminated).
2017-09-12code style: remove wrong uses of multiple spacesDaniel Stenberg
Closes #1878
2017-09-05curl.h: use lower case curl_mime* as for all public symbolsDaniel Stenberg
2017-09-04curl.h: fix "unused checksrc ignore", remove dangling referenceDaniel Stenberg
... to a README file that doesn't exist anymore
2017-09-04docs: Update to secure URL versionsViktor Szakats
2017-09-04curl.h: make the curl_strequal() protos use the same styleDaniel Stenberg
... as the other functions. Makes it easier to machine-parse!
2017-09-03headers: move the global_sslset() proto from multi.h to curl.hDaniel Stenberg
As it was added to multi.h simply to not break test 1135, which now has been disabled due to the mime API addition anyway and su we can now move the sslset stuff to where the other curl_global_* prototypes are.
2017-09-03mime: use size_t instead of ssize_t in public API interface.Patrick Monnerat
To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED has been introduced. Documentation updated accordingly. symbols in versions updated. Added form API symbols deprecation info.
2017-09-02mime: new MIME API.Patrick Monnerat
Available in HTTP, SMTP and IMAP. Deprecates the FORM API. See CURLOPT_MIMEPOST. Lib code and associated documentation.
2017-08-31polarssl: fix multissl breakageDaniel Stenberg
Reported-by: Dan Fandrich Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html Closes #1843
2017-08-30curl.h: CURLSSLBACKEND_WOLFSSL used wrong valueDaniel Stenberg
The CURLSSLBACKEND_WOLFSSL is supposed to be an alias for CURLSSLBACKEND_CYASSL, but used an erronous value. To reduce the risk for a similar mistake, define the backend aliases to use the enum values instead. Reported-by: Gisle Vanem Bug: https://curl.haxx.se/mail/lib-2017-08/0120.html
2017-08-29curl/multi.h: remove duplicated closing c++ braceDaniel Stenberg
Regression since 1328f69d53f2f2e93 Fixes #1841 Reported-by: Andrei Karas
2017-08-28version: add the CURL_VERSION_MULTI_SSL feature flagJohannes Schindelin
This new feature flag reports When cURL was built with multiple SSL backends. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-08-28vtls: introduce curl_global_sslset()Johannes Schindelin
Let's add a compile time safe API to select an SSL backend. This function needs to be called *before* curl_global_init(), and can be called only once. Side note: we do not explicitly test that it is called before curl_global_init(), but we do verify that it is not called multiple times (even implicitly). If SSL is used before the function was called, it will use whatever the CURL_SSL_BACKEND environment variable says (or default to the first available SSL backend), and if a subsequent call to curl_global_sslset() disagrees with the previous choice, it will fail with CURLSSLSET_TOO_LATE. The function also accepts an "avail" parameter to point to a (read-only) NULL-terminated list of available backends. This comes in real handy if an application wants to let the user choose between whatever SSL backends the currently available libcurl has to offer: simply call curl_global_sslset(-1, NULL, &avail); which will return CURLSSLSET_UNKNOWN_BACKEND and populate the avail variable to point to the relevant information to present to the user. Just like with the HTTP/2 push functions, we have to add the function declaration of curl_global_sslset() function to the header file *multi.h* because VMS and OS/400 require a stable order of functions declared in include/curl/*.h (where the header files are sorted alphabetically). This looks a bit funny, but it cannot be helped. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-08-28vtls: refactor out essential information about the SSL backendsJohannes Schindelin
There is information about the compiled-in SSL backends that is really no concern of any code other than the SSL backend itself, such as which function (if any) implements SHA-256 summing. And there is information that is really interesting to the user, such as the name, or the curl_sslbackend value. Let's factor out the latter into a publicly visible struct. This information will be used in the upcoming API to set the SSL backend globally. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-08-27system.h: include sys/poll.h for AIXDaniel Stenberg
... to get the event/revent defines that might be used for the poll struct. Reported-by: Michael Smith Fixes #1828 Closes #1833
2017-08-20curl/system.h: fix build for hppaDaniel Stenberg
Reported-by: John David Anglin Bug: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=872502#10
2017-08-18curl/system.h: check for __ppc__ as wellDaniel Stenberg
... regression since issue #1774 (commit 10b3df10596a) since obviously some older gcc doesn't know __powerpc__ while some newer doesn't know __ppc__ ... Fixes #1797 Closes #1798 Reported-by: Ryan Schmidt
2017-08-17system.h: remove all CURL_SIZEOF_* definesDaniel Stenberg
... as they're not used externally and internally we check for the sizes already in configure etc. Closes #1767
2017-08-17curl/system.h: checksrc complianceDaniel Stenberg
2017-08-17ssh: add the ability to enable compression (for SCP/SFTP)Viktor Szakats
The required low-level logic was already available as part of `libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1] option.) This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION` (boolean) and the new `curl` command-line option `--compressed-ssh` to request this `libssh2` feature. To have compression enabled, it is required that the SSH server supports a (zlib) compatible compression method and that `libssh2` was built with `zlib` support enabled. [1] https://www.libssh2.org/libssh2_session_flag.html Ref: https://github.com/curl/curl/issues/1732 Closes https://github.com/curl/curl/pull/1735
2017-08-15curlver: toward 7.56.0?Daniel Stenberg
2017-08-13curl/system.h: GCC doesn't define __ppc__ on PowerPC, uses __powerpc__Alex Potapenko
Closes #1774
2017-08-12curl/system.h: add Oracle Solaris StudioDaniel Stenberg
Fixes #1752
2017-08-11curl/system.h: support more architecturesThomas Petazzoni
The long list of architectures in include/curl/system.h is annoying to maintain, and needs to be extended for each and every architecture to support. Instead, let's rely on the __SIZEOF_LONG__ define of the gcc compiler (we are in the GNUC condition anyway), which tells us if long is 4 bytes or 8 bytes. This fixes the build of libcurl 7.55.0 on architectures such as OpenRISC or ARC. Closes #1766 Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-08-11curlver: bump to 7.55.1Daniel Stenberg
2017-07-12system.h: include winsock2.h before windows.hMarcel Raad
... to avoid compiler warnings if the user doesn't want WIN32_LEAN_AND_MEAN.
2017-07-11curl_setup: always define WIN32_LEAN_AND_MEAN on WindowsMarcel Raad
Make sure to always define WIN32_LEAN_AND_MEAN before including any Windows headers to avoid pulling in unnecessary headers. This avoids unnecessary macro clashes and compiler warnings. Ref: https://github.com/curl/curl/issues/1562 Closes https://github.com/curl/curl/pull/1672
2017-06-28CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy authKamil Dudka
If libcurl was built with GSS-API support, it unconditionally advertised GSS-API authentication while connecting to a SOCKS5 proxy. This caused problems in environments with improperly configured Kerberos: a stock libcurl failed to connect, despite libcurl built without GSS-API connected fine using username and password. This commit introduces the CURLOPT_SOCKS5_AUTH option to control the allowed methods for SOCKS5 authentication at run time. Note that a new option was preferred over reusing CURLOPT_PROXYAUTH for compatibility reasons because the set of authentication methods allowed by default was different for HTTP and SOCKS5 proxies. Bug: https://curl.haxx.se/mail/lib-2017-01/0005.html Closes https://github.com/curl/curl/pull/1454
2017-06-24curl/system.h: add check for XTENSA for 32bit gccDaniel Stenberg
Reported-by: Neil Kolban Fixes: 1598
2017-06-21--request-target: instead of --strip-path-slashDaniel Stenberg
... and CURLOPT_REQUEST_TARGET instead of CURLOPT_STRIP_PATH_SLASH. This option instead provides the full "alternative" target to use in the request, instead of extracting the path from the URL. Test 1298 and 1299 updated accordingly. Idea-by: Evert Pot Suggestion: https://daniel.haxx.se/blog/2017/06/19/options-with-curl/comment-page-1/#comment-18373 Closes #1593
2017-06-21typecheck-gcc: add support for CURLINFO_OFF_TMarcel Raad
typecheck-gcc expected curl_socket_t instead of curl_off_t arguments for CURLINFO_OFF_T. Detected by test1521, unfortunately only when run locally. Closes https://github.com/curl/curl/pull/1592
2017-06-19http: add --strip-path-slash and CURLOPT_STRIP_PATH_SLASHDaniel Stenberg
... to enable sending "OPTIONS *" which wasn't possible previously. This option currently only works for HTTP. Added test cases 1298 + 1299 to verify Fixes #1280 Closes #1462
2017-06-19getinfo: return sizes as curl_off_tDaniel Stenberg
This change introduces new alternatives for the existing six curl_easy_getinfo() options that return sizes or speeds as doubles. The new versions are named like the old ones but with an appended '_T': CURLINFO_CONTENT_LENGTH_DOWNLOAD_T CURLINFO_CONTENT_LENGTH_UPLOAD_T CURLINFO_SIZE_DOWNLOAD_T CURLINFO_SIZE_UPLOAD_T CURLINFO_SPEED_DOWNLOAD_T CURLINFO_SPEED_UPLOAD_T Closes #1511
2017-06-15curl/curlver.h: start working on 7.55.0Daniel Stenberg
2017-06-14system.h: fix MinGW buildMarcel Raad
CURLSYS_PULL_WS2TCPIP_H got renamed to CURL_PULL_WS2TCPIP_H in commit 73a2fcea0b4adea6ba342cd7ed1149782c214ae3.
2017-06-14includes: remove curl/curlbuild.h and curl/curlrules.hDaniel Stenberg
Rely entirely on curl/system.h now. Introduced in Aug 2008 with commit 14240e9e109f. Now gone. Fixes #1456
2017-06-05typecheck-gcc: allow CURLOPT_STDERR to be NULL tooDaniel Stenberg
2017-06-01typecheck-gcc.h: check CURLINFO_CERTINFODaniel Stenberg
... and update the certinfo.c example accordingly. Fixes https://github.com/curl/curl/issues/846
2017-06-01typecheck-gcc.h: check CURLINFO_TLS_SSL_PTR and CURLINFO_TLS_SESSIONDaniel Stenberg
... so that they get the required "struct curl_tlssessioninfo **" arguments.
2017-06-01typecheck-gcc.h: separate getinfo slist checks from other pointersDaniel Stenberg
Fixes #1524
2017-05-14curl: show the libcurl release date in --version outputDaniel Stenberg
... and support and additional "security patched" date for those who enhance older versions that way. Pass on the define CURL_PATCHSTAMP with a date for that. Building with non-release headers shows the date as [unreleased]. Also: this changes the date format generated in the curlver.h file to be "YYYY-MM-DD" (no name of the day or month, no time, no time zone) to make it easier on the eye and easier to parse. Example (new) date string: 2017-05-09 Suggested-by: Brian Childs Closes #1474
2017-05-03typecheck-gcc: add support for CURLINFO_SOCKETMarcel Raad
Closes https://github.com/curl/curl/pull/1452
2017-05-03typecheck-gcc: add missing string optionsMarcel Raad
Closes https://github.com/curl/curl/pull/1452
2017-04-25typecheck-gcc: fix _curl_is_slist_infoMarcel Raad
Info values starting with CURLINFO_SOCKET expect a curl_socket_t, not a curl_slist argument. This fixes the following GCC warning when building the examples with --enable-optimize: ../../include/curl/typecheck-gcc.h:126:42: warning: call to ‘_curl_easy_getinfo_err_curl_slist’ declared with attribute warning: curl_easy_getinfo expects a pointer to 'struct curl_slist *' for this info [enabled by default] sendrecv.c:90:11: note: in expansion of macro ‘curl_easy_getinfo’ res = curl_easy_getinfo(curl, CURLINFO_ACTIVESOCKET, &sockfd); Closes https://github.com/curl/curl/pull/1447
2017-04-21typecheck-gcc: handle function pointers properlyMarcel Raad
All the callbacks passed to curl_easy_setopt are defined as function pointers. The possibility to pass both functions and function pointers was handled for the callbacks that typecheck-gcc.h defined as compatible, but not for the public callback types themselves. This makes all compatible callback types defined in typecheck-gcc.h function pointers too and checks all functions uniformly with _curl_callback_compatible, which handles both functions and function pointers. A symptom of the problem was a warning in tool_operate.c with --disable-libcurl-option and without --enable-debug as that file passes the callback functions to curl_easy_setopt directly. Fixes https://github.com/curl/curl/issues/1403 Closes https://github.com/curl/curl/pull/1404