James Housley [Tue, 10 Jul 2007 22:26:32 +0000 (22:26 +0000)]
* Finish moving sftp:// into a state machine so it won't block in multi mode
* Move scp:// into a state machine so it won't block in multi mode
* When available use the full directory entry from the sftp:// server
James Housley [Thu, 5 Jul 2007 12:48:34 +0000 (12:48 +0000)]
Gavrie Philipson provided a patch that will use a more specific error
message for an scp:// upload failure. If libssh2 has his matching
patch, then the error message return by the server will be used instead
of a more generic error.
although the check for HAVE_STRUCT_TIMEVAL solved the redefine it is incorrect; lets see if a check for HAVE_GETTIMEOFDAY also works; if gettimeofday() is present then we can assume we have the timezone struct too.
Daniel Stenberg [Sun, 1 Jul 2007 22:01:18 +0000 (22:01 +0000)]
Thomas J. Moore provided a patch that introduces Kerberos5 support in
libcurl. This also makes the options change name to --krb (from --krb4) and
CURLOPT_KRBLEVEL (from CURLOPT_KRB4LEVEL) but the old names are still
James Housley [Thu, 28 Jun 2007 11:11:29 +0000 (11:11 +0000)]
Using fdopen() is a more correct way to implement the CURLOPT_NEW_FILE_PREMS
file.c, but the debug interface was missing. This adds the routines needed
to make the memory debuging work for fdopen().
James Housley [Wed, 27 Jun 2007 20:15:48 +0000 (20:15 +0000)]
Add two new options for the SFTP/SCP/FILE protocols: CURLOPT_NEW_FILE_PERMS
and CURLOPT_NEW_DIRECTORY_PERMS. These control the premissions for files
and directories created on the remote server. CURLOPT_NEW_FILE_PERMS
defaults to 0644 and CURLOPT_NEW_DIRECTORY_PERMS defaults to 0755
Daniel Stenberg [Tue, 26 Jun 2007 21:09:28 +0000 (21:09 +0000)]
Robert Iakobashvili re-arranged the internal hash code to work with a custom
hash function for different hashes, and also expanded the default size for
the socket hash table used in multi handles to greatly enhance speed when
very many connections are added and the socket API is used.
Daniel Stenberg [Mon, 25 Jun 2007 13:58:14 +0000 (13:58 +0000)]
Adjusted how libcurl treats HTTP 1.1 responses without content-lenth or
chunked encoding (that also lacks "Connection: close"). It now simply
assumes that the connection WILL be closed to signal the end, as that is how
RFC2616 section 4.4 point #5 says we should behave.
Daniel Stenberg [Sun, 24 Jun 2007 19:32:33 +0000 (19:32 +0000)]
As reported by "Tro" in http://curl.haxx.se/mail/lib-2007-06/0161.html and
http://curl.haxx.se/mail/lib-2007-06/0238.html, libcurl didn't properly do
no-body requests on FTP files on re-used connections properly, or at least
it didn't provide the info back in the header callback properly in the
subsequent requests.
Daniel Stenberg [Thu, 21 Jun 2007 14:23:38 +0000 (14:23 +0000)]
Gerrit Bruchhäuser pointed out a warning that the Intel(R) Thread Checker
tool reports and it was indeed a legitimate one and it is one fixed. It was
a use of a share without doing the proper locking first.
Daniel Stenberg [Wed, 20 Jun 2007 21:57:28 +0000 (21:57 +0000)]
Adam Piggott filed bug report #1740263
(http://curl.haxx.se/bug/view.cgi?id=1740263). Adam discovered that when
getting a large amount of URLs with curl, they were fetched slower and
slower... which turned out to be because the --libcurl data collecting which
wrongly always was enabled, but no longer is...
Daniel Stenberg [Mon, 18 Jun 2007 21:09:32 +0000 (21:09 +0000)]
Robson Braga Araujo filed bug report #1739100
(http://curl.haxx.se/bug/view.cgi?id=1739100) that mentioned that libcurl
could not actually list the contents of the root directory of a given FTP
server if the login directory isn't root. I fixed the problem and added three
test cases (one is disabled for now since I identified KNOWN_BUGS #44, we
cannot use --ftp-method nocwd and list ftp directories).
Daniel Stenberg [Mon, 18 Jun 2007 21:04:05 +0000 (21:04 +0000)]
Test listing of root dir with the three ftp-methods. KNOWN_BUGS #44 make me
disable test 351 by default by I add the test case anyway to make it easier
to work on this problem in the future.
Daniel Stenberg [Thu, 14 Jun 2007 11:21:48 +0000 (11:21 +0000)]
Make our own definitions of the POLL* defiens and the pollfd struct only get
done if the sys/poll.h file is missing, as we have seen machines with poll()
present but without the header file and machines that don't get HAVE_POLL
defined but that do have the sys/poll.h header file...
James Housley [Thu, 14 Jun 2007 10:36:53 +0000 (10:36 +0000)]
BUG FIX: When reading a directory listing that contains symlinks
with the latest libssh2, the listing would be truncated at the symlink.
Fix by looping on LIBSSH2_ERROR_EAGAIN, like the rest of the calls.
Daniel Stenberg [Wed, 13 Jun 2007 20:17:35 +0000 (20:17 +0000)]
Tom Regner provided a patch and worked together with James Housley, so now
CURLOPT_FTP_CREATE_MISSING_DIRS works for SFTP connections as well as FTP
ones.
Daniel Stenberg [Wed, 13 Jun 2007 20:08:19 +0000 (20:08 +0000)]
Rich Rauenzahn filed bug report #1733119
(http://curl.haxx.se/bug/view.cgi?id=1733119) and we collaborated on the fix.
The problem is that for 64bit HPUX builds, several socket-related functions
would still assume int (32 bit) arguments and not socklen_t (64 bit) ones.
James Housley [Wed, 13 Jun 2007 12:15:23 +0000 (12:15 +0000)]
Commit Tom Regner's code for SFTP create missing directories. This patch
uses the --ftp-create-dirs flag to control if cURL will try and create
directories that are specified in an upload path, but don't exist.
Daniel Stenberg [Tue, 12 Jun 2007 21:39:21 +0000 (21:39 +0000)]
With lots of help from Rich Rauenza(?) in bug #1733119, we introduce a fairly
complicated work-around for 64bit HPUX compiles. We do the fix using inline
static functions to make them follow the header file properly and thus get
used fine in the test suite too etc.
James Housley [Tue, 12 Jun 2007 16:15:20 +0000 (16:15 +0000)]
While connect and transfer works fine in non-blocking mode for the test
suite, transfer fails in the real world. So after connect set to blocking
as full non-blocking is migrated out.