]> granicus.if.org Git - python/commitdiff
Issue #16647: save socket error details in LMTP.connect()
authorAndrew Svetlov <andrew.svetlov@gmail.com>
Mon, 17 Dec 2012 16:57:16 +0000 (18:57 +0200)
committerAndrew Svetlov <andrew.svetlov@gmail.com>
Mon, 17 Dec 2012 16:57:16 +0000 (18:57 +0200)
Initial patch by Serhiy Storchaka.

1  2 
Lib/smtplib.py
Lib/test/mock_socket.py
Lib/test/test_smtplib.py

diff --cc Lib/smtplib.py
index d37b0e247dd4e3460eb00df9eb4166e4d9de8375,c949d77b513f622bea90678f26792726317aab88..44a144cd8ca5b44377cd542a9ac1acad369301a5
@@@ -309,7 -309,7 +309,7 @@@ class SMTP
                  try:
                      port = int(port)
                  except ValueError:
--                    raise socket.error("nonnumeric port")
++                    raise OSError("nonnumeric port")
          if not port:
              port = self.default_port
          if self.debuglevel > 0:
                  s = s.encode("ascii")
              try:
                  self.sock.sendall(s)
--            except socket.error:
++            except OSError:
                  self.close()
                  raise SMTPServerDisconnected('Server not connected')
          else:
          while 1:
              try:
                  line = self.file.readline()
--            except socket.error as e:
++            except OSError as e:
                  self.close()
                  raise SMTPServerDisconnected("Connection unexpectedly closed: "
                                               + str(e))
@@@ -920,7 -920,7 +920,7 @@@ class LMTP(SMTP)
              self.sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
              self.file = None
              self.sock.connect(host)
-         except socket.error as msg:
 -        except socket.error:
++        except OSError:
              if self.debuglevel > 0:
                  print('connect fail:', host, file=stderr)
              if self.sock:
index d09e78c1d518588ac50e4d9ff842b1a84c2fe5fb,d09e78c1d518588ac50e4d9ff842b1a84c2fe5fb..8ef0ec8c8dae61a03fc91c49daa385347bd84a9f
@@@ -140,12 -140,12 +140,8 @@@ def gethostbyname(name)
      return ""
  
  
--class gaierror(Exception):
--    pass
--
--
--class error(Exception):
--    pass
++gaierror = socket_module.gaierror
++error = socket_module.error
  
  
  # Constants
index befc49e9d3d72b724790fe0688611382908f9388,befc49e9d3d72b724790fe0688611382908f9388..6fe2df96df7440b6b4bfc27e2d0972c0de2b9703
@@@ -542,9 -542,9 +542,9 @@@ class NonConnectingTests(unittest.TestC
  
      def testNonnumericPort(self):
          # check that non-numeric port raises socket.error
--        self.assertRaises(mock_socket.error, smtplib.SMTP,
++        self.assertRaises(OSError, smtplib.SMTP,
                            "localhost", "bogus")
--        self.assertRaises(mock_socket.error, smtplib.SMTP,
++        self.assertRaises(OSError, smtplib.SMTP,
                            "localhost:bogus")