improved and expanded logging in IS class

This commit is contained in:
Rossen Georgiev 2014-12-26 12:52:38 +00:00
parent cffc7219bb
commit 4b1dad52d2
1 changed files with 25 additions and 15 deletions

View File

@ -97,19 +97,8 @@ class IS(object):
while True: while True:
try: try:
self.logger.info("Attempting connection to %s:%s", self.server[0], self.server[1])
self._connect() self._connect()
self.logger.info("Sending login information")
self._send_login() self._send_login()
self.logger.info("Filter set to: %s", self.filter)
if self.passwd == "-1":
self.logger.info("Login successful (receive only)")
else:
self.logger.info("Login successful")
break break
except: except:
if not blocking: if not blocking:
@ -155,6 +144,8 @@ class IS(object):
callback(line) callback(line)
else: else:
callback(parse(line)) callback(parse(line))
else:
self.logger.debug("Server: %s", line)
except (KeyboardInterrupt, SystemExit): except (KeyboardInterrupt, SystemExit):
raise raise
except (ConnectionDrop, ConnectionError): except (ConnectionDrop, ConnectionError):
@ -181,10 +172,16 @@ class IS(object):
Attemps to open a connection to the server Attemps to open a connection to the server
""" """
self.logger.info("Attempting connection to %s:%s", self.server[0], self.server[1])
try: try:
# 15 seconds connection timeout # 15 seconds connection timeout
self.sock = socket.create_connection(self.server, 15) self.sock = socket.create_connection(self.server, 15)
raddr, rport = self.sock.getpeername()
self.logger.info("Connected to %s:%s", raddr, rport)
# 5 second timeout to receive server banner # 5 second timeout to receive server banner
self.sock.setblocking(1) self.sock.setblocking(1)
self.sock.settimeout(5) self.sock.settimeout(5)
@ -199,7 +196,11 @@ class IS(object):
self.sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 5) self.sock.setsockopt(socket.SOL_TCP, socket.TCP_KEEPINTVL, 5)
# pylint: enable=E1103 # pylint: enable=E1103
if self.sock.recv(512)[0] != "#": banner = self.sock.recv(512)
if banner[0] == "#":
self.logger.debug("Banner: %s", banner.rstrip())
else:
raise ConnectionError("invalid banner from server") raise ConnectionError("invalid banner from server")
except Exception, e: except Exception, e:
@ -224,10 +225,14 @@ class IS(object):
__version__ __version__
) )
self.logger.info("Sending login information")
try: try:
self.sock.sendall(login_str) self.sock.sendall(login_str)
self.sock.settimeout(5) self.sock.settimeout(5)
test = self.sock.recv(len(login_str) + 100) test = self.sock.recv(len(login_str) + 100).rstrip()
self.logger.info("Server: %s", test)
(x, x, callsign, status, x) = test.split(' ', 4) (x, x, callsign, status, x) = test.split(' ', 4)
@ -238,9 +243,14 @@ class IS(object):
if status != "verified," and self.passwd != "-1": if status != "verified," and self.passwd != "-1":
raise LoginError("Password is incorrect") raise LoginError("Password is incorrect")
except LoginError, e: if self.passwd == "-1":
self.logger.info("Login successful (receive only)")
else:
self.logger.info("Login successful")
except LoginError:
self.close() self.close()
raise LoginError("failed to login: %s" % e) raise
except: except:
self.close() self.close()
raise LoginError("failed to login") raise LoginError("failed to login")