Skip to content

Commit 8f85aa4

Browse files
committed
Use timeout value in connect, handle socket errors.
1 parent d77b8c4 commit 8f85aa4

2 files changed

Lines changed: 18 additions & 14 deletions

File tree

nut2.py

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -94,19 +94,23 @@ def _connect(self):
9494
"""
9595
logging.debug("Connecting to host")
9696

97-
self._srv_handler = telnetlib.Telnet(self._host, self._port)
98-
99-
if self._login != None:
100-
self._srv_handler.write("USERNAME %s\n" % self._login)
101-
result = self._srv_handler.read_until("\n", self._timeout)
102-
if not result == "OK\n":
103-
raise PyNUTError(result.replace("\n", ""))
104-
105-
if self._password != None:
106-
self._srv_handler.write("PASSWORD %s\n" % self._password)
107-
result = self._srv_handler.read_until("\n", self._timeout)
108-
if not result == "OK\n":
109-
raise PyNUTError(result.replace("\n", ""))
97+
try:
98+
self._srv_handler = telnetlib.Telnet(self._host, self._port,
99+
timeout=self._timeout)
100+
101+
if self._login != None:
102+
self._srv_handler.write("USERNAME %s\n" % self._login)
103+
result = self._srv_handler.read_until("\n", self._timeout)
104+
if not result == "OK\n":
105+
raise PyNUTError(result.replace("\n", ""))
106+
107+
if self._password != None:
108+
self._srv_handler.write("PASSWORD %s\n" % self._password)
109+
result = self._srv_handler.read_until("\n", self._timeout)
110+
if not result == "OK\n":
111+
raise PyNUTError(result.replace("\n", ""))
112+
except telnetlib.socket.error:
113+
raise PyNUTError("Socket error.")
110114

111115
def description(self, ups):
112116
"""Returns the description for a given UPS."""

tests/mockserver.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
class MockServer(object):
44
def __init__(self, host=None, port=None, broken=True, ok=True,
5-
broken_username=False):
5+
broken_username=False, timeout=None):
66
self.valid = "test"
77
self.valid_desc = '"Test UPS 1"'
88
self.broken = broken

0 commit comments

Comments
 (0)