James Housley [Fri, 8 Jun 2007 16:02:57 +0000 (16:02 +0000)]
Fix to work with the latest CVS version of libssh2
* As of (LIBSSH2_APINO >= 200706012030) there are not *nb() functions
* As of (LIBSSH2_APINO >= 200706012030) most libssh2_*() functions
can return LIBSSH2_ERROR_EAGAIN to indicate that the call would block.
To make the code work as previously, blocking, all the code has been
updated so that when (LIBSSH2_APINO >= 200706012030) it loops simulating
blocking. This allows the existing code to function and not hold up
the upcoming release.
Daniel Stenberg [Thu, 7 Jun 2007 21:47:29 +0000 (21:47 +0000)]
Daniel S (6 June 2007)
- -s/--silent can now be used to toggle off the silence again if used a second
time.
Daniel S (5 June 2007)
- Added Daniel Black's work that adds the first few SOCKS test cases. I also
fixed two minor SOCKS problems to make the test cases run fine.
Dan Fandrich [Thu, 7 Jun 2007 21:42:33 +0000 (21:42 +0000)]
Renamed the sshd log file to sshd.log.
Added more options to the ssh config file to improve the consistency of
the test environment.
Force a rewrite of the ssh config files on every invocation.
Changed the opens to work on older versions of perl.
Daniel Stenberg [Thu, 31 May 2007 11:34:32 +0000 (11:34 +0000)]
When transferring 500 downloads in parallel with a c-ares enabled build only
to find that it crashed miserably, and this was due to some select()isms left
in the code. This was due to API restrictions in c-ares 1.3.x, but with the
upcoming c-ares 1.4.0 this is no longer the case so now libcurl runs much
better with c-ares and the multi interface with > 1024 file descriptors in
use.
Daniel Stenberg [Wed, 30 May 2007 20:04:44 +0000 (20:04 +0000)]
Added CURLMOPT_MAXCONNECTS which is a curl_multi_setopt() option for setting
the maximum size of the connection cache maximum size of the multi handle.
Daniel Stenberg [Wed, 30 May 2007 12:58:47 +0000 (12:58 +0000)]
added ares_process_fd() to allow applications to ask for processing on
specific sockets and thus avoiding select() and associated functions/macros.
This function will be used by upcoming libcurl releases for this very
reason. It also made me export the ares_socket_t type in the public ares.h
header file, since ares_process_fd() uses that type for two of the arguments.
Daniel Stenberg [Sat, 26 May 2007 22:09:08 +0000 (22:09 +0000)]
When working with a problem Stefan Becker had, I found an off-by-one buffer
overwrite in Curl_select(). While fixing it, I also improved its performance
somewhat by changing calloc to malloc and breaking out of a loop earlier
(when possible).
Daniel Stenberg [Sat, 26 May 2007 22:02:29 +0000 (22:02 +0000)]
Primarily this fixes an off-by-one buffer overwrite (rare but still existing).
I also switched from calloc() to malloc() as a minor performance boost since
the rest of the code fills in the structs fine anyway - and they must for the
case when we use the stack-based auto variable array instead of the allocated
one.
I made the loop filling in poll_fds[] break when poll_nfds is reached as a
minor speed improvement.
Daniel Stenberg [Fri, 25 May 2007 21:56:27 +0000 (21:56 +0000)]
Rob Crittenden fixed bug #1705802
(http://curl.haxx.se/bug/view.cgi?id=1705802), which was filed by Daniel
Black identifying several FTP-SSL test cases fail when we build libcurl with
NSS for TLS/SSL. Listed as #42 in KNOWN_BUGS.
Daniel Stenberg [Thu, 24 May 2007 20:58:25 +0000 (20:58 +0000)]
'mytx' in bug report #1723194 (http://curl.haxx.se/bug/view.cgi?id=1723194)
pointed out that the warnf() function in the curl tool didn't properly deal
with the cases when excessively long words were used in the string to chop
up.
Daniel Stenberg [Tue, 22 May 2007 19:51:44 +0000 (19:51 +0000)]
Andre Guibert de Bruet fixed a memory leak in the function that verifies the
peer's name in the SSL certificate when built for OpenSSL. The leak happens
for libcurls with CURL_DOES_CONVERSIONS enabled that fail to convert the CN
name from UTF8.
Daniel Stenberg [Fri, 18 May 2007 10:32:48 +0000 (10:32 +0000)]
Feng Tu reported that curl -w did wrong on TFTP transfers in
bug report #1715394 (http://curl.haxx.se/bug/view.cgi?id=1715394), and the
transfer-related info "variables" were indeed overwritten with zeroes wrongly
and have now been adjusted. The upload size still isn't accurate.
Dan Fandrich [Tue, 15 May 2007 00:36:56 +0000 (00:36 +0000)]
Added call to setvbuf (disabled by default for speed) to flush the
memdebug log file after every line and avoid losing the last few log
entries if curl crashes.
Dan Fandrich [Wed, 9 May 2007 18:24:27 +0000 (18:24 +0000)]
Kristian Gunstone fixed a problem where overwriting an uploaded file with
sftp didn't truncate it first, which would corrupt the file if the new
file was shorter than the old.
Daniel Stenberg [Tue, 8 May 2007 11:34:31 +0000 (11:34 +0000)]
CURLE_FTP_COULDNT_STOR_FILE is now known as CURLE_UPLOAD_FAILED. This is
because I just made SCP uploads return this value if the file size of
the upload file isn't given with CURLOPT_INFILESIZE*. Docs updated to
reflect this news, and a define for the old name was added to the public
header file.
Daniel Stenberg [Thu, 3 May 2007 20:50:07 +0000 (20:50 +0000)]
42. Daniel Black filed bug report #1705802 where he accurately mentions that
several FTP-SSL test cases fail when we build libcurl with NSS for TLS/SSL:
http://curl.haxx.se/bug/view.cgi?id=1705802
Daniel Stenberg [Wed, 2 May 2007 20:42:02 +0000 (20:42 +0000)]
Anders Gustafsson remarked that requiring CURLOPT_HTTP_VERSION set to 1.0
when CURLOPT_HTTP200ALIASES is used to avoid the problem mentioned below is
not very nice if the client wants to be able to use _either_ a HTTP 1.1
server or one within the aliases list... so starting now, libcurl will
simply consider 200-alias matches the to be HTTP 1.0 compliant.
Daniel Stenberg [Wed, 2 May 2007 17:35:47 +0000 (17:35 +0000)]
Tobias Rundstrom reported a problem they experienced with xmms2 and recent
libcurls, which turned out to be the 25-nov-2006 change which treats HTTP
responses without Content-Length or chunked encoding as without bodies. We
now added the conditional that the above mentioned response is only without
body if the response is HTTP 1.1.
Daniel Stenberg [Wed, 2 May 2007 13:47:56 +0000 (13:47 +0000)]
- Set the timeout for easy handles to expire really soon after addition or
when CURLM_CALL_MULTI_PERFORM is returned from curl_multi_socket*/perform,
to make applications using only curl_multi_socket() to properly function
when adding easy handles "on the fly". Bug report and test app provided by
Michael Wallner.
Daniel Stenberg [Wed, 2 May 2007 13:14:56 +0000 (13:14 +0000)]
Merged _all_ old changelogs into the single CHANGES.0 file. Having a new one
for every year is giving us too many files! I also split out the changes
from 2006 from CHANGES to CHANGES.0 now.
Daniel Stenberg [Mon, 30 Apr 2007 21:47:58 +0000 (21:47 +0000)]
brlcad on #curl provided this patch (edited by me) since "configure will fail
looking for a C++ preprocessor on libtool-using projects" with the factory-
installed libtool version on Mac OS X.
Dan Fandrich [Mon, 30 Apr 2007 20:15:33 +0000 (20:15 +0000)]
Improved the test harness to allow running test servers on other than
the default port numbers, allowing more than one test suite to run
simultaneously on the same host.
Daniel Stenberg [Sat, 28 Apr 2007 21:01:30 +0000 (21:01 +0000)]
Peter O'Gorman fixed libcurl to not init GnuTLS as early as we did before,
since it then inits libgcrypt and libgcrypt is being evil and EXITS the
application if it fails to get a fine random seed. That's really not a nice
thing to do by a library.
Daniel Stenberg [Sat, 28 Apr 2007 20:27:07 +0000 (20:27 +0000)]
Frank Hempel fixed a curl_easy_duphandle() crash on a handle that had
been removed from a multi handle, and then fixed another flaw that prevented
curl_easy_duphandle() to work even after the first fix - the handle was
still marked as using the multi interface.
Daniel Stenberg [Thu, 26 Apr 2007 21:30:29 +0000 (21:30 +0000)]
Peter O'Gorman found a problem with SCP downloads when the downloaded file
was 16385 bytes (16K+1) and it turned out we didn't properly always "suck
out" all data from libssh2. The effect being that libcurl would hang on the
socket waiting for data when libssh2 had in fact already read it all...
Daniel Stenberg [Wed, 25 Apr 2007 20:20:15 +0000 (20:20 +0000)]
Sonia Subramanian brought our attention to a problem that happens if you set
the CURLOPT_RESUME_FROM or CURLOPT_RANGE options and an existing connection
in the connection cache is closed to make room for the new one when you call
curl_easy_perform(). It would then wrongly free range-related data in the
connection close funtion.