aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
AgeCommit message (Collapse)Author
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.
2008-12-15- libssh2_sftp_last_error() was wrongly used at some places in libcurl whichDaniel Stenberg
made libcurl sometimes not properly abort problematic SFTP transfers.
2008-11-29Adjust some libssh2 preprocessor symbol definition checksYang Tse
2008-11-24- Based on a patch by Vlad Grachov, libcurl now uses a new libssh2 0.19Daniel Stenberg
function when built to support SCP and SFTP that helps the library to know in which direction a particular libssh2 operation would return EAGAIN so that libcurl knows what socket conditions to wait for before trying the function call again. Previously (and still when using libssh2 0.18 or earlier), libcurl will busy-loop in this situation when the easy interface is used!
2008-10-23Created Curl_raw_nequal() which does a C-locale string case comparison.Dan Fandrich
Changed checkprefix() to use it and those instances of strnequal() that compare host names or other protocol strings that are defined to be independent of case in the C locale. This should fix a few more Turkish locale problems.
2008-10-22Changed some arrays of char* to arrays of char[] to reduce data size andDan Fandrich
run-time relocations.
2008-10-21Fixed some problems with SFTP range support to fix test cases 634 through 637.Dan Fandrich
2008-09-29- Ian Lynagh provided a patch that now makes CURLOPT_RANGE work fine for SFTPDaniel Stenberg
downloads!
2008-09-24ntoa() and inet_ntoa_r() no longer usedYang Tse
2008-09-10fix compiler warningYang Tse
2008-09-06remove unnecessary typecasting of malloc()Yang Tse
2008-09-06remove unnecessary typecasting of calloc()Yang Tse
2008-09-02Removed some redundant type castsDan Fandrich
2008-08-16Library internal only C preprocessor macros FORMAT_OFF_T and FORMAT_OFF_TUYang Tse
remain in use as internal curl_off_t print formatting strings for the internal *printf functions which still cannot handle print formatting string directives such as "I64d", "I64u", and others available on MSVC, MinGW, Intel's ICC, and other DOS/Windows compilers. This reverts previous commit part which did: FORMAT_OFF_T -> CURL_FORMAT_CURL_OFF_T FORMAT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU
2008-08-15For congruency sake with the naming of other CURL_XXXXXX_CURL_OFF_T macros,Yang Tse
the names of the curl_off_t formatting string directives now become CURL_FORMAT_CURL_OFF_T and CURL_FORMAT_CURL_OFF_TU. CURL_FMT_OFF_T -> CURL_FORMAT_CURL_OFF_T CURL_FMT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU Remove the use of an internal name for the curl_off_t formatting string directives and use the common one available from the inside and outside of the library. FORMAT_OFF_T -> CURL_FORMAT_CURL_OFF_T FORMAT_OFF_TU -> CURL_FORMAT_CURL_OFF_TU
2008-08-12Removed unneeded header filesDan Fandrich
2008-08-01Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn'tDan Fandrich
support this so it goes untested.
2008-07-11Changed slightly the SFTP quote commands chmod, chown and chgrp to onlyDan Fandrich
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.