Yang Tse [Thu, 17 Jul 2008 03:07:54 +0000 (03:07 +0000)]
RECVFROM_TYPE_ARG2, RECVFROM_TYPE_ARG5 and RECVFROM_TYPE_ARG6 are now defined
to the data type pointed by its respective argument and not the pointer type.
Yang Tse [Wed, 16 Jul 2008 19:16:41 +0000 (19:16 +0000)]
Configure process now checks availability of recvfrom() socket function and
finds out its return type and the types of its arguments. Added definitions
for non-configure systems config files, and introduced macro sreadfrom which
will be used on udp sockets as a recvfrom() wrapper.
Yang Tse [Tue, 15 Jul 2008 16:43:39 +0000 (16:43 +0000)]
Allow --enable-largefile and --disable-largefile configurations.
Configure process no longer needs nor checks size of curl_off_t.
Library will now be built with _REENTRANT symbol defined.
Yang Tse [Mon, 14 Jul 2008 12:39:50 +0000 (12:39 +0000)]
HTTP_ONLY definition check in lib/setup.h is now done once that configuration
file has been included. In this way if symbol is defined in the config file
it will no longer be ignored.
Daniel Stenberg [Fri, 11 Jul 2008 09:08:27 +0000 (09:08 +0000)]
- Daniel Fandrich found out we didn't pass on the user-agent properly when
doing "proxy-tunnels" with non-HTTP prototols and that was simply because
the code assumed the user-agent was only needed for HTTP.
Dan Fandrich [Fri, 11 Jul 2008 04:38:11 +0000 (04:38 +0000)]
Changed slightly the SFTP quote commands chmod, chown and chgrp to only
set the attribute that has changed instead of all possible ones. Hopefully,
this will solve the "Permission denied" problem that Nagarajan Sreenivasan
reported when setting some modes, but regardless, it saves a protocol
round trip in the chmod case.
Daniel Stenberg [Thu, 10 Jul 2008 22:24:11 +0000 (22:24 +0000)]
(Added in the section for CURLOPT_DNS_CACHE_TIMEOUT, pointed out on the
curl-library list on July 9th 2008 by Mathew Hounsell)
NOTE: the name resolve functions of various libc implementations don't re-read
name server information unless explicitly told so (by for example calling
Ires_init(3). This may cause libcurl to keep using the older server even
if DHCP has updated the server info, and this may look like a DNS cache issue
to the casual libcurl-app user.
Yang Tse [Thu, 10 Jul 2008 18:01:44 +0000 (18:01 +0000)]
Peter Lamberg filed bug report #2015126: "poll gives WSAEINVAL when POLLPRI
is set in fdset.events" (http://curl.haxx.se/bug/view.cgi?id=2015126) which
exactly pinpointed the problem only triggered on Windows Vista, provided
reference to docs and also a fix. There is much work behind Peter Lamberg's
excellent bug report. Thank You!
Daniel Stenberg [Wed, 9 Jul 2008 18:39:49 +0000 (18:39 +0000)]
- Andreas Schuldei improved Phil Blundell's patch for IPv6 using c-ares, and I
edited it slightly. Now you should be able to use IPv6 addresses fine even
with libcurl built to use c-ares.
Daniel Stenberg [Mon, 7 Jul 2008 20:37:07 +0000 (20:37 +0000)]
- Scott Barrett provided a test case for a segfault in the FTP code and the
fix for it. It occured when you did a FTP transfer using
CURLFTPMETHOD_SINGLECWD and then did another one on the same easy handle but
switched to CURLFTPMETHOD_NOCWD. Due to the "dir depth" variable not being
cleared properly. Scott's test case is now known as test 539 and it
verifies the fix.
Daniel Stenberg [Thu, 3 Jul 2008 11:32:35 +0000 (11:32 +0000)]
- Phil Blundell: If you ask ares_gethostbyname() to do an AF_INET6 lookup and
the target host has only A records, it automatically falls back to an
AF_INET lookup and gives you the A results. However, if the target host has
a CNAME record, this behaviour is defeated since the original query does
return some data even though ares_parse_aaa_reply() doesn't consider it
relevant. Here's a small patch to make it behave the same with and without
the CNAME.
Daniel Stenberg [Thu, 3 Jul 2008 08:47:53 +0000 (08:47 +0000)]
Phil Blundell provided a fix for libcurl's treatment of unexpected 1xx
response codes. Previously libcurl would hang on such occurances. I added
test case 1033 to verify.
Daniel Stenberg [Thu, 3 Jul 2008 06:56:03 +0000 (06:56 +0000)]
Introcuding a new timestamp for curl_easy_getinfo():
CURLINFO_APPCONNECT_TIME. This is set with the "application layer"
handshake/connection is completed (typically SSL, TLS or SSH). By using this
you can figure out the application layer's own connect time. You can extract
the time stamp using curl's -w option and the new variable named
'time_appconnect'. This feature was sponsored by Lenny Rachitsky at NeuStar.
Daniel Stenberg [Tue, 1 Jul 2008 21:53:18 +0000 (21:53 +0000)]
CreateConnection collided with a function using the exact same name in the
INTEGRITY RTOS, so I renamed it to create_conn. It then made sense to also
rename SetupConnection to setup_conn to match it.
Daniel Stenberg [Mon, 30 Jun 2008 13:07:05 +0000 (13:07 +0000)]
- Stephen Collyer and Tor Arntsen helped identify a flaw in the range code
which output the range using a signed variable where it should rather use
unsigned.
Daniel Stenberg [Mon, 30 Jun 2008 12:48:25 +0000 (12:48 +0000)]
- As was pointed out to me by Andreas Schuldei, the MAXHOSTNAMELEN define is
not posix or anything and thus c-ares failed to build on hurd (and possibly
elsewhere). The define was also somewhat artificially used in the windows
port. Now, I instead rewrote the use of gethostbyname to enlarge the host
name buffer in case of need and totally avoid the use of the MAXHOSTNAMELEN
define. I thus also removed the defien from the namser.h file where it was
once added for the windows build.
I also fixed init_by_defaults() function to not leak memory in case if
error.
Yang Tse [Sun, 29 Jun 2008 03:19:20 +0000 (03:19 +0000)]
John Lightsey filed bug report #1999181: "CLOCK_MONOTONIC always fails on
some systems" (http://curl.haxx.se/bug/view.cgi?id=1999181). The problem was
that the configure script did not use the _POSIX_MONOTONIC_CLOCK feature test
macro when checking monotonic clock availability. This is now fixed and the
monotonic clock will not be used unless the feature test macro is defined
with a value greater than zero indicating always supported.
Daniel Stenberg [Sun, 22 Jun 2008 20:38:16 +0000 (20:38 +0000)]
- Eduard Bloch filed the debian bug report #487567
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=487567) pointing out that
libcurl used Content-Range: instead of Range when doing a range request with
--head (CURLOPT_NOBODY). This is now fixed and test case 1032 was added to
verify.
Dan Fandrich [Sun, 22 Jun 2008 06:57:00 +0000 (06:57 +0000)]
Stopped using ranges in scanf character sequences (e.g. %[a-z]) since that
is not ANSI C, just a common extension. This caused problems on
at least Open Watcom C.
Yang Tse [Fri, 20 Jun 2008 18:09:48 +0000 (18:09 +0000)]
Modified configuration script to actually verify if the compiler is good
enough at detecting compilation errors or at least it has been properly
configured to do so. Configuration heavily depends on this capability, so
if this compiler sanity check fails the configuration process will now fail.
Daniel Stenberg [Fri, 20 Jun 2008 11:15:54 +0000 (11:15 +0000)]
- Phil Pellouchoud found a case where libcurl built with NSS failed to
handshake with a SSLv2 server, and it turned out to be because it didn't
recognize the cipher named "rc4-md5". In our list that cipher was named
plainly "rc4". I've now added rc4-md5 to work as an alias as Phil reported
that it made things work for him again.
Daniel Stenberg [Fri, 20 Jun 2008 10:43:32 +0000 (10:43 +0000)]
- Hans-Jurgen May pointed out that trying SCP or SFTP over a SOCKS proxy
crashed libcurl. This is now addressed by making sure we use "plain send"
internally when doing the socks handshake instead of the Curl_write()
function which is designed to use the "target" protocol. That's then SCP or
SFTP in this case. I also took the opportunity and cleaned up some ssh-
related #ifdefs in the code for readability.
Daniel Stenberg [Thu, 19 Jun 2008 21:32:51 +0000 (21:32 +0000)]
- Christopher Palow fixed a curl_multi_socket() issue which previous caused
libcurl to not tell the app properly when a socket was closed (when the name
resolve done by c-ares is done) and then immediately re-created and put to
use again (for the actual connection). Since the closure will make the
"watch status" get lost in several event-based systems libcurl will need to
tell the app about this close/re-create case.
Daniel Stenberg [Thu, 19 Jun 2008 08:31:22 +0000 (08:31 +0000)]
- Dengminwen found a bug in the connection re-use function when using the
multi interface with pipelining enabled as it would wrongly check for,
detect and close "dead connections" even though that connection was already
in use!
Daniel Stenberg [Thu, 19 Jun 2008 05:47:27 +0000 (05:47 +0000)]
Removed the #define of ciphernum since keeping a define updated to be the
number of entries in a provided table is doomed to fail in the long run. Now
we use the NUM_OF_CIPHERS define instead to figure out the amount.
Daniel Stenberg [Wed, 18 Jun 2008 22:01:55 +0000 (22:01 +0000)]
- Rob Crittenden brought a fix for the NSS layer that makes libcurl no longer
always fire up a new connection rather than using the existing one when the
multi interface is used. Original bug report:
https://bugzilla.redhat.com/show_bug.cgi?id=450140
Daniel Stenberg [Wed, 18 Jun 2008 21:48:51 +0000 (21:48 +0000)]
check_issuer_cert() now builds and there's one warning less. Still one compiler
warning in the code though but we need NSS' base64.h header for that and we
don't currently have a suitable way to include it as our own base64.h header
kind of "blocks" it.
Daniel Stenberg [Fri, 13 Jun 2008 21:16:10 +0000 (21:16 +0000)]
In checkPendPipeline() we can't be setting the TIMER_CONNECT correctly as that
is for the TCP connect. I changed it to TIMER_PRETRANSFER which seems to be
what was intended here.
Daniel Stenberg [Thu, 12 Jun 2008 21:03:16 +0000 (21:03 +0000)]
My first attempt at documenting what we try to support and make curl run with
in regard to C standard, third party libraries and operating systems etc.
Daniel Stenberg [Wed, 11 Jun 2008 17:01:58 +0000 (17:01 +0000)]
- I did a cleanup of the internal generic SSL layer and how the various SSL
libraries are supported. Starting now, each underlying SSL library support
code does a set of defines for the 16 functions the generic layer (sslgen.c)
uses (all these new function defines use the prefix "curlssl_"). This
greatly simplified the generic layer in readability by involving much less
#ifdefs and other preprocessor stuff and should make it easier for people to
make libcurl work with new SSL libraries.
Hopefully I can later on document these 16 functions somewhat as well.
I also made most of the internal SSL-dependent functions (using Curl_ssl_
prefix) #defined to nothing when no SSL support is requested - previously
they would unnecessarily call mostly empty functions.