curl/lib
Viktor Szakats b7b4dc0d49 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
2017-08-17 03:32:00 -04:00
..
vauth digest_sspi: Don't reuse context if the user/passwd has changed 2017-08-10 01:40:05 -04:00
vtls darwinssi: fix error: variable length array used 2017-08-16 07:58:44 +02:00
.gitattributes .gitattributes: force shell scripts to LF 2017-04-17 08:32:13 +02:00
.gitignore VC: remove the makefile.vc6 build infra 2017-01-23 14:27:32 +01:00
amigaos.c s/cURL/curl 2016-10-18 13:59:54 +02:00
amigaos.h
arpa_telnet.h
asyn-ares.c timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
asyn-thread.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
asyn.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
base64.c base64: check for integer overflow on large input 2016-10-31 08:46:35 +01:00
checksrc.pl checksrc: escape open brace in regex 2017-07-27 01:13:19 +02:00
CMakeLists.txt CMake: set MSVC warning level to 4 2017-08-03 08:39:23 +02:00
config-amigaos.h config-amigaos.h: (embarrassed) made the line shorter 2016-12-18 23:46:17 +01:00
config-dos.h
config-mac.h
config-os400.h
config-riscos.h
config-symbian.h checksrc: white space edits to comply to stricter checksrc 2016-11-24 23:58:22 +01:00
config-tpf.h
config-vxworks.h
config-win32.h spelling fixes 2017-03-26 23:56:23 +02:00
config-win32ce.h spelling fixes 2017-03-26 23:56:23 +02:00
conncache.c llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
conncache.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
connect.c configure: check for __builtin_available() availability (#1788) 2017-08-16 12:24:39 -05:00
connect.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
content_encoding.c Improve code readbility 2017-03-13 23:11:45 +01:00
content_encoding.h
cookie.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
cookie.h cookies: getlist() now holds deep copies of all cookies 2016-10-31 08:46:35 +01:00
curl_addrinfo.c Improve code readbility 2017-03-13 23:11:45 +01:00
curl_addrinfo.h unix_socket: add support for abstract unix domain socket 2017-01-13 16:25:20 +01:00
curl_base64.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
curl_config.h.cmake cmake: remove dead code for DISABLED_THREADSAFE 2017-08-15 23:40:54 +02:00
curl_des.c use *.sourceforge.io and misc URL updates 2017-02-06 19:21:05 +00:00
curl_des.h
curl_endian.c curl_endian: remove unused functions 2017-06-02 13:30:41 +02:00
curl_endian.h curl_endian: remove unused functions 2017-06-02 13:30:41 +02:00
curl_fnmatch.c Improve code readbility 2017-03-13 23:11:45 +01:00
curl_fnmatch.h
curl_gethostname.c checksrc: move open braces to comply with function declaration style 2016-11-24 23:58:22 +01:00
curl_gethostname.h
curl_gssapi.c checksrc: white space edits to comply to stricter checksrc 2016-11-24 23:58:22 +01:00
curl_gssapi.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
curl_hmac.h checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
curl_ldap.h
curl_md4.h mbedtls: enable NTLM (& SMB) even if MD4 support is unavailable 2017-04-21 22:42:14 +02:00
curl_md5.h
curl_memory.h spelling fixes 2017-03-26 23:56:23 +02:00
curl_memrchr.c
curl_memrchr.h
curl_multibyte.c curl_multibyte: fix compiler error 2016-05-20 16:50:04 +02:00
curl_multibyte.h
curl_ntlm_core.c curl_ntlm_core: use Curl_raw_toupper instead of toupper 2017-06-05 00:27:29 +02:00
curl_ntlm_core.h NTLM: check for features with #ifdef instead of #if 2017-03-29 20:16:09 +02:00
curl_ntlm_wb.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
curl_ntlm_wb.h
curl_printf.h
curl_rtmp.c curl_rtmp: fix a compiler warning 2017-07-28 16:41:29 +02:00
curl_rtmp.h
curl_sasl.c curl_sasl: fix unused-variable warning 2017-06-03 11:59:38 +02:00
curl_sasl.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
curl_sec.h checksrc: stricter no-space-before-paren enforcement 2016-12-13 23:39:11 +01:00
curl_setup_once.h curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
curl_setup.h cmake: remove dead code for CURL_DISABLE_RTMP 2017-08-15 18:50:21 +02:00
curl_sspi.c curl_sspi.c: Updated function description comments 2016-08-31 11:57:28 +01:00
curl_sspi.h
curl_threads.c curl_threads: fix MSVC compiler warning 2017-08-01 17:22:30 +02:00
curl_threads.h checksrc: stricter no-space-before-paren enforcement 2016-12-13 23:39:11 +01:00
curlx.h strcase: make the tool use curl_str[n]equal instead 2016-10-31 21:51:19 +01:00
dict.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
dict.h
dotdot.c dedotdot: fixed output for ".." and "." only input 2017-06-03 00:11:51 +02:00
dotdot.h
easy.c easy_events: make event data static 2017-08-06 23:42:50 +02:00
easyif.h typedefs: use the full structs in internal code... 2016-06-22 10:28:41 +02:00
escape.c Improve code readbility 2017-03-13 23:11:45 +01:00
escape.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
file.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
file.h
fileinfo.c llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
fileinfo.h llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
firefox-db2pem.sh
formdata.c formdata: fix -Wcomma warning 2017-05-11 10:04:01 +02:00
formdata.h checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
ftp.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
ftp.h FTP: skip unnecessary CWD when in nocwd mode 2017-08-04 10:01:23 +02:00
ftplistparser.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
ftplistparser.h
getenv.c win: Basic support for Universal Windows Platform apps 2016-08-21 13:56:22 +02:00
getinfo.c progress: Track total times following redirects 2017-08-15 18:58:31 +02:00
getinfo.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
gopher.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
gopher.h
hash.c llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
hash.h llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
hmac.c checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
hostasyn.c internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
hostcheck.c Improve code readbility 2017-03-13 23:11:45 +01:00
hostcheck.h
hostip4.c checksrc: white space edits to comply to stricter checksrc 2016-11-24 23:58:22 +01:00
hostip6.c internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
hostip.c time: fix type conversions and compiler warnings 2017-05-24 22:56:22 +02:00
hostip.h spelling fixes 2017-03-26 23:56:23 +02:00
hostsyn.c internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
http2.c http2: handle PING frames 2017-06-30 10:27:41 +02:00
http2.h http2: fix OOM crash 2017-06-18 23:57:45 +02:00
http_chunks.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
http_chunks.h
http_digest.c lib: fix MSVC compiler warnings 2016-12-21 11:07:26 +01:00
http_digest.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
http_negotiate.c proxy: Support HTTPS proxy and SOCKS+HTTP(s) 2016-11-24 23:41:44 +01:00
http_negotiate.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
http_ntlm.c use *.sourceforge.io and misc URL updates 2017-02-06 19:21:05 +00:00
http_ntlm.h
http_proxy.c http_proxy: fix build error for CURL_DOES_CONVERSIONS 2017-08-16 14:41:31 -04:00
http_proxy.h http_proxy: fix build with http and proxy 2017-06-18 15:18:15 +02:00
http.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
http.h http: s/TINY_INITIAL_POST_SIZE/EXPECT_100_THRESHOLD 2017-07-06 11:20:57 +02:00
idn_win32.c
if2ip.c ipv6_scope: support unique local addresses 2017-08-13 17:52:15 +02:00
if2ip.h ipv6_scope: support unique local addresses 2017-08-13 17:52:15 +02:00
imap.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
imap.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
inet_ntop.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
inet_ntop.h
inet_pton.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
inet_pton.h inet_pton: fix include on windows to get prototype 2017-07-05 13:28:19 +02:00
krb5.c krb5: use private buffer for temp string, not receive buffer 2017-05-01 22:55:29 +02:00
ldap.c ldap: fix MinGW compiler warning 2017-07-10 10:22:34 +02:00
libcurl.plist
libcurl.rc *.rc: escape non-ASCII/non-UTF-8 character for clarity 2017-01-19 11:35:48 +00:00
libcurl.vers.in
llist.c multi: use a fixed array of timers instead of malloc 2017-05-10 12:55:36 +02:00
llist.h llist: no longer uses malloc 2017-04-22 11:25:27 +02:00
Makefile.am includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
makefile.amiga
Makefile.b32 spelling fixes 2017-03-26 23:56:23 +02:00
makefile.dj lib: fix the djgpp build 2017-06-21 07:46:21 +02:00
Makefile.inc Curl_rand: fixed and moved to rand.c 2016-11-14 08:23:52 +01:00
Makefile.m32 Makefile.m32: enable -W for MinGW32 build 2017-06-16 22:32:22 +02:00
Makefile.netware includes: remove curl/curlbuild.h and curl/curlrules.h 2017-06-14 11:07:33 +02:00
Makefile.vxworks
Makefile.Watcom lib/curl_setup.h: remove CURL_WANTS_CA_BUNDLE_ENV 2017-06-15 11:11:15 +02:00
md4.c MD(4|5): silence cast-align clang warning 2017-06-02 21:58:48 +02:00
md5.c MD(4|5): silence cast-align clang warning 2017-06-02 21:58:48 +02:00
memdebug.c errno: fix non-windows builds after af0216251b 2017-07-10 13:59:05 +02:00
memdebug.h
mk-ca-bundle.pl mk-ca-bundle.pl: Check curl's exit code after certdata download 2017-06-16 01:58:23 -04:00
mk-ca-bundle.vbs mk-ca-bundle.vbs: Fix UTF-8 output 2016-10-30 01:01:29 -04:00
mprintf.c assert: avoid, use DEBUGASSERT instead! 2017-05-22 13:59:29 +02:00
multi.c multi: fix request timer management 2017-08-01 13:39:38 +02:00
multihandle.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
multiif.h expire: remove Curl_expire_latest() 2017-06-08 10:50:47 +02:00
netrc.c netrc: skip lines starting with '#' 2017-08-03 10:04:16 +02:00
netrc.h
non-ascii.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
non-ascii.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
nonblock.c Improve code readbility 2017-03-13 23:11:45 +01:00
nonblock.h
nwlib.c checksrc: warn for assignments within if() expressions 2016-12-14 01:29:44 +01:00
nwos.c checksrc: stricter no-space-before-paren enforcement 2016-12-13 23:39:11 +01:00
objnames-test08.sh
objnames-test10.sh
objnames.inc spelling fixes 2017-03-26 23:56:23 +02:00
openldap.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
parsedate.c curl_setup_once: Remove ERRNO/SET_ERRNO macros 2017-07-10 02:09:27 -04:00
parsedate.h
pingpong.c pingpong: use the set buffer size 2017-05-01 22:55:29 +02:00
pingpong.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
pipeline.c PIPELINING_SERVER_BL: cleanup the internal list use 2017-06-19 09:14:49 +02:00
pipeline.h llist: replace Curl_llist_alloc with Curl_llist_init 2017-04-04 15:27:45 +02:00
pop3.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
pop3.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
progress.c progress: Track total times following redirects 2017-08-15 18:58:31 +02:00
progress.h progress: Track total times following redirects 2017-08-15 18:58:31 +02:00
rand.c timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
rand.h rand: treat fake entropy the same regardless of endianness 2017-05-08 23:24:29 +02:00
rtsp.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
rtsp.h handler: refactor connection checking 2017-06-30 10:17:27 +02:00
security.c ftp-gss: check for init before use 2016-12-24 23:35:43 +01:00
select.c timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
select.h select.h: avoid macro redefinition harder 2017-07-05 13:28:28 +02:00
sendf.c BUFSIZE: rename to READBUFFER_*, make separate MASTERBUF_SIZE 2017-05-01 22:55:29 +02:00
sendf.h http_proxy: Fix proxy CONNECT hang on pending data 2016-12-19 02:26:52 -05:00
setup-os400.h checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
setup-vms.h checksrc: move open braces to comply with function declaration style 2016-11-24 23:58:22 +01:00
share.c typedefs: use the full structs in internal code... 2016-06-22 10:28:41 +02:00
share.h checksrc: stricter no-space-before-paren enforcement 2016-12-13 23:39:11 +01:00
sigpipe.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
slist.c
slist.h
smb.c smb: rename variable to fix shadowing warning 2017-07-09 14:42:13 +02:00
smb.h
smtp.c handler: refactor connection checking 2017-06-30 10:17:27 +02:00
smtp.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
sockaddr.h
socks_gssapi.c checksrc: stricter no-space-before-paren enforcement 2016-12-13 23:39:11 +01:00
socks_sspi.c checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00
socks.c CURLOPT_SOCKS5_AUTH: allowed methods for SOCKS5 proxy auth 2017-06-28 08:02:58 +02:00
socks.h proxy: Support HTTPS proxy and SOCKS+HTTP(s) 2016-11-24 23:41:44 +01:00
speedcheck.c timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
speedcheck.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
splay.c splay: fix signed/unsigned mismatch warning 2017-07-29 01:13:42 -04:00
splay.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
ssh.c ssh: add the ability to enable compression (for SCP/SFTP) 2017-08-17 03:32:00 -04:00
ssh.h internals: rename the SessionHandle struct to Curl_easy 2016-06-22 10:28:41 +02:00
strcase.c Improve code readbility 2017-03-13 23:11:45 +01:00
strcase.h proxy: Support HTTPS proxy and SOCKS+HTTP(s) 2016-11-24 23:41:44 +01:00
strdup.c realloc: use Curl_saferealloc to avoid common mistakes 2016-11-11 10:03:48 +01:00
strdup.h realloc: use Curl_saferealloc to avoid common mistakes 2016-11-11 10:03:48 +01:00
strerror.c strerror: Preserve Windows error code in some functions 2017-07-11 01:53:23 -04:00
strerror.h idn: switch to libidn2 use and IDNA2008 support 2016-10-31 08:46:35 +01:00
strtok.c
strtok.h
strtoofft.c strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
strtoofft.h strtoofft: reduce integer overflow risks globally 2017-08-14 23:33:41 +02:00
system_win32.c spelling fixes 2017-03-26 23:56:23 +02:00
system_win32.h win32: Introduced centralised verify windows version function 2016-06-04 21:24:09 +01:00
telnet.c libcurl: Stop using error codes defined under CURL_NO_OLDIES 2017-07-31 02:59:05 -04:00
telnet.h
tftp.c tftp: reject file name lengths that don't fit 2017-08-07 09:24:30 +02:00
tftp.h
timeval.c bagder/Curl_tvdiff_us: fix the math 2017-08-12 17:25:50 +02:00
timeval.h timeval: struct curltime is a struct timeval replacement 2017-07-28 15:51:25 +02:00
transfer.c progress: Track total times following redirects 2017-08-15 18:58:31 +02:00
transfer.h speed caps: not based on average speeds anymore 2016-09-04 13:11:23 +02:00
url.c ssh: add the ability to enable compression (for SCP/SFTP) 2017-08-17 03:32:00 -04:00
url.h url: proxy: Use 443 as default port for https proxies 2016-11-25 10:01:58 +01:00
urldata.h ssh: add the ability to enable compression (for SCP/SFTP) 2017-08-17 03:32:00 -04:00
version.c curl_version_info: add CURL_VERSION_HTTPS_PROXY 2016-11-26 17:28:53 +01:00
warnless.c warnless: suppress compiler warning 2017-02-28 09:10:18 +01:00
warnless.h
wildcard.c llist: replace Curl_llist_alloc with Curl_llist_init 2017-04-04 15:27:45 +02:00
wildcard.h llist: replace Curl_llist_alloc with Curl_llist_init 2017-04-04 15:27:45 +02:00
x509asn1.c x509asn1: fix implicit-fallthrough warning with GCC 7 2017-06-03 20:10:52 +02:00
x509asn1.h checksrc: code style: use 'char *name' style 2016-11-24 23:58:22 +01:00