Daniel Stenberg [Sun, 1 Apr 2007 08:24:23 +0000 (08:24 +0000)]
Robert Iakobashvili made curl_multi_remove_handle() a lot faster when many
easy handles are added to a multi handle, by avoiding the looping over all
the handles to find which one to remove.
Daniel Stenberg [Sun, 1 Apr 2007 07:51:30 +0000 (07:51 +0000)]
Matt Kraai provided a patch that makes curl build on QNX 6 fine again. Mostly
by letting configure check for setmode and ifdef on HAVE_SETMODE. NOTE: non-
configure platforms that havve setmode() needs their hard-coded config.h files
fixed. I fixed the src/config-win32.h.
Daniel Stenberg [Sat, 31 Mar 2007 21:35:56 +0000 (21:35 +0000)]
Since the str2num() function gets called with the 'nextarg' pointer from
within the getparameter a lot, we must check it for NULL before accessing the
str data.
CID 14 of the coverity.com scan
Daniel Stenberg [Sat, 31 Mar 2007 21:10:05 +0000 (21:10 +0000)]
Pointless to check for non-NULL pointers that already have been dereferenced
and they have to be non-NULL long before this check.
CID 22 in the coverity.com scan
Daniel Stenberg [Sat, 31 Mar 2007 11:28:03 +0000 (11:28 +0000)]
When curl_easy_duphandle() fails because it can't get or make a connection
cache, we must make sure not to derefence the NULL pointer...
CID 6 coverity.com scan
Daniel Stenberg [Sat, 31 Mar 2007 11:12:28 +0000 (11:12 +0000)]
The info types cannot be checked for explicity by ANDing the types since they
have not been properly defined to allow this! Instead of changing the defines
and break the ABI/API, I opted to modify the code to check for exact type
matches.
CID 10 coverity.com scan
Daniel Stenberg [Sat, 31 Mar 2007 10:39:54 +0000 (10:39 +0000)]
Removed check for ftpcode being NULL, as later it is derefenced unconditionally
anyway and we can just as well rely on it being valid.
CID 12, coverity.com scan
Yang Tse [Sat, 31 Mar 2007 03:21:08 +0000 (03:21 +0000)]
sshd might fail to start if given an unsupported configuration option.
Try to avoid this problem checking for some possible unsupported options,
and avoid using them in the configuration file.
Yang Tse [Wed, 28 Mar 2007 18:59:42 +0000 (18:59 +0000)]
Improve detection of socket events which allow a further recv() call
to complete with no delay and actually find out what happened with
the socket. As well as detection of socket send()able condition.
This also allows removal of a Cygwin specific block of code.
Yang Tse [Tue, 27 Mar 2007 18:15:26 +0000 (18:15 +0000)]
New Internal wrapper function Curl_select() around select (2), it
uses poll() when a fine poll() is available, so now libcurl can be
built without select() support at all if a fine poll() is available.
Yang Tse [Tue, 27 Mar 2007 04:17:26 +0000 (04:17 +0000)]
Platforms that lack autotools support should define HAVE_VARIADIC_MACROS_C99
and/or HAVE_VARIADIC_MACROS_GCC for specific compiler versions that support
variadic macros with C99 style and/or old gcc style in their specific config.h
file.
If previous definitions are not done, even when aplicable, and --disable-verbose
is used, the fallback (void) method will be used to define infof, avoiding the
inclusion of unwanted strings in the resulting library/executable.
Yang Tse [Tue, 20 Mar 2007 20:00:40 +0000 (20:00 +0000)]
Fixed: When a signal was caught awaiting for an event using Curl_select()
or Curl_poll() with a non-zero timeout both functions would restart the
specified timeout. This could even lead to the extreme case that if a
signal arrived with a frecuency lower to the specified timeout neither
function would ever exit.
Added experimental symbol definition check CURL_ACKNOWLEDGE_EINTR in
Curl_select() and Curl_poll(). When compiled with CURL_ACKNOWLEDGE_EINTR
defined both functions will return as soon as a signal is caught. Use it
at your own risk, all calls to these functions in the library should be
revisited and checked before fully supporting this feature.
Yang Tse [Mon, 19 Mar 2007 12:02:33 +0000 (12:02 +0000)]
Bryan Henderson fixed the progress function so that it can get called
more frequently allowing same calling frecuency for the client progress
callback, while keeping the once a second frecuency for speed calculations
and internal display of the transfer progress.