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.
Yang Tse [Tue, 8 Jan 2008 19:18:25 +0000 (19:18 +0000)]
Remove increased loglevel intended to debug autobuild's publickey
authentication failures when using OpenSSH 2.9.9 or SunSSH.
Verified fact: Even when only using publickey authentication,
OpenSSH and SunSSH first validate the user, this implies that
if the user validation fails, 'invalid user', the publickey
authentication will not be allowed to complete.
Daniel Stenberg [Tue, 8 Jan 2008 14:52:05 +0000 (14:52 +0000)]
Introducing curl_easy_pause() and new magic return codes for both the read
and the write callbacks that now can make a connection's reading and/or
writing get paused.
Daniel Stenberg [Sun, 6 Jan 2008 10:50:57 +0000 (10:50 +0000)]
Jeff Johnson filed bug report #1863171
(http://curl.haxx.se/bug/view.cgi?id=1863171) where he pointed out that
libcurl's date parser didn't accept a +1300 time zone which actually is used
fairly often (like New Zealand's Dailight Savings Time), so I modified the
parser to now accept up to and including -1400 to +1400.
Daniel Stenberg [Sat, 5 Jan 2008 22:04:18 +0000 (22:04 +0000)]
Based on further discussion on curl-library, I reverted yesterday's SOCKS5
code to instead introduce support for a new proxy type called
CURLPROXY_SOCKS5_HOSTNAME that is used to send the host name to the proxy
instead of IP address and there's thus no longer any need for a new
curl_easy_setopt() option.
The default SOCKS5 proxy is again back to sending the IP address to the
proxy. The new curl command line option for enabling sending host name to a
SOCKS5 proxy is now --socks5-hostname.
Daniel Stenberg [Fri, 4 Jan 2008 23:01:00 +0000 (23:01 +0000)]
Based on Maxim Perenesenko's patch, we now do SOCKS5 operations and let the
proxy do the host name resolving and only if --socks5ip (or
CURLOPT_SOCKS5_RESOLVE_LOCAL) is used we resolve the host name locally and
pass on the IP address only to the proxy.
Daniel Stenberg [Wed, 2 Jan 2008 22:30:34 +0000 (22:30 +0000)]
- I fixed two cases of missing return code checks when handling chunked
decoding where a write error (or abort return from a callback) didn't stop
libcurl's processing.
Daniel Stenberg [Wed, 2 Jan 2008 22:23:27 +0000 (22:23 +0000)]
I removed the socklen_t use from the public curl/curl.h header and instead
made it an unsigned int. The type was only used in the curl_sockaddr struct
definition (only used by the curl_opensocket_callback). On all platforms I
could find information about, socklen_t is 32 unsigned bits large so I don't
think this will break the API or ABI. The main reason for this change is of
course for all the platforms that don't have a socklen_t definition in their
headers to build fine again. Providing our own configure magic and custom
definition of socklen_t on those systems proved to work but was a lot of
cruft, code and extra magic needed - when this very small change of type seems
harmless and still solves the missing socklen_t problem.
Daniel Stenberg [Wed, 2 Jan 2008 21:40:11 +0000 (21:40 +0000)]
Richard Atterer brought a patch that added support for SOCKS4a proxies, which
is an inofficial PROXY4 variant that sends the hostname to the proxy instead
of the resolved address (which is already supported by SOCKS5). --socks4a is
the curl command line option for it and CURLOPT_PROXYTYPE can now be set to
CURLPROXY_SOCKS4A as well.
Daniel Stenberg [Tue, 1 Jan 2008 21:11:26 +0000 (21:11 +0000)]
Mohun Biswas pointed out that --libcurl generated a source code with an int
function but without a return statement. While fixing that, I also took care
about adding some better comments for the generated code.
Daniel Stenberg [Wed, 26 Dec 2007 23:29:35 +0000 (23:29 +0000)]
Dmitry Kurochkin mentioned a flaw
(http://curl.haxx.se/mail/lib-2007-12/0252.html) in detect_proxy() which
failed to set the bits.proxy variable properly when an environment variable
told libcurl to use a http proxy.
Daniel Stenberg [Wed, 26 Dec 2007 21:48:52 +0000 (21:48 +0000)]
In an attempt to repeat the problem in bug report #1850730
(http://curl.haxx.se/bug/view.cgi?id=1850730) I wrote up test case 552. The
test is doing a 70K POST with a read callback and an ioctl callback over a
proxy requiring Digest auth. The test case code is more or less identical to
the test recipe code provided by Spacen Jasset (who submitted the bug report).
Daniel Stenberg [Mon, 24 Dec 2007 23:45:48 +0000 (23:45 +0000)]
Gary Maxwell filed bug report #1856628
(http://curl.haxx.se/bug/view.cgi?id=1856628) and provided a fix for the
(small) memory leak in the SSL session ID caching code. It happened when a
previous entry in the cache was re-used.
Yang Tse [Tue, 18 Dec 2007 18:33:24 +0000 (18:33 +0000)]
(http://curl.haxx.se/mail/archive-2007-12/0039.html) reported and fixed
a file truncation problem on Windows build targets triggered when retrying
a download with curl.
Yang Tse [Tue, 18 Dec 2007 18:08:19 +0000 (18:08 +0000)]
MSVC 9.0 (VS2008) does not support Windows build targets prior to WinXP,
and makes wrong asumptions of build target when it isn't specified. So,
if no build target has been defined we will target WinXP when building
with MSVC 9.0 (VS2008).
Daniel Stenberg [Mon, 17 Dec 2007 21:19:42 +0000 (21:19 +0000)]
Mateusz Loskot pointed out that VC++ 9.0 (2008) has the pollfd struct and
defines in the SDK somehow differently so we have to add a define to the
config-win32.h file to make select.h compile nicely.
Daniel Stenberg [Thu, 13 Dec 2007 10:00:06 +0000 (10:00 +0000)]
David Wright filed bug report #1849764
(http://curl.haxx.se/bug/view.cgi?id=1849764) with an included fix. He
identified a problem for re-used connections that previously had sent
Expect: 100-continue and in some situations the subsequent POST (that didn't
use Expect:) still had the internal flag set for its use. David's fix (that
makes the setting of the flag in every single request unconditionally) is
fine and is now used!
Daniel Stenberg [Mon, 10 Dec 2007 22:20:26 +0000 (22:20 +0000)]
grrr, the previous commit was meant to properly make sure that we don't
link any executables when doing debug builds since they kind of assume
symbols provided by libcurl, but it also wrongly included acountry.c
Daniel Stenberg [Sun, 9 Dec 2007 22:31:53 +0000 (22:31 +0000)]
Andrew Moise filed bug report #1847501
(http://curl.haxx.se/bug/view.cgi?id=1847501) and pointed out a memcpy()
that should be memmove() in the convert_lineends() function.
Daniel Stenberg [Sat, 8 Dec 2007 23:01:46 +0000 (23:01 +0000)]
Travelling some 500km by train back and forth on the same day gives you time
to do things you don't otherwise do, but here's the summary of today's work...