aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNicolas Viennot <nicolas@viennot.biz>2013-11-02 22:30:35 -0400
committerAndreas Schneider <asn@cryptomilk.org>2013-11-03 10:53:42 +0100
commitfb63887c1611051bd01d0aff4fd00d6c8c90b2c3 (patch)
tree900b10d124e3bdb190ee63a3f660ac10cf779f80 /src
parentb113b78dfc518222e5bd2f4c8641654d63a42a99 (diff)
downloadlibssh-fb63887c1611051bd01d0aff4fd00d6c8c90b2c3.tar.gz
libssh-fb63887c1611051bd01d0aff4fd00d6c8c90b2c3.tar.xz
libssh-fb63887c1611051bd01d0aff4fd00d6c8c90b2c3.zip
server kex: enable delayed compression
The code is careful to reenable compression when rekeying. Signed-off-by: Nicolas Viennot <nicolas@viennot.biz> Reviewed-by: Andreas Schneider <asn@cryptomilk.org>
Diffstat (limited to 'src')
-rw-r--r--src/wrapper.c18
1 files changed, 14 insertions, 4 deletions
diff --git a/src/wrapper.c b/src/wrapper.c
index 6f57ae8f..51688753 100644
--- a/src/wrapper.c
+++ b/src/wrapper.c
@@ -317,8 +317,13 @@ int crypt_set_algorithms_server(ssh_session session){
session->next_crypto->do_compress_in=1;
}
if(strcmp(method,"zlib@openssh.com") == 0){
- ssh_set_error(session,SSH_FATAL,"zlib@openssh.com not supported");
- return SSH_ERROR;
+ SSH_LOG(SSH_LOG_PACKET,"enabling C->S delayed compression");
+
+ if (session->flags & SSH_SESSION_FLAG_AUTHENTICATED) {
+ session->next_crypto->do_compress_in = 1;
+ } else {
+ session->next_crypto->delayed_compress_in = 1;
+ }
}
method = session->next_crypto->kex_methods[SSH_COMP_S_C];
@@ -327,8 +332,13 @@ int crypt_set_algorithms_server(ssh_session session){
session->next_crypto->do_compress_out=1;
}
if(strcmp(method,"zlib@openssh.com") == 0){
- ssh_set_error(session,SSH_FATAL,"zlib@openssh.com not supported");
- return SSH_ERROR;
+ SSH_LOG(SSH_LOG_PACKET,"enabling S->C delayed compression\n");
+
+ if (session->flags & SSH_SESSION_FLAG_AUTHENTICATED) {
+ session->next_crypto->do_compress_out = 1;
+ } else {
+ session->next_crypto->delayed_compress_out = 1;
+ }
}
method = session->next_crypto->kex_methods[SSH_HOSTKEYS];