aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-04-05Revert "configure: prefer 'long long' to int64_t for curl_off_t"Daniel Stenberg
This reverts commit 81284374bf3c670d2050f8562edeb69f060b07cc. Due to mingw32 brekage.
2017-04-05tool_operate: fix MinGW compiler warningMarcel Raad
MinGW complains: tool_operate.c:197:15: error: comparison is always true due to limited range of data type [-Werror=type-limits] Fix this by only doing the comparison if 'long' is large enough to hold the constant it is compared with. Closes https://github.com/curl/curl/pull/1378
2017-04-05tool_operate: move filetime code to its own functionMarcel Raad
Ref: https://github.com/curl/curl/pull/1378
2017-04-05configure: prefer 'long long' to int64_t for curl_off_tDaniel Stenberg
Since it is a native type and it makes it less complicated to find a matching one in system.h Bug: https://curl.haxx.se/mail/lib-2017-04/0010.html Reported-by: Dan Fandrich Closes #1388
2017-04-04tests: added test for Curl_splaygetbest to unit1309Dániel Bakai
This checks the new behavior of Curl_splaygetbest, so that the smallest node not larger than the key is removed, and FIFO behavior is kept even when there are multiple nodes with the same key. Closes #1358
2017-04-04multi: fix queueing of pending easy handlesDániel Bakai
Multi handles repeatedly invert the queue of pending easy handles when used with CURLMOPT_MAX_TOTAL_CONNECTIONS. This is caused by a multistep process involving Curl_splaygetbest and violates the FIFO property of the multi handle. This patch fixes this issue by redefining the "best" node in the context of timeouts as the "smallest not larger than now", and implementing the necessary data structure modifications to do this effectively, namely: - splay nodes with the same key are now stored in a doubly-linked circular list instead of a non-circular one to enable O(1) insertion to the tail of the list - Curl_splayinsert inserts nodes with the same key to the tail of the same list - in case of multiple nodes with the same key, the one on the head of the list gets selected
2017-04-04tool: fix Windows Unicode buildMarcel Raad
... by explicitly calling the ANSI versions of Windows API functions where required.
2017-04-04curl_sasl: declare mechtable staticMartin Kepplinger
struct mechtable is only used locally here. It can be declared static.
2017-04-04url: don't free postponed data on connection reuseAntti Hätälä
- Don't free postponed data on a connection that will be reused since doing so can cause data loss when pipelining. Only Windows builds are affected by this. Closes https://github.com/curl/curl/issues/1380
2017-04-04RELEASE-NOTES: synced with 4f2e348f9b42c69c480Daniel Stenberg
2017-04-04hash: move key into hash struct to reduce mallocsDaniel Stenberg
This removes one tiny malloc for each hash struct allocated. In a simple case like "curl localhost", this save three mallocs. Closes #1376
2017-04-04llist: replace Curl_llist_alloc with Curl_llist_initDaniel Stenberg
No longer allocate the curl_llist head struct for lists separately. Removes 17 (15%) tiny allocations in a normal "curl localhost" invoke. closes #1381
2017-04-04easy: silence compiler warningJay Satiro
Safe to silence warning adding time delta of poll, which can trigger on Windows since sizeof time_t > sizeof long. warning C4244: '+=' : conversion from 'time_t' to 'long', possible loss of data
2017-04-04docs: minor typo in write-out.dRichlv
Closes #1382
2017-04-03include: curl/system.h is a run-time version of curlbuild.hDaniel Stenberg
system.h is aimed to replace curlbuild.h at a later point in time when we feel confident system.h works sufficiently well. curl/system.h is currently used in parallel with curl/curlbuild.h curl/system.h determines a data sizes, data types and include file status based on available preprocessor defines instead of getting generated at build-time. This, in order to avoid relying on a build-time generated file that makes it complicated to do 32 and 64 bit bields from the same installed set of headers. Test 1541 verifies that system.h comes to the same conclusion that curlbuild.h offers. Closes #1373
2017-04-03multi: make curl_multi_wait avoid malloc in the typical caseDaniel Stenberg
When only a few additional file descriptors are used, avoid the malloc. Closes #1377
2017-04-03tests/server/util: remove in6addr_any for recent MinGWMarcel Raad
In ancient MinGW versions, in6addr_any was declared as extern, but not defined. Because of that, 22a0c57746ae12506b1ba0f0fafffd26c1907d6a added definitions for in6addr_any when compiling with MinGW. The bug was fixed in w32api version 3.6 from 2006, so this workaround is not needed anymore for recent versions. This fixes the following MinGW-w64 warnings because the MinGW-w64 version of IN6ADDR_ANY_INIT has the two additional braces inside the macro: util.c:59:14: warning: braces around scalar initializer util.c:59:40: warning: excess elements in scalar initializer Ref: https://sourceforge.net/p/mingw/mingw-org-wsl/ci/e4803e0da25c57ae1ad0fa75ae2b7182ff7fa339/tree/w32api/ChangeLog Closes https://github.com/curl/curl/pull/1379
2017-04-03docs: added examples for CURLINFO_FILETIME.3 and CURLOPT_FILETIME.3Daniel Stenberg
2017-03-31fail-early.d: fix typosJay Satiro
2017-03-31docs: Explain --fail-early does not imply --failJay Satiro
Closes https://github.com/curl/curl/pull/1375
2017-04-01telnet: (win32) fix read callback return variableDaniel Stenberg
telnet.c(1427,21): warning: comparison of constant 268435456 with expression of type 'CURLcode' is always false telnet.c(1433,21): warning: comparison of constant 268435457 with expression of type 'CURLcode' is always false Reviewed-by: Jay Satiro Reported-by: Gisle Vanem Bug: https://github.com/curl/curl/issues/1225#issuecomment-290340890 Closes #1374
2017-03-31CTestConfig.cmake: removed, unusedDaniel Stenberg
2017-03-31libcurl.def: removed, unusedDaniel Stenberg
2017-03-31docs/index.html: removed, was not shipped anywayDaniel Stenberg
2017-03-31dist: add missing files to the tarballDaniel Stenberg
2017-03-30cmake: fix build with cmake 2.8.12.2Peter Wu
For some reason, CMake 2.8.12.2 did not expand the list argument in a single DEPENDS argument. Remove the quotes, so it gets expanded into multiple arguments for add_custom_command and add_custom_target. Fixes https://github.com/curl/curl/issues/1370 Closes #1372
2017-03-30ssh: fix narrowing conversion warningMarcel Raad
'left' is used as time_t but declared as long. MinGW complains: error: conversion to 'long int' from 'time_t {aka long long int}' may alter its value [-Werror=conversion] Changed the declaration to time_t.
2017-03-30http2: silence unused parameter warningsMarcel Raad
In release mode, MinGW complains: error: unused parameter 'lib_error_code' [-Werror=unused-parameter]
2017-03-30curl: fix callback functions to match prototypeHanno Böck
The function tool_debug_cb doesn't match curl_debug_callback in curl.h (unsigned vs. signed char* for 3rd param). Bug: https://curl.haxx.se/mail/lib-2017-03/0120.html
2017-03-30gcc7: fix ‘*’ in boolean context, suggest ‘&&’ instead ↵Alexis La Goutte
[-Wint-in-bool-context] Closes #1371
2017-03-30schannel: fix unused variable warningMarcel Raad
If CURL_DISABLE_VERBOSE_STRINGS is defined, hostname is not used in schannel_connect_step3.
2017-03-30connect: fix unreferenced parameter warningMarcel Raad
When CURL_DISABLE_VERBOSE_STRINGS is defined, the reason parameter in Curl_conncontrol is not used as the infof macro expands to nothing.
2017-03-30select: use correct SIZEOF_ constantMarcel Raad
At least under Windows, there is no SIZEOF_LONG, so it evaluates to 0 even though sizeof(int) == sizeof(long). This should probably have been CURL_SIZEOF_LONG, but the type of timeout_ms changed from long to time_t anyway. This triggered MSVC warning C4668 about implicitly replacing undefined macros with '0'. Closes https://github.com/curl/curl/pull/1362
2017-03-30cmake: add cmake file in docs/libcurl/opts/ to distDaniel Stenberg
2017-03-30cmake: add more missing files to the distDaniel Stenberg
2017-03-30docs/Makefile.am: include CMakeLists.txt in the dist tarballDaniel Stenberg
2017-03-29NTLM: check for features with #ifdef instead of #ifMarcel Raad
Feature defines are normally checked with #ifdef instead of #if in the rest of the codebase. Additionally, some compilers warn when a macro is implicitly evaluated to 0 because it is not defined, which was the case here. Ref: https://github.com/curl/curl/pull/1362#discussion_r108605101 Closes https://github.com/curl/curl/pull/1367
2017-03-29curl: fix callback argument inconsistencyHanno Böck
As you can see the callback definition uses a char* for the first argument, while the function uses a void*. URL: https://curl.haxx.se/mail/lib-2017-03/0116.html
2017-03-29RELEASE-NOTES: synced with 556c51a2dfDaniel Stenberg
2017-03-29KNOWN_BUGS: typomadblobfish
Closes #1364
2017-03-29make: use the variable MAKE for recursive callsMaksim Stsepanenka
Closes #1366
2017-03-29conncache: make hashkey avoid mallocDaniel Stenberg
... to make it much faster. Idea developed with primepie on IRC. Closes #1365
2017-03-28http: do not treat FTPS over CONNECT as HTTPSKamil Dudka
If we use FTPS over CONNECT, the TLS handshake for the FTPS control connection needs to be initiated in the SENDPROTOCONNECT state, not the WAITPROXYCONNECT state. Otherwise, if the TLS handshake completed without blocking, the information about the completed TLS handshake would be saved to a wrong flag. Consequently, the TLS handshake would be initiated in the SENDPROTOCONNECT state once again on the same connection, resulting in a failure of the TLS handshake. I was able to observe the failure with the NSS backend if curl ran through valgrind. Note that this commit partially reverts curl-7_21_6-52-ge34131d.
2017-03-28pause: handle mixed types of data when pausedDaniel Stenberg
When receiving chunked encoded data with trailers, and the write callback returns PAUSE, there might be both body and header to store to resend on unpause. Previously libcurl returned error for that case. Added test case 1540 to verify. Reported-by: Stephen Toub Fixes #1354 Closes #1357
2017-03-28http: Fix proxy connection reuse with basic-authIsaac Boukris
When using basic-auth, connections and proxy connections can be re-used with different Authorization headers since it does not authenticate the connection (like NTLM does). For instance, the below command should re-use the proxy connection, but it currently doesn't: curl -v -U alice:a -x http://localhost:8181 http://localhost/ --next -U bob:b -x http://localhost:8181 http://localhost/ This is a regression since refactoring of ConnectionExists() as part of: cb4e2be7c6d42ca0780f8e0a747cecf9ba45f151 Fix the above by removing the username and password compare when re-using proxy connection at proxy_info_matches(). However, this fix brings back another bug would make curl to re-print the old proxy-authorization header of previous proxy basic-auth connection because it wasn't cleared. For instance, in the below command the second request should fail if the proxy requires authentication, but would succeed after the above fix (and before aforementioned commit): curl -v -U alice:a -x http://localhost:8181 http://localhost/ --next -x http://localhost:8181 http://localhost/ Fix this by clearing conn->allocptr.proxyuserpwd after use unconditionally, same as we do for conn->allocptr.userpwd. Also fix test 540 to not expect digest auth header to be resent when connection is reused. Signed-off-by: Isaac Boukris <iboukris@gmail.com> Closes https://github.com/curl/curl/pull/1350
2017-03-28openssl: exclude DSA code when OPENSSL_NO_DSA is definedJay Satiro
- Fix compile errors that occur in openssl.c when OpenSSL lib was built without DSA support. Bug: https://github.com/curl/curl/issues/1361 Reported-by: neheb@users.noreply.github.com
2017-03-28examples/fopen: checksrc complianceJay Satiro
2017-03-28schannel: fix variable shadowing warningMarcel Raad
No need to redeclare the variable.
2017-03-27multi: fix MinGW-w64 compiler warningsMarcel Raad
error: conversion to 'long int' from 'time_t {aka long long int}' may alter its value [-Werror=conversion]
2017-03-27.gitattributes: turn off CRLF for *.amMarcel Raad
If Makefile.am uses CRLF, buildconf in a Windows checkout fails with: ".ibtoolize: error: AC_CONFIG_MACRO_DIRS([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4"