Daniel Stenberg [Wed, 28 Jan 2009 21:33:58 +0000 (21:33 +0000)]
- Markus Moeller introduced two new options to libcurl:
CURLOPT_SOCKS5_GSSAPI_SERVICE and CURLOPT_SOCKS5_GSSAPI_NEC to allow libcurl
to do GSS-style authentication with SOCKS5 proxies. The curl tool got the
options called --socks5-gssapi-service and --socks5-gssapi-nec to enable
these.
Daniel Stenberg [Mon, 26 Jan 2009 22:43:06 +0000 (22:43 +0000)]
- Chad Monroe provided the new CURLOPT_TFTP_BLKSIZE option that allows an app
to set desired block size to use for TFTP transfers instead of the default
512 bytes.
Daniel Stenberg [Mon, 26 Jan 2009 14:36:18 +0000 (14:36 +0000)]
- The "-no_ticket" option was introduced in Openssl0.9.8j. It's a flag to
disable "rfc4507bis session ticket support". rfc4507bis was later turned
into the proper RFC5077 it seems: http://tools.ietf.org/html/rfc5077
The enabled extension concerns the session management. I wonder how often
libcurl stops a connection and then resumes a TLS session. also, sending the
session data is some overhead. .I suggest that you just use your proposed
patch (which explicitly disables TICKET).
If someone writes an application with libcurl and openssl who wants to
enable the feature, one can do this in the SSL callback.
Sharad Gupta brought this to my attention. Peter Sylvester helped me decide
on the proper action.
Daniel Stenberg [Mon, 26 Jan 2009 13:19:03 +0000 (13:19 +0000)]
- Alexey Borzov filed bug report #2535504
(http://curl.haxx.se/bug/view.cgi?id=2535504) pointing out that realms with
quoted quotation marks in HTTP Digest headers didn't work. I've now added
test case 1095 that verifies my fix.
Daniel Stenberg [Sun, 25 Jan 2009 23:26:25 +0000 (23:26 +0000)]
- Craig A West brought CURLOPT_NOPROXY and the corresponding --noproxy option.
They basically offer the same thing the NO_PROXY environment variable only
offered previously: list a set of host names that shall not use the proxy
even if one is specified.
Dan Fandrich [Wed, 21 Jan 2009 04:42:47 +0000 (04:42 +0000)]
Fixed a couple more locale-dependent toupper conversions, mainly for
clarity. This does fix one problem that causes ;type=i FTP URLs
to fail in the Turkish locale when CURLOPT_PROXY_TRANSFER_MODE is
used (test case 561)
Added tests 561 and 1092 through 1094 to test various combinations
of ;type= and ;mode= URLs that could potentially fail in the Turkish
locale.
Daniel Stenberg [Wed, 14 Jan 2009 13:08:50 +0000 (13:08 +0000)]
- ares.h no longer uses the HAVE_STRUCT_IN6_ADDR define check, but instead it
now declares the private struct ares_in6_addr for all systems instead of
relying on one possibly not present in the system.
Daniel Stenberg [Tue, 13 Jan 2009 23:43:23 +0000 (23:43 +0000)]
62. CURLOPT_TIMEOUT does not work properly with the regular multi and
multi_socket interfaces. The work-around for apps is to simply remove the
easy handle once the time is up. See also:
http://curl.haxx.se/bug/view.cgi?id=2501457
Daniel Stenberg [Tue, 13 Jan 2009 22:04:43 +0000 (22:04 +0000)]
oops, the previous wasn't meant to get committed but since I did it I thought
I'd just as well enumerate the remainder and commit a "proper" looking one
Daniel Stenberg [Sun, 11 Jan 2009 23:41:50 +0000 (23:41 +0000)]
- Based on bug report #2498665 (http://curl.haxx.se/bug/view.cgi?id=2498665)
by Daniel Black, I've now added magic to the configure script that makes it
use pkg-config to detect gnutls details as well if the existing method
(using libgnutls-config) fails. While doing this, I cleaned up and unified
the pkg-config usage when detecting openssl and nss as well.
Daniel Stenberg [Sun, 11 Jan 2009 13:49:13 +0000 (13:49 +0000)]
- Phil Blundell added the internal function ares__expand_name_for_response()
that is now used by the ares_parse_*_reply() functions instead of the
ares_expand_name() simply to easier return ARES_EBADRESP for the cases where
the name expansion fails as in responses that really isn't expected.
Daniel Stenberg [Sat, 10 Jan 2009 22:10:57 +0000 (22:10 +0000)]
- Emil Romanus fixed:
When using the multi interface over HTTP and the server returns a Location
header, the running easy handle will get stuck in the CURLM_STATE_PERFORM
state, leaving the external event loop stuck waiting for data from the
ingoing socket (when using the curl_multi_socket_action stuff). While this
bug was pretty hard to find, it seems to require only a one-line fix. The
break statement on line 1374 in multi.c caused the function to skip the call
to multistate().
How to reproduce this bug? Well, that's another question. evhiperfifo.c in
the examples directory chokes on this bug only _sometimes_, probably
depending on how fast the URLs are added. One way of testing the bug out is
writing to hiper.fifo from more than one source at the same time.
Daniel Stenberg [Thu, 8 Jan 2009 22:53:37 +0000 (22:53 +0000)]
Only care about the first line of libtool --version as otherwise this script
get fooled by libtool 2, and at least libtool 1.5.2x do output the interesting
version string in the first line.
Daniel Stenberg [Thu, 8 Jan 2009 10:32:54 +0000 (10:32 +0000)]
"204 - Rob C's NSS fix" is done and since we enter feature freeze now I moved
the remaining three issues to next release since they are about new things and
not just fixing bugs
Dan Fandrich [Thu, 8 Jan 2009 00:31:49 +0000 (00:31 +0000)]
Unified much of the SessionHandle initialization done in Curl_open() and
curl_easy_reset() by creating Curl_init_userdefined(). This had the side effect
of fixing curl_easy_reset() so it now also resets CURLOPT_FTP_FILEMETHOD and
CURLOPT_SSL_SESSIONID_CACHE
Daniel Stenberg [Wed, 7 Jan 2009 14:10:35 +0000 (14:10 +0000)]
- Rob Crittenden did once again provide an NSS update:
I have to jump through a few hoops now with the NSS library initialization
since another part of an application may have already initialized NSS by the
time Curl gets invoked. This patch is more careful to only shutdown the NSS
library if Curl did the initialization.
It also adds in a bit of code to set the default ciphers if the app that
call NSS_Init* did not call NSS_SetDomesticPolicy() or set specific
ciphers. One might argue that this lets other application developers get
lazy and/or they aren't using the NSS API correctly, and you'd be right.
But still, this will avoid terribly difficult-to-trace crashes and is
generally helpful.
Daniel Stenberg [Wed, 31 Dec 2008 20:35:46 +0000 (20:35 +0000)]
- Bas Mevissen reported http://curl.haxx.se/bug/view.cgi?id=2479030 pointing
out that 'reconf' didn't properly point out the m4 subdirectory when running
aclocal.
Daniel Stenberg [Mon, 29 Dec 2008 22:25:50 +0000 (22:25 +0000)]
- Phil Lisiecki filed bug report #2413067
(http://curl.haxx.se/bug/view.cgi?id=2413067) that identified a problem that
would cause libcurl to mark a DNS cache entry "in use" eternally if the
subsequence TCP connect failed. It would thus never get pruned and refreshed
as it should've been.
Daniel Stenberg [Sat, 20 Dec 2008 22:10:42 +0000 (22:10 +0000)]
197 - IIS-bug in Digest
The curl tool parts are postponed to a later time
201 - "bug: header data output to the body callback function after set header"
Was probably not a bug, I asked about it but I didn't get any response.
202 - "hangs up of application above libcurl" - problems with the multi_socket
Fixes from Igor have been committed and there's currently no pending ones.
Daniel Stenberg [Sat, 20 Dec 2008 22:03:22 +0000 (22:03 +0000)]
- Igor Novoseltsev fixed a bad situation for the multi_socket() API when doing
pipelining, as libcurl could then easily get confused and A) work on the
handle that was not "first in queue" on a pipeline, or even B) tell the app
to REMOVE a socket while it was in use by a second handle in a pipeline. Both
errors caused hanging or stalling applications.
Daniel Stenberg [Fri, 19 Dec 2008 22:58:22 +0000 (22:58 +0000)]
- curl_multi_timeout() could return a timeout value of 0 even though nothing
was actually ready to get done, as the internal time resolution is higher
than the returned millisecond timer. Therefore it could cause applications
running on fast processors to do short bursts of busy-loops.
curl_multi_timeout() will now only return 0 if the timeout is actually
alreay triggered.
Daniel Stenberg [Fri, 19 Dec 2008 21:14:52 +0000 (21:14 +0000)]
- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurl
now has an improved ability to do right when the multi interface (both
"regular" and multi_socket) is used for SCP and SFTP transfers. This should
result in (much) less busy-loop situations and thus less CPU usage with no
speed loss.
Daniel Stenberg [Wed, 17 Dec 2008 12:32:41 +0000 (12:32 +0000)]
- SCP and SFTP with the multi interface had the same flaw: the 'DONE'
operation didn't complete properly if the EAGAIN equivalent was returned but
libcurl would simply continue with a half-completed close operation
performed. This ruined persistent connection re-use and cause some
SSH-protocol errors in general. The correction is unfortunately adding a
blocking function - doing it entirely non-blocking should be considered for
a better fix.
Gisle Vanem [Tue, 16 Dec 2008 09:03:58 +0000 (09:03 +0000)]
Added the use of Watt-32 tcp/ip stack for Win32 target.
If USE_WATT32=1 one needs to use stack-based calls (-3s).
So to keep the makefile nice and clean, specify -3s for
Winsock target too (there's hardly any speed-gain using -3r).
Gisle Vanem [Tue, 16 Dec 2008 08:48:44 +0000 (08:48 +0000)]
Added the use of Watt-32 tcp/ip stack for Win32 targets.
Added USE_WATT32 unconditionally for MSDOS targets since
it's the only option. Adjusted the text for '--wdebug'.
Daniel Stenberg [Fri, 12 Dec 2008 12:21:11 +0000 (12:21 +0000)]
- More work with Igor Novoseltsev to first fix the remaining stuff for
removing easy handles from multi handles when the easy handle is/was within
a HTTP pipeline. His bug report #2351653
(http://curl.haxx.se/bug/view.cgi?id=2351653) was also related and was
eventually fixed by a patch by Igor himself.