summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* schannel: return CURLE_SSL_CACERT on failed verificationbagder/schannel-returncodeDaniel Stenberg2017-09-041-1/+1
| | | | | | ... not *CACERT_BADFILE as it isn't really because of a bad file. Bug: https://curl.haxx.se/mail/lib-2017-09/0002.html
* headers: move the global_sslset() proto from multi.h to curl.hDaniel Stenberg2017-09-032-61/+61
| | | | | | 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.
* mime: fix signed/unsigned conversions.Patrick Monnerat2017-09-033-16/+25
| | | | Use and generate CURL_ZERO_TERMINATED in curl tool and tests.
* tool_formparse: fix some trivial warningsJay Satiro2017-09-031-4/+2
|
* mime: use size_t instead of ssize_t in public API interface.Patrick Monnerat2017-09-036-53/+61
| | | | | | | | | 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.
* mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().Patrick Monnerat2017-09-037-14/+48
| | | | | | | | | | | | | | | This feature is badly supported in Windows: as a replacement, a caller has to use curl_mime_data_cb() with fread, fseek and possibly fclose callbacks to process opened files. The cli tool and documentation are updated accordingly. The feature is however kept internally for form API compatibility, with the known caveats it always had. As a side effect, stdin size is not determined by the cli tool even if possible and this results in a chunked transfer encoding. Test 173 is updated accordingly.
* mime: fix some implicit curl_off_t --> size_t conversion warnings.Patrick Monnerat2017-09-032-6/+10
|
* mime: tests and examples.Patrick Monnerat2017-09-0231-116/+1179
| | | | | | | | | | Additional mime-specific tests. Existing tests updated to reflect small differences (Expect: 100-continue, data size change due to empty lines, etc). Option -F headers= keyword added to tests. test1135 disabled until the entry point order change is resolved. New example smtp-mime. Examples postit2 and multi-post converted from form API to mime API.
* mime: use in curl cli tool instead of form API.Patrick Monnerat2017-09-0217-456/+768
| | | | | | Extended -F option syntax to support multipart mail messages. -F keyword headers= added to include custom headers in parts. Documentation upgraded.
* mime: new MIME API.Patrick Monnerat2017-09-0238-967/+2919
| | | | | | | Available in HTTP, SMTP and IMAP. Deprecates the FORM API. See CURLOPT_MIMEPOST. Lib code and associated documentation.
* test564: Add a warning comment about shell profile output.Patrick Monnerat2017-09-021-0/+2
| | | | | Shell profile output makes the SSH server failing and this problem reason is not easy to find when no hint is given.
* checksrc: disable SPACEBEFOREPAREN for case statement.Patrick Monnerat2017-09-021-0/+3
| | | | | The case keyword may be followed by a constant expression and thus should allow it to start with an open parenthesis.
* runtests.pl: allow <file[1-4]> tags in client section.Patrick Monnerat2017-09-021-16/+18
| | | | This enables tests to create more than one file on the client side.
* runtests.pl: Apply strippart to upload too.Patrick Monnerat2017-09-021-0/+11
| | | | This will allow substitution of boundaries in mail messages.
* Curl_base64_encode: always call with a real data handle.Patrick Monnerat2017-09-025-14/+21
| | | | | Some calls in different modules were setting the data handle to NULL, causing segmentation faults when using builds that enable character code conversions.
* non-ascii: allow conversion functions to be called with a NULL data handle.Patrick Monnerat2017-09-021-19/+37
|
* http: fix a memory leakage in checkrtspprefix().Patrick Monnerat2017-09-021-6/+8
|
* ossfuzz: Move to C++ for curl_fuzzer.Max Dymond2017-09-0210-17/+29
| | | | | | | | Automake gets confused if you want to use C++ static libraries with C code - basically we need to involve the clang++ linker. The easiest way of achieving this is to rename the C code as C++ code. This gets us a bit further along the path and ought to be compatible with Google's version of clang.
* curl_global_sslset: select backend by name case insensitivelyDaniel Stenberg2017-09-012-3/+3
| | | | Closes #1849
* ossfuzz: additional seed corporaMax Dymond2017-09-017-0/+2
| | | | | | | | | | | | | | Create simple seed corpora for: - FTP - telnet - dict - tftp - imap - pop3 based off the tests of the same number. Closes #1842
* ossfuzz: moving towards the ideal integrationMax Dymond2017-09-0119-162/+767
| | | | | | | | | - Start with the basic code from the ossfuzz project. - Rewrite fuzz corpora to be binary files full of Type-Length-Value data, and write a glue layer in the fuzzing function to convert corpora into CURL options. - Have supporting functions to generate corpora from existing tests - Integrate with Makefile.am
* strcase: corrected comment header for Curl_strcasecompare()Daniel Stenberg2017-08-311-5/+6
|
* unit1301: fix error message on first testDaniel Stenberg2017-08-311-2/+2
|
* curl_global_sslset.3: show the struct and enum tooDaniel Stenberg2017-08-311-4/+25
| | | | | ... so that users can actually write code based on the man page alone, not having to read the header file.
* darwinssl: handle long strings in TLS certs (follow-up)Jay Satiro2017-08-311-2/+17
| | | | | | | | | | | | | - Fix handling certificate subjects that are already UTF-8 encoded. Follow-up to b3b75d1 from two days ago. Since then a copy would be skipped if the subject was already UTF-8, possibly resulting in a NULL deref later on. Ref: https://github.com/curl/curl/issues/1823 Ref: https://github.com/curl/curl/pull/1831 Closes https://github.com/curl/curl/pull/1836
* cyassl: call it the "WolfSSL" backendDaniel Stenberg2017-08-311-1/+1
| | | | | | ... instead of cyassl, as this is the current name for it. Closes #1844
* polarssl: fix multissl breakageDaniel Stenberg2017-08-312-7/+4
| | | | | | Reported-by: Dan Fandrich Bug: https://curl.haxx.se/mail/lib-2017-08/0121.html Closes #1843
* configure: remove the leading comma from the backends listDaniel Stenberg2017-08-311-1/+1
| | | | | | | | | ... when darwinssl is used. Reported-by: Viktor Szakats Bug: https://github.com/curl/curl/commit/b0989cd3abaff4f9a0717b4875022fa79e33b481#commitcomment-23943493 Closes #1845
* examples/sslbackend.c: fix failure of 'make checksrc'Kamil Dudka2017-08-301-2/+4
| | | | | | | | | ./sslbackend.c:58:3: warning: else after closing brace on same line (BRACEELSE) } else if(isdigit(*name)) { ^ ./sslbackend.c:62:3: warning: else after closing brace on same line (BRACEELSE) } else ^
* makefile.m32: add multissl supportViktor Szakats2017-08-302-15/+15
| | | | Closes https://github.com/curl/curl/pull/1840
* curl.h: CURLSSLBACKEND_WOLFSSL used wrong valueDaniel Stenberg2017-08-301-3/+3
| | | | | | | | | | 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
* curl_global_sslset.3: clarifyDaniel Stenberg2017-08-301-15/+19
| | | | | | | | | | | | it is a one time *set*, not necessarily a one time use... it can be called again if the first call failed or just listed the alternatives. clarify that the available backends are the ones this build supports plus add some formatting Reported-by: Rich Gray Bug: https://curl.haxx.se/mail/lib-2017-08/0119.html
* curl/multi.h: remove duplicated closing c++ braceDaniel Stenberg2017-08-291-5/+1
| | | | | | | Regression since 1328f69d53f2f2e93 Fixes #1841 Reported-by: Andrei Karas
* RELEASE-NOTES: synced with 8c33c963aDaniel Stenberg2017-08-291-5/+38
|
* HELP-US.md: spellingDaniel Stenberg2017-08-291-2/+2
|
* HELP-US.md: "How to get started helping out in the curl project"Daniel Stenberg2017-08-292-1/+71
| | | | Closes #1837
* asyn-thread: Fixed cleanup after OOMDan Fandrich2017-08-291-0/+9
| | | | | | | | | destroy_async_data() assumes that if the flag "done" is not set yet, the thread itself will clean up once the request is complete. But if an error (generally OOM) occurs before the thread even has a chance to start, it will never get a chance to clean up and memory will be leaked. By clearing "done" only just before starting the thread, the correct cleanup sequence will happen in all cases.
* curl_global_init.3: mention curl_global_sslset(3)Daniel Stenberg2017-08-281-1/+2
|
* unit1606: Fixed shadowed variable warningDan Fandrich2017-08-281-8/+7
|
* asyn-thread: Improved cleanup after OOM situationsDan Fandrich2017-08-281-3/+7
|
* asyn-thread: Set errno to the proper value ENOMEM in OOM situationDan Fandrich2017-08-281-1/+1
| | | | | This used to be set in some configurations to EAI_MEMORY which is not a valid value for errno and caused Curl_strerror to fail an assertion.
* configure: Handle "MultiSSL" specially When versioning symbolsJohannes Schindelin2017-08-281-1/+3
| | | | | | | | | | | There is a mode in which libcurl is compiled with versioned symbols, depending on the active SSL backend. When multiple SSL backends are active, it does not make sense to favor one over the others, so let's not: introduce a new prefix for the case where multiple SSL backends are compiled into cURL. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* configure: allow setting the default SSL backendJohannes Schindelin2017-08-282-0/+58
| | | | | | | | | | | | | Previously, we used as default SSL backend whatever was first in the `available_backends` array. However, some users may want to override that default without patching the source code. Now they can: with the --with-default-ssl-backend=<backend> option of the ./configure script. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* vtls: use Curl_ssl_multi pseudo backend only when neededJohannes Schindelin2017-08-281-1/+26
| | | | | | | | When only one SSL backend is configured, it is totally unnecessary to let multissl_init() configure the backend at runtime, we can select the correct backend at build time already. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* version: if built with more than one SSL backend, report all of themJohannes Schindelin2017-08-281-7/+44
| | | | | | | To discern the active one from the inactive ones, put the latter into parentheses. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* version: add the CURL_VERSION_MULTI_SSL feature flagJohannes Schindelin2017-08-287-6/+29
| | | | | | | This new feature flag reports When cURL was built with multiple SSL backends. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* metalink: allow compiling with multiple SSL backendsJohannes Schindelin2017-08-281-2/+4
| | | | | | | | | | | | Previously, the code assumed that at most one of the SSL backends would be compiled in, emulating OpenSSL's functions if the configured backend was not OpenSSL itself. However, now we allow building with multiple SSL backends and choosing one at runtime. Therefore, metalink needs to be adjusted to handle this scenario, too. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* docs/examples: demonstrate how to select SSL backendsJohannes Schindelin2017-08-284-1/+80
| | | | | | | The newly-introduced curl_global_sslset() function deserves to be show-cased. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* Add a man page for curl_global_sslset()Johannes Schindelin2017-08-283-1/+74
| | | | Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
* vtls: introduce curl_global_sslset()Johannes Schindelin2017-08-285-14/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>