@@ -980,8 +980,8 @@ def test(HandlerClass=BaseHTTPRequestHandler,
980980 HandlerClass .protocol_version = protocol
981981
982982 if tls_cert :
983- server = ThreadingHTTPSServer (addr , HandlerClass , certfile = tls_cert ,
984- keyfile = tls_key , password = tls_password )
983+ server = ServerClass (addr , HandlerClass , certfile = tls_cert ,
984+ keyfile = tls_key , password = tls_password )
985985 else :
986986 server = ServerClass (addr , HandlerClass )
987987
@@ -1041,7 +1041,7 @@ def _main(args=None):
10411041 parser .error (f"Failed to read TLS password file: { e } " )
10421042
10431043 # ensure dual-stack is not disabled; ref #38907
1044- class DualStackServer ( ThreadingHTTPServer ) :
1044+ class DualStackServerMixin :
10451045
10461046 def server_bind (self ):
10471047 # suppress exception when protocol is IPv4
@@ -1054,9 +1054,16 @@ def finish_request(self, request, client_address):
10541054 self .RequestHandlerClass (request , client_address , self ,
10551055 directory = args .directory )
10561056
1057+ class HTTPDualStackServer (DualStackServerMixin , ThreadingHTTPServer ):
1058+ pass
1059+ class HTTPSDualStackServer (DualStackServerMixin , ThreadingHTTPSServer ):
1060+ pass
1061+
1062+ ServerClass = HTTPSDualStackServer if args .tls_cert else HTTPDualStackServer
1063+
10571064 test (
10581065 HandlerClass = SimpleHTTPRequestHandler ,
1059- ServerClass = DualStackServer ,
1066+ ServerClass = ServerClass ,
10601067 port = args .port ,
10611068 bind = args .bind ,
10621069 protocol = args .protocol ,
0 commit comments