@@ -980,8 +980,8 @@ def test(HandlerClass=BaseHTTPRequestHandler,
980
980
HandlerClass .protocol_version = protocol
981
981
982
982
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 )
985
985
else :
986
986
server = ServerClass (addr , HandlerClass )
987
987
@@ -1041,7 +1041,7 @@ def _main(args=None):
1041
1041
parser .error (f"Failed to read TLS password file: { e } " )
1042
1042
1043
1043
# ensure dual-stack is not disabled; ref #38907
1044
- class DualStackServer ( ThreadingHTTPServer ) :
1044
+ class DualStackServerMixin :
1045
1045
1046
1046
def server_bind (self ):
1047
1047
# suppress exception when protocol is IPv4
@@ -1054,9 +1054,16 @@ def finish_request(self, request, client_address):
1054
1054
self .RequestHandlerClass (request , client_address , self ,
1055
1055
directory = args .directory )
1056
1056
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
+
1057
1064
test (
1058
1065
HandlerClass = SimpleHTTPRequestHandler ,
1059
- ServerClass = DualStackServer ,
1066
+ ServerClass = ServerClass ,
1060
1067
port = args .port ,
1061
1068
bind = args .bind ,
1062
1069
protocol = args .protocol ,
0 commit comments