aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
AgeCommit message (Collapse)Author
2011-01-05SSH: acknowledge speedcheckDaniel Stenberg
Check for speedcheck limits during the state machine traversals
2011-01-04Curl_timeleft: s/conn/data in first argumentDaniel Stenberg
As the function doesn't really use the connectdata struct but only the SessionHanadle struct I modified what argument it wants.
2011-01-03SSH: avoid PATH_MAX with allocDaniel Stenberg
We cannot assume that PATH_MAX will be enough for the remote path name so allocating room for it is the only sensible approach.
2011-01-01SFTP: make pwd output result to header callbackDaniel Stenberg
Sending "pwd" as a QUOTE command only sent the reply to the DEBUGFUNCTION. Now it also sends an FTP-like header to the header callback to allow similar operations as with FTP, and apps can re-use the same parser.
2010-12-30ssh: honour the CURLINFO_FTP_ENTRY_PATH curl_getinfo optionLuke Amery
2010-12-06url: provide dead_connection flag in Curl_handler::disconnectKamil Dudka
It helps to prevent a hangup with some FTP servers in case idle session timeout has exceeded. But it may be useful also for other protocols that send any quit message on disconnect. Currently used by FTP, POP3, IMAP and SMTP.
2010-12-06ssh: fix a download resume point calculationYang Tse
2010-12-04fix compiler warning: conversion may lose significant bitsYang Tse
2010-11-26s/isspace/ISSPACEYang Tse
2010-10-20SSH: use libssh2_session_handshake()Daniel Stenberg
In libssh2 1.2.8, libssh2_session_handshake() replaces libssh2_session_startup() to fix the previous portability problem with the socket type that was too small for win64 and thus easily could cause crashes and more.
2010-10-20SSH: avoid using the libssh2_ prefixDaniel Stenberg
It is a bad idea to use the public prefix used by another library and now we realize that libssh2 introduces a symbol in the upcoming version 1.2.8 that conflicts with our static function named libssh2_free.
2010-10-12SFTP: more ignoring negative file sizesDaniel Stenberg
As the change in 5f0ae7a0626cbe709 added a precaution against negative file sizes that for some reason managed to get returned, this change now introduces the same check at the second place in the code where the file size from the libssh2 stat call is used. This check might not be suitable for a 32 bit curl_off_t, but libssh2.h assumes long long to work and to be 64 bit so I believe such a small curl_off_t will be very unlikely to occur in the wild.
2010-09-30SFTP: avoid downloading negative sizes!Daniel Stenberg
It is still not clarified exactly why this happens, but libssh2 sometimes report a negative file size for the remote SFTP file and that deeply confuses libcurl (or crashes it) so this precaution is added to avoid badness. Reported by: Ernest Beinrohr Bug: http://curl.haxx.se/bug/view.cgi?id=3076430
2010-08-05build: fix libssh2_scp_send64() availabilityYang Tse
2010-08-04SCP: send large files properly with new enough libssh2Daniel Stenberg
libssh2 1.2.6 and later handle >32bit file sizes properly even on 32bit architectures and we make sure to use that ability. Reported by: Mikael Johansson Bug: http://curl.haxx.se/mail/lib-2010-08/0052.html
2010-07-21ssh: Fix compile error on 64-bit systems.Ben Greear
Signed-off-by: Ben Greear <greearb@candelatech.com>
2010-06-02SSH: corrected the inability to respect the timeoutDaniel Stenberg
Jason McDonald posted bug report #3006786 when he found that the SFTP code didn't timeout properly in several places in the code even if a timeout was set properly. Based on his suggested patch, I wrote a different implementation that I think addressed the issue better and also uses the connect timeout for the initial part of the SSH/SFTP done during the "protocol connect" phase. (http://curl.haxx.se/bug/view.cgi?id=3006786)
2010-05-11sendrecv: make them two pairs of send/recv to properly deal with FTPSHoward Chu
FTP(S) use two connections that can be set to different recv and send functions independently, so by introducing recv+send pairs in the same manner we already have sockets/connections we can work with FTPS fine. This commit fixes the FTPS regression introduced in change d64bd82.
2010-05-07sendrecv: split the I/O handling into private handlerHoward Chu
Howard Chu brought the bulk work of this patch that properly moves out the sending and recving of data to the parts of the code that are properly responsible for the various ways of doing so. Daniel Stenberg assisted with polishing a few bits and fixed some minor flaws in the original patch. Another upside of this patch is that we now abuse CURLcodes less with the "magic" -1 return codes and instead use CURLE_AGAIN more consistently.
2010-04-16Curl_setup_transfer: no longer returns anythingDaniel Stenberg
This function could only return CURLE_OK and by changing it to a void instead, we can simplify code all over.
2010-04-16sftp range: remove unnecessary check for NULL pointerDaniel Stenberg
2010-03-29Fix compile warnings in ssh.cBen Greear
strlen() returns size_t, but ssh libraries are wanting 'unsigned int'. Add explicit casts and use _ex versions of the ssh library calls. Signed-off-by: Ben Greear <greearb@candelatech.com>
2010-03-24remove the CVSish $Id$ linesDaniel Stenberg
2010-02-24fix compiler warningYang Tse
2010-02-20corected a comment and wrapped a few longish linesDaniel Stenberg
2010-02-04fix printf-style format stringsYang Tse
2010-01-26Andre Guibert de Bruet improved the libssh2 error code translationDaniel Stenberg
2010-01-11ssh_statemach_act() is now modified to loop over the switch() to perform asDaniel Stenberg
much as possible in one go, as long as it doesn't block and hasn't reached the end of the state machine. This avoids spurious -1 returns from curl_multi_fdset() simply because previously it would return from this function without anything in EWOUDLBLOCK and thus basically it wasn't actually waiting for anything!!
2009-12-30VMS specific preprocessor symbol checking adjustmentsYang Tse
2009-11-18Make usage of calloc()'s arguments consistent with rest of code baseYang Tse
2009-10-30- Liza Alenchery mentioned a problem with re-used SCP connection when a badDaniel Stenberg
auth is used, as it caused a crash. I failed to repeat the issue, but still made a change that now forces the TCP connection used for a freed SCP session to get closed and not be re-used.
2009-10-18- Fixed memory leak in the SCP/SFTP code as it never freed the knownhostsDaniel Stenberg
data!
2009-09-26- Implemented a protocol independent way to specify blocking direction, used byKamil Dudka
transfer.c for blocking. It is currently used only by SCP and SFTP protocols. This enhancement resolves an issue with 100% CPU usage during SFTP upload, reported by Vourhey.
2009-09-17fix compiler warning: conversion to 'size_t' from 'curl_off_t' may alter its ↵Yang Tse
value
2009-09-02- Daniel Johnson founded a flaw in the code convering sftp-errors to libcurlDaniel Stenberg
errors.
2009-07-23blocked sshkeycallback() with HAVE_LIBSSH2_KNOWNHOST_API to avoid compiler ↵Gunter Knauf
warnings.
2009-07-22- Added CURLOPT_SSH_KNOWNHOSTS, CURLOPT_SSH_KEYFUNCTION, CURLOPT_SSH_KEYDATA.Daniel Stenberg
They introduce known_host support for SSH keys to libcurl. See docs for details.
2009-06-27Fixed a compiler warning.Dan Fandrich
2009-06-10Adjusted to take in account that...Yang Tse
With the curl memory tracking feature decoupled from the debug build feature, CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as follows: CURLDEBUG used for curl debug memory tracking specific code (--enable-curldebug) DEBUGBUILD used for debug enabled specific code (--enable-debug)
2009-05-19changed ssh.c to use HAVE_LIBSSH2_SESSION_BLOCK_DIRECTION define provided by ↵Gunter Knauf
libssh2.h; removed related define block from ssh.h.
2009-05-11Internal cleanup: KEEP_WRITE and KEEP_READ are now called KEEP_SEND andDaniel Stenberg
KEEP_RECV to better match the general terminology: receive and send is what we do from the (remote) servers. We read and write from and to the local fs.
2009-04-28- Bug report #2709004 (http://curl.haxx.se/bug/view.cgi?id=2709004) by TimDaniel Stenberg
Chen pointed out how curl couldn't upload with resume when reading from a pipe. This ended up with the introduction of a new return code for the CURLOPT_SEEKFUNCTION callback that basically says that the seek failed but that libcurl may try to resolve the situation anyway. In our case this means libcurl will attempt to instead read that much data from the stream instead of seeking and that way curl can now upload with resume when data is read from a stream!
2009-04-21libcurl's memory.h renamed to curl_memory.hYang Tse
2009-04-14use HAVE_LIMITS_H symbol to protect limits.h inclusionYang Tse
2008-12-28silent 'unused' warnings.Gunter Knauf
2008-12-22libssh2_sftp_seek2 was just renamed to libssh2_sftp_seek64 ...Daniel Stenberg
2008-12-22- Given a recent enough libssh2, libcurl can now seek/resume with SFTP evenDaniel Stenberg
on file indexes beyond 2 or 4GB.
2008-12-19oops, removing debug output that wasn't supposed to be thereDaniel Stenberg
2008-12-19- Using the libssh2 0.19 function libssh2_session_block_directions(), libcurlDaniel Stenberg
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.
2008-12-17- SCP and SFTP with the multi interface had the same flaw: the 'DONE'Daniel Stenberg
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.