Commit 4748c95d authored by Andrew Svetlov's avatar Andrew Svetlov

Issue #16647: save socket error details in LMTP.connect()

Initial patch by Serhiy Storchaka.
parents 2fbc168e 1f7e694c
...@@ -309,7 +309,7 @@ class SMTP: ...@@ -309,7 +309,7 @@ class SMTP:
try: try:
port = int(port) port = int(port)
except ValueError: except ValueError:
raise socket.error("nonnumeric port") raise OSError("nonnumeric port")
if not port: if not port:
port = self.default_port port = self.default_port
if self.debuglevel > 0: if self.debuglevel > 0:
...@@ -330,7 +330,7 @@ class SMTP: ...@@ -330,7 +330,7 @@ class SMTP:
s = s.encode("ascii") s = s.encode("ascii")
try: try:
self.sock.sendall(s) self.sock.sendall(s)
except socket.error: except OSError:
self.close() self.close()
raise SMTPServerDisconnected('Server not connected') raise SMTPServerDisconnected('Server not connected')
else: else:
...@@ -363,7 +363,7 @@ class SMTP: ...@@ -363,7 +363,7 @@ class SMTP:
while 1: while 1:
try: try:
line = self.file.readline() line = self.file.readline()
except socket.error as e: except OSError as e:
self.close() self.close()
raise SMTPServerDisconnected("Connection unexpectedly closed: " raise SMTPServerDisconnected("Connection unexpectedly closed: "
+ str(e)) + str(e))
...@@ -920,13 +920,13 @@ class LMTP(SMTP): ...@@ -920,13 +920,13 @@ class LMTP(SMTP):
self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
self.file = None self.file = None
self.sock.connect(host) self.sock.connect(host)
except socket.error as msg: except OSError:
if self.debuglevel > 0: if self.debuglevel > 0:
print('connect fail:', host, file=stderr) print('connect fail:', host, file=stderr)
if self.sock: if self.sock:
self.sock.close() self.sock.close()
self.sock = None self.sock = None
raise socket.error(msg) raise
(code, msg) = self.getreply() (code, msg) = self.getreply()
if self.debuglevel > 0: if self.debuglevel > 0:
print('connect:', msg, file=stderr) print('connect:', msg, file=stderr)
......
...@@ -140,12 +140,8 @@ def gethostbyname(name): ...@@ -140,12 +140,8 @@ def gethostbyname(name):
return "" return ""
class gaierror(Exception): gaierror = socket_module.gaierror
pass error = socket_module.error
class error(Exception):
pass
# Constants # Constants
......
...@@ -542,9 +542,9 @@ class NonConnectingTests(unittest.TestCase): ...@@ -542,9 +542,9 @@ class NonConnectingTests(unittest.TestCase):
def testNonnumericPort(self): def testNonnumericPort(self):
# check that non-numeric port raises socket.error # check that non-numeric port raises socket.error
self.assertRaises(mock_socket.error, smtplib.SMTP, self.assertRaises(OSError, smtplib.SMTP,
"localhost", "bogus") "localhost", "bogus")
self.assertRaises(mock_socket.error, smtplib.SMTP, self.assertRaises(OSError, smtplib.SMTP,
"localhost:bogus") "localhost:bogus")
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment