Daniel Stenberg [Thu, 31 Jan 2008 11:36:05 +0000 (11:36 +0000)]
bug 51 may possibly be fixed, and as such it is not a known bug anymore:
51.Kevin Reed's reported problem with a proxy when doing CONNECT and it
wants NTLM and close the connection to the initial CONNECT response:
http://curl.haxx.se/bug/view.cgi?id=1879375
Daniel Stenberg [Sun, 27 Jan 2008 22:53:09 +0000 (22:53 +0000)]
Dmitry Kurochkin: In "real world" testing I found more bugs in
pipelining. Broken connection is not restored and we get into infinite
loop. It happens because of wrong is_in_pipeline values.
Daniel Stenberg [Fri, 25 Jan 2008 23:33:45 +0000 (23:33 +0000)]
- Kevin Reed filed bug report #1879375
(http://curl.haxx.se/bug/view.cgi?id=1879375) which describes how libcurl
got lost in this scenario: proxy tunnel (or HTTPS over proxy), ask to do any
proxy authentication and the proxy replies with an auth (like NTLM) and then
closes the connection after that initial informational response.
libcurl would not properly re-initialize the connection to the proxy and
continue the auth negotiation like supposed. It does now however, as it will
now detect if one or more authentication methods were available and asked
for, and will thus retry the connection and continue from there.
- I made the progress callback get called properly during proxy CONNECT.
Gunter Knauf [Wed, 23 Jan 2008 02:10:40 +0000 (02:10 +0000)]
removed inclusion of libcurl memory debug headers since this lib stub is a well proofed method suggested by Novell. This enables usage of the stub with language bindings.
Daniel Stenberg [Mon, 21 Jan 2008 23:48:58 +0000 (23:48 +0000)]
Dmitry Kurochkin removed the cancelled state for pipelining, as we agreed
that it is bad anyway. Starting now, removing a handle that is in used in a
pipeline will break the pipeline - it'll be set back up again but still...
Daniel Stenberg [Fri, 18 Jan 2008 21:51:10 +0000 (21:51 +0000)]
Lau Hang Kin found and fixed a problem with the multi interface when doing
CONNECT over a proxy. curl_multi_fdset() didn't report back the socket
properly during that state, due to a missing case in the switch in the
multi_getsock() function.
Yang Tse [Fri, 18 Jan 2008 05:58:00 +0000 (05:58 +0000)]
to actually allow really big HTTP POSTs curl's postfieldsize type is changed to
curl_off_t and CURLOPT_POSTFIELDSIZE_LARGE is used to pass value to libcurl
Daniel Stenberg [Wed, 16 Jan 2008 22:54:54 +0000 (22:54 +0000)]
Added test 553. This test case and code is based on the bug recipe Joe Malicki
provided for bug report #1871269, fixed on Jan 14 2008 before the 7.18.0
release.
Daniel Stenberg [Wed, 16 Jan 2008 12:24:00 +0000 (12:24 +0000)]
Dmitry Kurochkin worked a lot on improving the HTTP Pipelining support that
previously had a number of flaws, perhaps most notably when an application
fired up N transfers at once as then they wouldn't pipeline at all that
nicely as anyone would think... Test case 530 was also updated to take the
improved functionality into account.
Daniel Stenberg [Tue, 15 Jan 2008 22:44:12 +0000 (22:44 +0000)]
Woops, partly revert my previous commit and do it slightly differently instead.
The signalling of that a global DNS cache is wanted is done by setting the
option but the setting of the internal variable that it is in use must not be
done until it finally actually gets used!
NOTE and WARNING: I noticed that you can't actually switch off the global dns
cache with CURLOPT_DNS_USE_GLOBAL_CACHE but you couldn't do that previously
either and the option is very clearly and loudly documented as DO NOTE USE so
I won't bother to fix this bug now.
Daniel Stenberg [Tue, 15 Jan 2008 22:15:55 +0000 (22:15 +0000)]
I made the torture test on test 530 go through. This was actually due to
silly code left from when we switched to let the multi handle "hold" the dns
cache when using the multi interface... Of course this only triggered when a
certain function call returned error at the correct moment.
Daniel Stenberg [Mon, 14 Jan 2008 22:02:14 +0000 (22:02 +0000)]
Joe Malicki filed bug report #1871269
(http://curl.haxx.se/bug/view.cgi?id=1871269) and we could fix his hang-
problem that occurred when doing a large HTTP POST request with the
response-body read from a callback.
Daniel Stenberg [Sat, 12 Jan 2008 22:10:53 +0000 (22:10 +0000)]
Eric Landes provided the patch (edited by me) that introduces the
--keepalive-time to curl to set the keepalive probe interval. I also took
the opportunity to rename the recently added no-keep-alive option to
no-keepalive to keep a consistent naming and to avoid getting two dashes in
these option names. Eric also provided an update to the man page for the new
option.
Yang Tse [Fri, 11 Jan 2008 20:17:33 +0000 (20:17 +0000)]
When verifying that test harness's SSH and SOCKS servers have been
started check also that the process is actually alive, since they
could have died once the pidfile was written out
Daniel Stenberg [Fri, 11 Jan 2008 14:00:47 +0000 (14:00 +0000)]
I made the curl tool switch from using CURLOPT_IOCTLFUNCTION to now use the
spanking new CURLOPT_SEEKFUNCTION simply to take advantage of the improved
performance for the upload resume cases where you want to upload the last
few bytes of a very large file. To implement this decently, I had to switch
the client code for uploading from fopen()/fread() to plain open()/read() so
that we can use lseek() to do >32bit seeks (as fseek() doesn't allow that)
on systems that offer support for that.
Daniel Stenberg [Thu, 10 Jan 2008 22:14:02 +0000 (22:14 +0000)]
Michal Marek made curl-config --libs not include /usr/lib64 in the output
(it already before skipped /usr/lib). /usr/lib64 is the default library
directory on many 64bit systems and it's unlikely that anyone would use the
path privately on systems where it's not.
Daniel Stenberg [Thu, 10 Jan 2008 10:30:19 +0000 (10:30 +0000)]
Georg Lippitsch brought CURLOPT_SEEKFUNCTION and CURLOPT_SEEKDATA to allow
libcurl to seek in a given input stream. This is particularly important when
doing upload resumes when there's already a huge part of the file present
remotely. Before, and still if this callback isn't used, libcurl will read
and through away the entire file up to the point to where the resuming
begins (which of course can be a slow opereration depending on file size,
I/O bandwidth and more). This new function will also be preferred to get
used instead of the CURLOPT_IOCTLFUNCTION for seeking back in a stream when
doing multi-stage HTTP auth with POST/PUT.
Daniel Stenberg [Thu, 10 Jan 2008 09:17:07 +0000 (09:17 +0000)]
Nikitinskit Dmitriy filed bug report #1868255
(http://curl.haxx.se/bug/view.cgi?id=1868255) with a patch. It identifies
and fixes a problem with parsing WWW-Authenticate: headers with additional
spaces in the line that the parser wasn't written to deal with.