@@ -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