- Apr 04, 2017
-
-
Dániel Bakai authored
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
-
Marcel Raad authored
... by explicitly calling the ANSI versions of Windows API functions where required.
-
Martin Kepplinger authored
struct mechtable is only used locally here. It can be declared static.
-
Antti Hätälä authored
- 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
-
Daniel Stenberg authored
-
Daniel Stenberg authored
This removes one tiny malloc for each hash struct allocated. In a simple case like "curl localhost", this save three mallocs. Closes #1376
-
Daniel Stenberg authored
No longer allocate the curl_llist head struct for lists separately. Removes 17 (15%) tiny allocations in a normal "curl localhost" invoke. closes #1381
-
Jay Satiro authored
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
-
Richlv authored
Closes #1382
-
- Apr 03, 2017
-
-
Daniel Stenberg authored
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
-
Daniel Stenberg authored
When only a few additional file descriptors are used, avoid the malloc. Closes #1377
-
Marcel Raad authored
In ancient MinGW versions, in6addr_any was declared as extern, but not defined. Because of that, 22a0c577 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
-
- Apr 02, 2017
-
-
Daniel Stenberg authored
-
- Apr 01, 2017
-
-
Jay Satiro authored
-
- Mar 31, 2017
-
-
Jay Satiro authored
Closes https://github.com/curl/curl/pull/1375
-
Daniel Stenberg authored
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
-
Daniel Stenberg authored
-
- Mar 30, 2017
-
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Peter Wu authored
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
-
Marcel Raad authored
'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.
-
Marcel Raad authored
In release mode, MinGW complains: error: unused parameter 'lib_error_code' [-Werror=unused-parameter]
-
Hanno Böck authored
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
-
Alexis La Goutte authored
Closes #1371
-
Marcel Raad authored
If CURL_DISABLE_VERBOSE_STRINGS is defined, hostname is not used in schannel_connect_step3.
-
Marcel Raad authored
When CURL_DISABLE_VERBOSE_STRINGS is defined, the reason parameter in Curl_conncontrol is not used as the infof macro expands to nothing.
-
Marcel Raad authored
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
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
- Mar 29, 2017
-
-
Daniel Stenberg authored
-
Marcel Raad authored
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
-
Hanno Böck authored
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
-
Daniel Stenberg authored
-
madblobfish authored
Closes #1364
-
Maksim Stsepanenka authored
Closes #1366
-
- Mar 28, 2017
-
-
Daniel Stenberg authored
... to make it much faster. Idea developed with primepie on IRC. Closes #1365
-
Kamil Dudka authored
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.
-
Daniel Stenberg authored
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
-
Isaac Boukris authored
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: cb4e2be7 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
-