Daniel Stenberg [Mon, 11 Sep 2006 20:50:58 +0000 (20:50 +0000)]
If the current connection doesn't fit to get added to the connection cache,
we certainly MUST NOT kill an active connection... Problem tracked down thanks
to Michael Wallner's excellent test program.
Daniel Stenberg [Mon, 11 Sep 2006 20:25:13 +0000 (20:25 +0000)]
- Guilherme Balena Versiani: I noted a strange BUG in Win32 port
(ares_init.c/get_iphlpapi_dns_info() function): when I disable the network
by hand or disconnect the network cable in Windows 2000 or Windows XP, my
application gets 127.0.0.1 as the only name server. The problem comes from
'GetNetworkParams' function, that returns the empty string "" as the only
name server in that case. Moreover, the Windows implementation of
inet_addr() returns INADDR_LOOPBACK instead of INADDR_NONE.
Daniel Stenberg [Mon, 11 Sep 2006 17:18:18 +0000 (17:18 +0000)]
- Fixed my breakage from earlier today so that doing curl_easy_cleanup() on a
handle that is part of a multi handle first removes the handle from the
stack.
- Added CURLOPT_SSL_SESSIONID_CACHE and --no-sessionid to disable SSL
session-ID re-use on demand since there obviously are broken servers out
there that misbehave with session-IDs used.
Daniel Stenberg [Sun, 10 Sep 2006 22:15:32 +0000 (22:15 +0000)]
Jeff Pohlmeyer presented a *multi_socket()-using program that exposed a
problem with it (SIGSEGV-style). It clearly showed that the existing
socket-state and state-difference function wasn't good enough so I rewrote
it and could then re-run Jeff's program without any crash. The previous
version clearly could miss to tell the application when a handle changed
from using one socket to using another.
While I was at it (as I could use this as a means to track this problem
down), I've now added a 'magic' number to the easy handle struct that is
inited at curl_easy_init() time and cleared at curl_easy_cleanup() time that
we can use internally to detect that an easy handle seems to be fine, or at
least not closed or freed (freeing in debug builds fill the area with 0x13
bytes but in normal builds we can of course not assume any particular data
in the freed areas).
Daniel Stenberg [Sun, 10 Sep 2006 22:12:24 +0000 (22:12 +0000)]
Added a useful debug function within #if 0. The function makes it easy to
"dump" a hash table which is useful when tracking problems with data stored
in one of our hashes.
Daniel Stenberg [Mon, 4 Sep 2006 08:53:28 +0000 (08:53 +0000)]
I fell over a new libtool that starts with a newline so we need to fetch
the two first lines to get the version string. The good news is that older
libtools have an empty line after the first so I think this works fine all
over...
Daniel Stenberg [Sun, 3 Sep 2006 22:52:42 +0000 (22:52 +0000)]
- "Dortik" (http://curl.haxx.se/bug/view.cgi?id=1551412) provided a patch that
while not fixing things very nicely, it does make the SOCKS5 proxy
connection slightly better as it now acknowledges the timeout for connection
and it no longer segfaults in the case when SOCKS requires authentication
and you did not specify username:password.
Daniel Stenberg [Tue, 29 Aug 2006 15:17:47 +0000 (15:17 +0000)]
Brad Spencer did
o made ares_version.h use extern "C" for c++ compilers
o fixed compiler warnings in ares_getnameinfo.c
o fixed a buffer position init for TCP reads
Daniel Stenberg [Fri, 25 Aug 2006 13:53:20 +0000 (13:53 +0000)]
Armel Asselin reported that the 'running_handles' counter wasn't updated
properly if you removed a "live" handle from a multi handle with
curl_multi_remove_handle().
Daniel Stenberg [Fri, 18 Aug 2006 22:54:57 +0000 (22:54 +0000)]
Andrew Biggs pointed out a "Expect: 100-continue" flaw where libcurl didn't
send the whole request at once, even though the Expect: header was disabled
by the application. An effect of this change is also that small (< 1024
bytes) POSTs are now always sent without Expect: header since we deem it
more costly to bother about that than the risk that we send the data in
vain.
Daniel Stenberg [Tue, 8 Aug 2006 22:56:46 +0000 (22:56 +0000)]
Armel Asselin made the CURLOPT_PREQUOTE option work fine even when
CURLOPT_NOBODY is set true. PREQUOTE is then run roughly at the same place
in the command sequence as it would have run if there would've been a
transfer.