Mercurial > hg
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) |