diff options
author | Viktor Szakats <vszakats@users.noreply.github.com> | 2017-08-05 09:26:04 +0000 |
---|---|---|
committer | Jay Satiro <raysatiro@yahoo.com> | 2017-08-17 03:32:00 -0400 |
commit | b7b4dc0d49543175ab0d9bb1cdc257a2d7f7cf0a (patch) | |
tree | 40a6f41fe368481822bc8807ef219cf279d7a500 /lib/ssh.c | |
parent | d18941ea175503ba0cf0792c1622c7a4a7c4b880 (diff) | |
download | curl-b7b4dc0d49543175ab0d9bb1cdc257a2d7f7cf0a.tar.gz |
ssh: add the ability to enable compression (for SCP/SFTP)
The required low-level logic was already available as part of
`libssh2` (via `LIBSSH2_FLAG_COMPRESS` `libssh2_session_flag()`[1]
option.)
This patch adds the new `libcurl` option `CURLOPT_SSH_COMPRESSION`
(boolean) and the new `curl` command-line option `--compressed-ssh`
to request this `libssh2` feature. To have compression enabled, it
is required that the SSH server supports a (zlib) compatible
compression method and that `libssh2` was built with `zlib` support
enabled.
[1] https://www.libssh2.org/libssh2_session_flag.html
Ref: https://github.com/curl/curl/issues/1732
Closes https://github.com/curl/curl/pull/1735
Diffstat (limited to 'lib/ssh.c')
-rw-r--r-- | lib/ssh.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -2942,6 +2942,13 @@ static CURLcode ssh_connect(struct connectdata *conn, bool *done) return CURLE_FAILED_INIT; } + if(data->set.ssh_compression) { +#if LIBSSH2_VERSION_NUM >= 0x010208 + if(libssh2_session_flag(ssh->ssh_session, LIBSSH2_FLAG_COMPRESS, 1) < 0) +#endif + infof(data, "Failed to enable compression for ssh session\n"); + } + #ifdef HAVE_LIBSSH2_KNOWNHOST_API if(data->set.str[STRING_SSH_KNOWNHOSTS]) { int rc; |