summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobey Pointer <robey@ralph.lag.net>2005-12-03 20:32:51 -0800
committerRobey Pointer <robey@ralph.lag.net>2005-12-03 20:32:51 -0800
commitfdf927cffd1801fed114f241a1cf63fd3b54f15f (patch)
tree9820fe639b16d3350814221e22ccd0f5e942731a
parent8aa2131e2846e697286c64d8c80223ef6b65e3ce (diff)
[project @ robey@ralph.lag.net-20051204043251-efc5e0b9adee5403]
remember once a transport is authenticated, so that after rekeying when using openssh-style delayed zlib (zlib@openssh.com), we know it's okay to immediately start new compression
-rw-r--r--paramiko/transport.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/paramiko/transport.py b/paramiko/transport.py
index c09e326f..6d391f00 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -271,6 +271,7 @@ class Transport (threading.Thread):
self.logger = util.get_logger(self.log_name)
self.packetizer.set_log(self.logger)
self.auth_handler = None
+ self.authenticated = False
# user-defined event callbacks:
self.completion_event = None
# server mode:
@@ -1578,7 +1579,7 @@ class Transport (threading.Thread):
mac_key = self._compute_key('F', mac_engine.digest_size)
self.packetizer.set_inbound_cipher(engine, block_size, mac_engine, mac_size, mac_key)
compress_in = self._compression_info[self.remote_compression][1]
- if (compress_in is not None) and (self.remote_compression != 'zlib@openssh.com'):
+ if (compress_in is not None) and ((self.remote_compression != 'zlib@openssh.com') or self.authenticated):
self._log(DEBUG, 'Switching on inbound compression ...')
self.packetizer.set_inbound_compressor(compress_in())
@@ -1605,7 +1606,7 @@ class Transport (threading.Thread):
mac_key = self._compute_key('E', mac_engine.digest_size)
self.packetizer.set_outbound_cipher(engine, block_size, mac_engine, mac_size, mac_key)
compress_out = self._compression_info[self.local_compression][0]
- if (compress_out is not None) and (self.local_compression != 'zlib@openssh.com'):
+ if (compress_out is not None) and ((self.local_compression != 'zlib@openssh.com') or self.authenticated):
self._log(DEBUG, 'Switching on outbound compression ...')
self.packetizer.set_outbound_compressor(compress_out())
if not self.packetizer.need_rekey():
@@ -1614,6 +1615,7 @@ class Transport (threading.Thread):
self.expected_packet = MSG_NEWKEYS
def _auth_trigger(self):
+ self.authenticated = True
# delayed initiation of compression
if self.local_compression == 'zlib@openssh.com':
compress_out = self._compression_info[self.local_compression][0]