--- a/mercurial/mail.py Tue Oct 13 22:53:08 2015 -0700
+++ b/mercurial/mail.py Wed Oct 14 22:21:05 2015 -0400
@@ -70,31 +70,27 @@
self.does_esmtp = 0
return (resp, reply)
-if util.safehasattr(smtplib.SMTP, '_get_socket'):
- class SMTPS(smtplib.SMTP):
- '''Derived class to verify the peer certificate for SMTPS.
-
- This class allows to pass any keyword arguments to SSL socket creation.
- '''
- def __init__(self, sslkwargs, keyfile=None, certfile=None, **kwargs):
- self.keyfile = keyfile
- self.certfile = certfile
- smtplib.SMTP.__init__(self, **kwargs)
- self.default_port = smtplib.SMTP_SSL_PORT
- self._sslkwargs = sslkwargs
+class SMTPS(smtplib.SMTP):
+ '''Derived class to verify the peer certificate for SMTPS.
- def _get_socket(self, host, port, timeout):
- if self.debuglevel > 0:
- print >> sys.stderr, 'connect:', (host, port)
- new_socket = socket.create_connection((host, port), timeout)
- new_socket = sslutil.wrapsocket(new_socket,
- self.keyfile, self.certfile,
- **self._sslkwargs)
- self.file = smtplib.SSLFakeFile(new_socket)
- return new_socket
-else:
- def SMTPS(sslkwargs, keyfile=None, certfile=None, **kwargs):
- raise error.Abort(_('SMTPS requires Python 2.6 or later'))
+ This class allows to pass any keyword arguments to SSL socket creation.
+ '''
+ def __init__(self, sslkwargs, keyfile=None, certfile=None, **kwargs):
+ self.keyfile = keyfile
+ self.certfile = certfile
+ smtplib.SMTP.__init__(self, **kwargs)
+ self.default_port = smtplib.SMTP_SSL_PORT
+ self._sslkwargs = sslkwargs
+
+ def _get_socket(self, host, port, timeout):
+ if self.debuglevel > 0:
+ print >> sys.stderr, 'connect:', (host, port)
+ new_socket = socket.create_connection((host, port), timeout)
+ new_socket = sslutil.wrapsocket(new_socket,
+ self.keyfile, self.certfile,
+ **self._sslkwargs)
+ self.file = smtplib.SSLFakeFile(new_socket)
+ return new_socket
def _smtp(ui):
'''build an smtp connection and return a function to send mail'''