Daniel Stenberg [Fri, 7 Apr 2006 12:10:34 +0000 (12:10 +0000)]
minor re-arrange to return a value in order to avoid compiler warnings
for not returning a value from a non-void function (even though the code
never actually reached that point before)
Daniel Stenberg [Fri, 7 Apr 2006 11:47:21 +0000 (11:47 +0000)]
added typedefed function pointers and typecast the NULL assignments in an
attempt to silence picky compilers when assigning data pointers to a function
pointer variable
Daniel Stenberg [Wed, 5 Apr 2006 12:35:48 +0000 (12:35 +0000)]
Michele Bini modified the NTLM code to work for his "weird IIS case"
(http://curl.haxx.se/mail/lib-2006-02/0154.html) by adding the NTLM hash
function in addition to the LM one and making some other adjustments in the
order the different parts of the data block are sent in the Type-2 reply.
Inspiration for this work was taken from the Firefox NTLM implementation.
I edited the existing 21(!) NTLM test cases to run fine with these news. Due
to the fact that we now properly include the host name in the Type-2 message
the test cases now only compare parts of that chunk.
Daniel Stenberg [Tue, 28 Mar 2006 08:03:25 +0000 (08:03 +0000)]
#1451929 (http://curl.haxx.se/bug/view.cgi?id=1451929) detailed a bug that
occurred when asking libcurl to follow HTTP redirects and the original URL had
more than one question mark (?). Added test case 276 to verify.
Daniel Stenberg [Mon, 27 Mar 2006 21:59:40 +0000 (21:59 +0000)]
David Byron found a problem multiple -d options when libcurl was built with
--enable-debug, as then curl used free() on memory allocated both with
normal malloc() and with libcurl-provided functions, when the latter MUST be
freed with curl_free() in debug builds.
Daniel Stenberg [Sun, 26 Mar 2006 08:52:43 +0000 (08:52 +0000)]
Tor Arntsen figured out that TFTP was broken on a lot of systems since we
called bind() with a too big argument in the 3rd parameter and at least
Tru64, AIX and IRIX seem to be very picky about it.
Dan Fandrich [Mon, 20 Mar 2006 22:15:22 +0000 (22:15 +0000)]
Fixed a bug whereby a received file whose length was a multiple of
512 bytes could have random garbage appended. Also, stop processing TFTP
packets which are too short to be legal.
Daniel Stenberg [Tue, 7 Mar 2006 23:11:41 +0000 (23:11 +0000)]
Markus Koetter filed debian bug report #355715 which identified a problem
with the multi interface and multi-part formposts. The fix from February
22nd could make the Curl_done() function get called twice on the same
connection and it was not designed for that and thus tried to call free() on
an already freed memory area!
Daniel Stenberg [Mon, 6 Mar 2006 22:35:51 +0000 (22:35 +0000)]
Lots of users on Windows have reported getting the "SSL: couldn't set
callback" error message so I've now made the setting of that callback not be
as critical as before. The function is only used for additional loggging/
trace anyway so a failure just means slightly less data. It should still be
able to proceed and connect fine to the server.
Daniel Stenberg [Thu, 23 Feb 2006 12:20:48 +0000 (12:20 +0000)]
Lots of work and analysis by "xbx___" in bug #1431750
(http://curl.haxx.se/bug/view.cgi?id=1431750) helped me identify and fix two
different but related bugs:
1) Removing an easy handle from a multi handle before the transfer is done
could leave a connection in the connection cache for that handle that is
in a state that isn't suitable for re-use. A subsequent re-use could then
read from a NULL pointer and segfault.
2) When an easy handle was removed from the multi handle, there could be an
outstanding c-ares DNS name resolve request. When the response arrived,
it caused havoc since the connection struct it "belonged" to could've
been freed already.
Now Curl_done() is called when an easy handle is removed from a multi handle
pre-maturely (that is, before the transfer was complteted). Curl_done() also
makes sure to cancel all (if any) outstanding c-ares requests.
Daniel Stenberg [Tue, 21 Feb 2006 07:46:41 +0000 (07:46 +0000)]
Peter Su added support for SOCKS4 proxies. Enable this by setting the proxy
type to the already provided type CURLPROXY_SOCKS4.
I added a --socks4 option that works like the current --socks5 option but
instead use the socks4 protocol.
Daniel Stenberg [Sat, 18 Feb 2006 22:27:01 +0000 (22:27 +0000)]
Ulf Härnhammar fixed a format string (printf style) problem in the Negotiate
code. It should however not be the cause of any troubles. He also fixed a
few similar problems in the HTTP test server code.
Daniel Stenberg [Thu, 16 Feb 2006 23:42:32 +0000 (23:42 +0000)]
Shmulik Regev provided a fix for the DNS cache when using short life times,
as previously it could be holding on to old cached entries longer than
requested.
Daniel Stenberg [Wed, 15 Feb 2006 09:36:39 +0000 (09:36 +0000)]
32. (At least on Windows) If libcurl is built with c-ares and there's no DNS
server configured in the system, the ares_init() call fails and thus
curl_easy_init() fails as well. This causes weird effects for people who use
numerical IP addresses only.
Daniel Stenberg [Sat, 11 Feb 2006 22:35:16 +0000 (22:35 +0000)]
Karl M added the CURLOPT_CONNECT_ONLY and CURLINFO_LASTSOCKET options that
an app can use to let libcurl only connect to a remote host and then extract
the socket from libcurl. libcurl will then not attempt to do any transfer at
all after the connect is done.
Daniel Stenberg [Tue, 7 Feb 2006 23:09:04 +0000 (23:09 +0000)]
Philippe Vaucher provided a brilliant piece of test code that show a problem
with re-used FTP connections. If the second request on the same connection was
set not to fetch a "body", libcurl could get confused and consider it an
attempt to use a dead connection and would go acting mighty strange.
Daniel Stenberg [Mon, 30 Jan 2006 08:24:07 +0000 (08:24 +0000)]
Added CURLOPT_LOCALPORT and CURLOPT_LOCALPORTRANGE to libcurl. Set with the
curl tool with --local-port. Plain and simply set the range of ports to bind
the local end of connections to. Implemented on to popular demand.
Not extensively tested. Please let me know how it works.
Daniel Stenberg [Mon, 30 Jan 2006 08:20:52 +0000 (08:20 +0000)]
Based on an error report by Philippe Vaucher, we no longer count a retried
connection setup as a follow-redirect. It turns out 1) this fails when a FTP
connection is re-setup and 2) it does make the max-redirs counter behave
wrong. This fix was not verified since the reporter vanished, but I believe
this is the right fix nonetheless.
Daniel Stenberg [Sat, 28 Jan 2006 13:14:38 +0000 (13:14 +0000)]
we should fix the system includes in the public headers to be based on checks
of the system instead of depending on what particular systems we think need
various headers