summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJohan Prins <jpprins@kabelfoon.nl>2011-10-15 13:40:22 +0200
committerJeff Forcier <jeff@bitprophet.org>2014-02-11 15:01:29 -0800
commit985c3069fb2ccd3488aa600af2daa22186ef162a (patch)
tree2dda7b3ed3492164533d37c3a9bb20ca7044d9b1
parent2690a90ccb7a19b0676900f8804fb3da5f3130a6 (diff)
Adding banner functionality
-rw-r--r--paramiko/auth_handler.py5
-rw-r--r--paramiko/transport.py12
2 files changed, 17 insertions, 0 deletions
diff --git a/paramiko/auth_handler.py b/paramiko/auth_handler.py
index acb7c8b8..da551afa 100644
--- a/paramiko/auth_handler.py
+++ b/paramiko/auth_handler.py
@@ -45,6 +45,7 @@ class AuthHandler (object):
self.authenticated = False
self.auth_event = None
self.auth_method = ''
+ self.banner = None
self.password = None
self.private_key = None
self.interactive_handler = None
@@ -62,6 +63,9 @@ class AuthHandler (object):
else:
return self.username
+ def get_banner(self):
+ return self.banner
+
def auth_none(self, username, event):
self.transport.lock.acquire()
try:
@@ -375,6 +379,7 @@ class AuthHandler (object):
def _parse_userauth_banner(self, m):
banner = m.get_string()
+ self.banner = banner
lang = m.get_string()
self.transport._log(INFO, 'Auth banner: ' + banner)
# who cares.
diff --git a/paramiko/transport.py b/paramiko/transport.py
index 6c42cc27..951e36a4 100644
--- a/paramiko/transport.py
+++ b/paramiko/transport.py
@@ -1092,6 +1092,18 @@ class Transport (threading.Thread):
return None
return self.auth_handler.get_username()
+ def get_banner(self):
+ """
+ Return the banner supplied by the server upon connect. If no banner is supplied,
+ this method returns C{None}.
+
+ @return: server supplied banner, or C{None}.
+ @rtype: string
+ """
+ if not self.active or (self.auth_handler is None):
+ return None
+ return self.auth_handler.get_banner()
+
def auth_none(self, username):
"""
Try to authenticate to the server using no authentication at all.