aboutsummaryrefslogtreecommitdiff
path: root/lib/ssh.c
AgeCommit message (Collapse)Author
2007-11-08Bug report #1823487 (http://curl.haxx.se/bug/view.cgi?id=1823487) pointedDaniel Stenberg
out that SFTP requests didn't use persistent connections. Neither did SCP ones. I gave the SSH code a good beating and now both SCP and SFTP should use persistent connections fine. I also did a bunch for indent changes as well as a bug fix for the "keyboard interactive" auth.
2007-11-07if () => if()Daniel Stenberg
while () => while() and some other minor re-indentings
2007-11-05Move connection-oriented variables from the SessionHandle struct to theDaniel Stenberg
connectdata struct. This will in theory enable us to do persistent connections with SCP+SFTP, but currently the state machine always (and wrongly) cleanup everything in the 'done' action instead of in 'disconnect'. Also did a bunch of indent fixes, if () => if() and a few other source cleanups like added comments etc.
2007-10-22Michal Marek forwarded the bug reportDaniel Stenberg
https://bugzilla.novell.com/show_bug.cgi?id=332917 about a HTTP redirect to FTP that caused memory havoc. His work together with my efforts created two fixes: #1 - FTP::file was moved to struct ftp_conn, because is has to be dealt with at connection cleanup, at which time the struct HandleData could be used by another connection. Also, the unused char *urlpath member is removed from struct FTP. #2 - provide a Curl_reset_reqproto() function that frees data->reqdata.proto.* on connection setup if needed (that is if the SessionHandle was used by a different connection).
2007-10-17We use this ZERO_NULL to avoid picky compiler warnings,Yang Tse
when assigning a NULL pointer to a function pointer var.
2007-10-12Added per-protocol callback static tables, replacing callback ptr storagePatrick Monnerat
in the connectdata structure by a single handler table ptr.
2007-10-03I renamed the CURLE_SSL_PEER_CERTIFICATE error code toDaniel Stenberg
CURLE_PEER_FAILED_VERIFICATION (standard CURL_NO_OLDIES style), and made this return code get used by the previous SSH MD5 fingerprint check in case it fails.
2007-10-03Based on a patch brought by Johnny Luong, libcurl now offersDaniel Stenberg
CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 and the curl tool --hostpubmd5. They both make the SCP or SFTP connection verify the remote host's md5 checksum of the public key before doing a connect, to reduce the risk of a man-in-the-middle attack.
2007-09-29Immanuel Gregoire fixed a problem with persistent transfers over SFTP - theDaniel Stenberg
previous proto struct was kept.
2007-09-28rename variable to prevent shadow warningDaniel Stenberg
2007-09-18Immanuel pointed out that public key SSH auth failed if no public/privateDaniel Stenberg
key was specified and there was no HOME environment variable, and then it didn't continue to try the other auth methods. Now it will instead try to get the files id_dsa.pub and id_dsa from the current directory if none of the two conditions were met.
2007-08-30Added more accurate error code returns from SFTP operations. Added testDan Fandrich
case 615 to test an SFTP upload failure.
2007-08-30Renamed several libcurl error codes and options to make them more generalDan Fandrich
and allow reuse by multiple protocols. Several unused error codes were removed. In all cases, macros were added to preserve source (and binary) compatibility with the old names. These macros are subject to removal at a future date, but probably not before 2009. An application can be tested to see if it is using any obsolete code by compiling it with the CURL_NO_OLDIES macro defined. Documented some newer error codes in libcurl-error(3)
2007-08-03Start adding some expanded error conversion of libssh2 errors.James Housley
2007-08-03remove left-over partly support for libssh2 0.14Daniel Stenberg
2007-08-03The SSH code now only works with libssh2 0.16 or later. Thus we must notDaniel Stenberg
release the next curl until there is a libssh2 0.16 released.
2007-08-01Patrick Monnerat and I modified libcurl so that now it *copies* all stringsDaniel Stenberg
passed to it with curl_easy_setopt()! Previously it has always just refered to the data, forcing the user to keep the data around until libcurl is done with it. That is now history and libcurl will instead clone the given strings and keep private copies.
2007-07-21Make the pointers of a few static const arrays const, too, for safety.Dan Fandrich
2007-07-20Fix a loop with PWDJames Housley
2007-07-20Made some const arrays static to avoid unnecessary stack usage.Dan Fandrich
2007-07-18As has been pointed out, err_msg should not be freed here. The actualJames Housley
issue is in libssh2 and not freeing a dynamic error message during cleanup.
2007-07-14for now unless we do better fixed LIBSSH2_APINO compares to use long constants.Gunter Knauf
2007-07-10* Finish moving sftp:// into a state machine so it won't block in multi modeJames Housley
* 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
2007-07-05Gavrie Philipson provided a patch that will use a more specific errorJames Housley
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.
2007-07-04Fix spelling error in error messageJames Housley
2007-06-27Add two new options for the SFTP/SCP/FILE protocols: CURLOPT_NEW_FILE_PERMSJames Housley
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
2007-06-27removed trailing spaces.Gunter Knauf
2007-06-27fixed wrong var nameGunter Knauf
2007-06-26The results for a list only directory should be sent to the callbackJames Housley
2007-06-26ftp_list_only mode should list all file types, not just directories.James Housley
2007-06-20If the creation of rsa and rsa_pub fail due to memory, don't tryJames Housley
other authentication methods. Terminate with a memory error.
2007-06-19Check both variables, not the same one twice. Pointed out by Colin HogbenJames Housley
2007-06-19extra precaution to make PATH_MAX always be definedDaniel Stenberg
2007-06-19Change rsa and rsa_pub from static arrays in ssh_conn to be dynamicallyJames Housley
allocated when needed
2007-06-18If LIBSSH2DEBUG was defined "i" was undefinedJames Housley
2007-06-16Curl_ssh_connect() was using an uninitialized variable in one location.James Housley
Caught by the auto-builds
2007-06-14Remove duplicate code that was left in as part of 1.35. This codeJames Housley
only affected sftp_sendquote() for the "chgrp/chmod/chown" commands. This also fixed failure of test 614 on a system that previously failed.
2007-06-14BUG FIX: When reading a directory listing that contains symlinksJames Housley
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.
2007-06-13Restore functionality mistakenly removed in the previous commitJames Housley
2007-06-13libssh2_session_free() returns void. Fix "#endif".Gisle Vanem
2007-06-13Commit Tom Regner's code for SFTP create missing directories. This patchJames Housley
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.
2007-06-13Add a define to protect the state machine from older versions of libssh2,James Housley
ie 0.14, that don't know about newer constants used in the state machine.
2007-06-12* Updates for the latest version of libssh2, specificallyJames Housley
libssh2_sftp_shutdown() and libssh2_session_free() can now return LIBSSH2_ERROR_EAGAIN. * Fix the _send() and _recv() return values so non-blocking works
2007-06-12While connect and transfer works fine in non-blocking mode for the testJames Housley
suite, transfer fails in the real world. So after connect set to blocking as full non-blocking is migrated out.
2007-06-12Prevent the state machine from getting stuck in SSH_AUTH_HOST_INITJames Housley
2007-06-12Convert Curl_ssh_connect() to run in a state machine forJames Housley
LIBSSH2_APINO >= 200706012030. More to come...
2007-06-11Squelsh some warnings for libssh older than 0.1.5.Gisle Vanem
2007-06-08Curl_scp_done() needs to call libssh2_channel_free() to prevent aJames Housley
memory leak, and it is the right thing to do.
2007-06-08Fix to work with the latest CVS version of libssh2James Housley
* 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.
2007-05-15Added support for quote commands before a transfer using SFTP and testDan Fandrich
case 614. Allow SFTP quote commands chmod, chown, chgrp to set a value of 0.