Loading CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Daniel Fandrich (1 Aug 2008) - Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't support this so it goes untested. Yang Tse (1 Aug 2008) - Configure process now checks if the preprocessor _REENTRANT symbol is already defined. If it isn't currently defined a set of checks are performed to test Loading RELEASE-NOTES +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ This release includes the following changes: o Added test selection by key word in runtests.pl o the curl tool's -w option support the %{ssl_verify_result} variable o Added CURLOPT_SCOPE and scope parsing of the URL according to RFC4007 o Support --append on SFTP uploads (not with OpenSSH, though) This release includes the following bugfixes: Loading docs/MANUAL +24 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ SIMPLE USAGE curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \ scp://shell.example.com/~/personal.txt Get the main page from an IPv6 web server: curl -g "http://[2001:1890:1112:1::20]/" DOWNLOAD TO A FILE Loading Loading @@ -86,6 +89,13 @@ USING PASSWORDS standards while the recommended "explicit" way is done by using FTP:// and the --ftp-ssl option. SFTP / SCP This is similar to FTP, but you can specify a private key to use instead of a password. Note that the private key may itself be protected by a password that is unrelated to the login password of the remote system. If you provide a private key file you must also provide a public key file. HTTP Curl also supports user and password in HTTP URLs, thus you can pick a file Loading Loading @@ -154,9 +164,9 @@ RANGES UPLOADING FTP FTP / FTPS / SFTP / SCP Upload all data on stdin to a specified ftp site: Upload all data on stdin to a specified server: curl -T - ftp://ftp.upload.com/myfile Loading @@ -169,7 +179,7 @@ UPLOADING curl -T uploadfile -u user:passwd ftp://ftp.upload.com/ Upload a local file to get appended to the remote file using ftp: Upload a local file to get appended to the remote file: curl -T localfile -a ftp://ftp.upload.com/remotefile Loading Loading @@ -331,7 +341,7 @@ REFERRER curl -e www.coolsite.com http://www.showme.com/ NOTE: The referer field is defined in the HTTP spec to be a full URL. NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL. USER AGENT Loading Loading @@ -564,6 +574,14 @@ FTP and PATH NAMES (I.e with an extra slash in front of the file name.) SFTP and SCP and PATH NAMES With sftp: and scp: URLs, the path name given is the absolute name on the server. To access a file relative to the remote user's home directory, prefix the file with /~/ , such as: curl -u $USER sftp://home.example.com/~/.bashrc FTP and firewalls The FTP protocol requires one of the involved parties to open a second Loading Loading @@ -875,7 +893,8 @@ MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE As is mentioned above, you can download multiple files with one command line by simply adding more URLs. If you want those to get saved to a local file instead of just printed to stdout, you need to add one save option for each URL you specify. Note that this also goes for the -O option. URL you specify. Note that this also goes for the -O option (but not --remote-name-all). For example: get two files and use -O for the first and a custom file name for the second: Loading docs/curl.1 +2 −1 Original line number Diff line number Diff line Loading @@ -106,8 +106,9 @@ the --option version of them. (This concept with --no options was added in 7.19.0. Previously most options were toggled on/off on repeated use of the same command line option.) .IP "-a/--append" (FTP) When used in an FTP upload, this will tell curl to append to the target (FTP/SFTP) When used in an upload, this will tell curl to append to the target file instead of overwriting it. If the file doesn't exist, it will be created. Note that this flag is ignored by some SSH servers (including OpenSSH). .IP "-A/--user-agent <agent string>" (HTTP) Specify the User-Agent string to send to the HTTP server. Some badly done CGIs fail if this field isn't set to "Mozilla/4.0". To encode blanks in Loading lib/ssh.c +14 −5 Original line number Diff line number Diff line Loading @@ -1198,6 +1198,8 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) break; case SSH_SFTP_UPLOAD_INIT: { unsigned long flags; /* * NOTE!!! libssh2 requires that the destination path is a full path * that includes the destination file and name OR ends in a "/" Loading @@ -1221,13 +1223,19 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) } } if(data->set.ftp_append) /* Try to open for append, but create if nonexisting */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_APPEND; else if (data->state.resume_from > 0) /* If we have restart position then open for append */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_APPEND; else /* Clear file before writing (normal behaviour) */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_TRUNC; sshc->sftp_handle = libssh2_sftp_open(sshc->sftp_session, sftp_scp->path, /* If we have restart position then open for append */ (data->state.resume_from > 0)? LIBSSH2_FXF_WRITE|LIBSSH2_FXF_APPEND: LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_TRUNC, data->set.new_file_perms); flags, data->set.new_file_perms); if(!sshc->sftp_handle) { if(libssh2_session_last_errno(sshc->ssh_session) == Loading Loading @@ -1322,6 +1330,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) state(conn, SSH_STOP); } break; } case SSH_SFTP_CREATE_DIRS_INIT: if(strlen(sftp_scp->path) > 1) { Loading Loading
CHANGES +4 −0 Original line number Diff line number Diff line Loading @@ -6,6 +6,10 @@ Changelog Daniel Fandrich (1 Aug 2008) - Added support for --append on SFTP uploads. Unfortunately, OpenSSH doesn't support this so it goes untested. Yang Tse (1 Aug 2008) - Configure process now checks if the preprocessor _REENTRANT symbol is already defined. If it isn't currently defined a set of checks are performed to test Loading
RELEASE-NOTES +1 −0 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ This release includes the following changes: o Added test selection by key word in runtests.pl o the curl tool's -w option support the %{ssl_verify_result} variable o Added CURLOPT_SCOPE and scope parsing of the URL according to RFC4007 o Support --append on SFTP uploads (not with OpenSSH, though) This release includes the following bugfixes: Loading
docs/MANUAL +24 −5 Original line number Diff line number Diff line Loading @@ -48,6 +48,9 @@ SIMPLE USAGE curl -u username: --key ~/.ssh/id_dsa --pubkey ~/.ssh/id_dsa.pub \ scp://shell.example.com/~/personal.txt Get the main page from an IPv6 web server: curl -g "http://[2001:1890:1112:1::20]/" DOWNLOAD TO A FILE Loading Loading @@ -86,6 +89,13 @@ USING PASSWORDS standards while the recommended "explicit" way is done by using FTP:// and the --ftp-ssl option. SFTP / SCP This is similar to FTP, but you can specify a private key to use instead of a password. Note that the private key may itself be protected by a password that is unrelated to the login password of the remote system. If you provide a private key file you must also provide a public key file. HTTP Curl also supports user and password in HTTP URLs, thus you can pick a file Loading Loading @@ -154,9 +164,9 @@ RANGES UPLOADING FTP FTP / FTPS / SFTP / SCP Upload all data on stdin to a specified ftp site: Upload all data on stdin to a specified server: curl -T - ftp://ftp.upload.com/myfile Loading @@ -169,7 +179,7 @@ UPLOADING curl -T uploadfile -u user:passwd ftp://ftp.upload.com/ Upload a local file to get appended to the remote file using ftp: Upload a local file to get appended to the remote file: curl -T localfile -a ftp://ftp.upload.com/remotefile Loading Loading @@ -331,7 +341,7 @@ REFERRER curl -e www.coolsite.com http://www.showme.com/ NOTE: The referer field is defined in the HTTP spec to be a full URL. NOTE: The Referer: [sic] field is defined in the HTTP spec to be a full URL. USER AGENT Loading Loading @@ -564,6 +574,14 @@ FTP and PATH NAMES (I.e with an extra slash in front of the file name.) SFTP and SCP and PATH NAMES With sftp: and scp: URLs, the path name given is the absolute name on the server. To access a file relative to the remote user's home directory, prefix the file with /~/ , such as: curl -u $USER sftp://home.example.com/~/.bashrc FTP and firewalls The FTP protocol requires one of the involved parties to open a second Loading Loading @@ -875,7 +893,8 @@ MULTIPLE TRANSFERS WITH A SINGLE COMMAND LINE As is mentioned above, you can download multiple files with one command line by simply adding more URLs. If you want those to get saved to a local file instead of just printed to stdout, you need to add one save option for each URL you specify. Note that this also goes for the -O option. URL you specify. Note that this also goes for the -O option (but not --remote-name-all). For example: get two files and use -O for the first and a custom file name for the second: Loading
docs/curl.1 +2 −1 Original line number Diff line number Diff line Loading @@ -106,8 +106,9 @@ the --option version of them. (This concept with --no options was added in 7.19.0. Previously most options were toggled on/off on repeated use of the same command line option.) .IP "-a/--append" (FTP) When used in an FTP upload, this will tell curl to append to the target (FTP/SFTP) When used in an upload, this will tell curl to append to the target file instead of overwriting it. If the file doesn't exist, it will be created. Note that this flag is ignored by some SSH servers (including OpenSSH). .IP "-A/--user-agent <agent string>" (HTTP) Specify the User-Agent string to send to the HTTP server. Some badly done CGIs fail if this field isn't set to "Mozilla/4.0". To encode blanks in Loading
lib/ssh.c +14 −5 Original line number Diff line number Diff line Loading @@ -1198,6 +1198,8 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) break; case SSH_SFTP_UPLOAD_INIT: { unsigned long flags; /* * NOTE!!! libssh2 requires that the destination path is a full path * that includes the destination file and name OR ends in a "/" Loading @@ -1221,13 +1223,19 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) } } if(data->set.ftp_append) /* Try to open for append, but create if nonexisting */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_APPEND; else if (data->state.resume_from > 0) /* If we have restart position then open for append */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_APPEND; else /* Clear file before writing (normal behaviour) */ flags = LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_TRUNC; sshc->sftp_handle = libssh2_sftp_open(sshc->sftp_session, sftp_scp->path, /* If we have restart position then open for append */ (data->state.resume_from > 0)? LIBSSH2_FXF_WRITE|LIBSSH2_FXF_APPEND: LIBSSH2_FXF_WRITE|LIBSSH2_FXF_CREAT|LIBSSH2_FXF_TRUNC, data->set.new_file_perms); flags, data->set.new_file_perms); if(!sshc->sftp_handle) { if(libssh2_session_last_errno(sshc->ssh_session) == Loading Loading @@ -1322,6 +1330,7 @@ static CURLcode ssh_statemach_act(struct connectdata *conn) state(conn, SSH_STOP); } break; } case SSH_SFTP_CREATE_DIRS_INIT: if(strlen(sftp_scp->path) > 1) { Loading