Daniel Stenberg [Mon, 3 Dec 2007 11:39:27 +0000 (11:39 +0000)]
Now libcurl (built with OpenSSL) doesn't return error anymore if the remote
SSL-based server doesn't present a certificate when the request is told to
ignore certificate verification anyway.
Daniel Stenberg [Mon, 3 Dec 2007 09:50:32 +0000 (09:50 +0000)]
removed the ;type= thing for FTP urls through proxy, since that's now only
present when enabled by on option which isn't done by default (and isn't even
available for the curl app atm)
Daniel Stenberg [Sun, 2 Dec 2007 23:38:23 +0000 (23:38 +0000)]
Michal Marek introduced CURLOPT_PROXY_TRANSFER_MODE which is used to control
the appending of the "type=" thing on FTP URLs when they are passed to a
HTTP proxy. Some proxies just don't like that appending (which is done
unconditionally in 7.17.1), and some proxies treat binary/ascii transfers
better with the appending done!
Daniel Stenberg [Thu, 29 Nov 2007 22:14:48 +0000 (22:14 +0000)]
A bug report on the curl-library list showed a HTTP Digest session going on
with a 700+ letter nonce. Previously libcurl only support 127 letter ones
and now I bumped it to 1023.
Daniel Stenberg [Wed, 28 Nov 2007 10:46:40 +0000 (10:46 +0000)]
fix next_lookup() to continue searching even if c-ares failed to load the
/etc/hosts file, pointed out by Erik Kline:
http://daniel.haxx.se/projects/c-ares/mail/c-ares-archive-2007-11/0027.shtml
Yang Tse [Tue, 27 Nov 2007 00:52:30 +0000 (00:52 +0000)]
Explicitly disallow remote hosts to connect to local forwarded ports,
the socks server port in the test suite. This is the default setting
unless a tinkered built ssh is being used.
Yang Tse [Mon, 26 Nov 2007 14:07:09 +0000 (14:07 +0000)]
Providing an explicit bind address besides the port for dynamic application-level
port forwarding, our socks port, prevents ssh from running on some systems.
By default, ssh binds local port forwardings to the loopback address, since this
was the address being given as the explicit bind address, now it isn't given.
Daniel Stenberg [Sat, 24 Nov 2007 23:16:55 +0000 (23:16 +0000)]
struct HandleData is now called struct SingleRequest, and is only for data that
is inited at the start of the DO action. I removed the Curl_transfer_keeper
struct completely, and I had to move out a few struct members (that had to
be set before DO or used after DONE) to the UrlState struct. The SingleRequest
struct is accessed with SessionHandle->req.
One of the biggest reasons for doing this was the bunch of duplicate struct
members in HandleData and Curl_transfer_keeper since it was really messy to
keep track of two variables with the same name and basically the same purpose!
Daniel Stenberg [Tue, 20 Nov 2007 23:17:08 +0000 (23:17 +0000)]
While inspecting the Negotiate code, I noticed how the proxy auth was using
the same state struct as the host auth, so both could never be used at the
same time! I fixed it (without being able to check) to use two separate
structs to allow authentication using Negotiate on host and proxy
simultanouesly.
Daniel Stenberg [Tue, 20 Nov 2007 10:03:33 +0000 (10:03 +0000)]
fix the treatment of the parameter-based precision, as in "%.*s%s" as
previously the second %s would wrongly get the numerical argument that is used
for the variable precision for the first %s...
Daniel Stenberg [Mon, 19 Nov 2007 09:24:24 +0000 (09:24 +0000)]
I think this is the right fix for other non-OpenSSL libs, based on the NSS fix
from the other day. It is time to setup the internal SSL libs and treat them
with a "handler" struct similar to how we deal with the protocols these days...
Daniel Stenberg [Thu, 15 Nov 2007 23:42:21 +0000 (23:42 +0000)]
Ates Goral identified a problem in http.c:add_buffer_send() when a debug
callback was used, as it could wrongly pass on a bad size for the outgoing
HTTP header. The bad size would be a very large value as it was a wrapped
size_t content. This happened when the whole HTTP request failed to get sent
in one single send. http://curl.haxx.se/mail/lib-2007-11/0165.html
Daniel Stenberg [Thu, 15 Nov 2007 23:30:59 +0000 (23:30 +0000)]
removed unnecessary check from add_buffer_send() that only was made within
#ifdef CURL_DOES_CONVERSIONS anyway! I turned it into a DEBUGASSERT() instead.
Daniel Stenberg [Thu, 15 Nov 2007 21:45:45 +0000 (21:45 +0000)]
Rearranged code and changed Curl_readwrite_init() and Curl_pre_readwrite() into
do_init() and do_complete() which now are called first and last in the DO
function. It simplified the flow in multi.c and the functions got more
sensible names!
Daniel Stenberg [Thu, 15 Nov 2007 11:03:02 +0000 (11:03 +0000)]
Make the Transfer() function return earlier without doing any initializations
for the cases where there's nothing to do in here, like for SFTP directory
listings that already is complete when this function gets called. The init
stuff clears byte counters which isn't really desired.
When looking up in DNS and then in the hosts file, return the error code from DNS if both fail, instead of returning the error code from the hosts file, as today. Patch from the Google tree.
Daniel Stenberg [Wed, 14 Nov 2007 22:41:42 +0000 (22:41 +0000)]
Fix how TFTP connections are treated when re-used, if the SessionHandle has
been used for other protocols in between. I found this when test 2004 started
to fail for me!
Daniel Stenberg [Mon, 12 Nov 2007 21:38:43 +0000 (21:38 +0000)]
Bug report #1830637 (http://curl.haxx.se/bug/view.cgi?id=1830637), which was
forwarded from the Gentoo bug tracker by Daniel Black and was originally
submitted by Robin Johnson, pointed out that libcurl would do bad memory
references when it failed and bailed out before the handler thing was
setup. My fix is not done like the provided patch does it, but instead I
make sure that there's never any chance for a NULL pointer in that struct
member.
Daniel Stenberg [Thu, 8 Nov 2007 10:22:49 +0000 (10:22 +0000)]
Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointed
out that SFTP requests didn't use persistent connections. Neither did SCP
ones. I gave the SSH code a good beating and now both SCP and SFTP should
use persistent connections fine. I also did a bunch for indent changes as
well as a bug fix for the "keyboard interactive" auth.