comparison tests/dummysmtpd.py @ 29556:1b8b6adb2365

tests: use sslutil.wrapserversocket() Like the built-in HTTPS server, this code was using the ssl module directly and only using TLS 1.0. Like the built-in HTTPS server, we switch it to use sslutil.wrapserversocket() so it can follow better practices.
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 13 Jul 2016 20:41:07 -0700
parents 2bb0ddd8267b
children d9d8d78e6bc9
comparison
equal deleted inserted replaced
29555:121d11814c62 29556:1b8b6adb2365
10 import ssl 10 import ssl
11 import sys 11 import sys
12 12
13 from mercurial import ( 13 from mercurial import (
14 cmdutil, 14 cmdutil,
15 sslutil,
16 ui as uimod,
15 ) 17 )
16 18
17 def log(msg): 19 def log(msg):
18 sys.stdout.write(msg) 20 sys.stdout.write(msg)
19 sys.stdout.flush() 21 sys.stdout.flush()
33 def handle_accept(self): 35 def handle_accept(self):
34 pair = self.accept() 36 pair = self.accept()
35 if not pair: 37 if not pair:
36 return 38 return
37 conn, addr = pair 39 conn, addr = pair
40 ui = uimod.ui()
38 try: 41 try:
39 # wrap_socket() would block, but we don't care 42 # wrap_socket() would block, but we don't care
40 conn = ssl.wrap_socket(conn, server_side=True, 43 conn = sslutil.wrapserversocket(conn, ui, certfile=self._certfile)
41 certfile=self._certfile,
42 ssl_version=ssl.PROTOCOL_TLSv1)
43 except ssl.SSLError: 44 except ssl.SSLError:
44 log('%s ssl error\n' % addr[0]) 45 log('%s ssl error\n' % addr[0])
45 conn.close() 46 conn.close()
46 return 47 return
47 smtpd.SMTPChannel(self, conn, addr) 48 smtpd.SMTPChannel(self, conn, addr)