summaryrefslogtreecommitdiff
path: root/paramiko/transport.py
diff options
context:
space:
mode:
authorJeff Forcier <jeff@bitprophet.org>2018-09-18 20:00:40 -0700
committerJeff Forcier <jeff@bitprophet.org>2018-09-18 20:00:40 -0700
commite01e96bab13613352da8429b70de88b7165ec8ab (patch)
treec65c0a786a2e62445ad195cde2392ded4651912f /paramiko/transport.py
parent0a94473839edc226f6a7e88e6e24556b480f12d9 (diff)
parent6a3c145814d9a45e4865441de46d29ae9273334c (diff)
downloadparamiko-e01e96bab13613352da8429b70de88b7165ec8ab.tar.gz
Merge branch '2.3' into 2.4
Diffstat (limited to 'paramiko/transport.py')
-rw-r--r--paramiko/transport.py24
1 files changed, 18 insertions, 6 deletions
diff --git a/paramiko/transport.py b/paramiko/transport.py
index aa3b8dcc..410ff273 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -82,6 +82,8 @@ from paramiko.common import (
DEFAULT_WINDOW_SIZE,
DEFAULT_MAX_PACKET_SIZE,
HIGHEST_USERAUTH_MESSAGE_ID,
+ MSG_UNIMPLEMENTED,
+ MSG_NAMES,
)
from paramiko.compress import ZlibCompressor, ZlibDecompressor
from paramiko.dsskey import DSSKey
@@ -2035,12 +2037,22 @@ class Transport(threading.Thread, ClosingContextManager):
if len(self._expected_packet) > 0:
continue
else:
- err = "Oops, unhandled type {:d}".format(ptype)
- self._log(WARNING, err)
- msg = Message()
- msg.add_byte(cMSG_UNIMPLEMENTED)
- msg.add_int(m.seqno)
- self._send_message(msg)
+ # Respond with "I don't implement this particular
+ # message type" message (unless the message type was
+ # itself literally MSG_UNIMPLEMENTED, in which case, we
+ # just shut up to avoid causing a useless loop).
+ name = MSG_NAMES[ptype]
+ self._log(
+ WARNING,
+ "Oops, unhandled type {} ({!r})".format(
+ ptype, name
+ ),
+ )
+ if ptype != MSG_UNIMPLEMENTED:
+ msg = Message()
+ msg.add_byte(cMSG_UNIMPLEMENTED)
+ msg.add_int(m.seqno)
+ self._send_message(msg)
self.packetizer.complete_handshake()
except SSHException as e:
self._log(ERROR, "Exception: " + str(e))