@@ -132,10 +132,9 @@ def finish_request(self, request, client_address):
132132 """Finish one request by instantiating RequestHandlerClass."""
133133 args = (request , client_address , self )
134134 kwargs = {}
135- response_headers = getattr (self , 'response_headers' , None )
136- if response_headers :
135+ if hasattr (self , 'response_headers' ):
137136 kwargs ['response_headers' ] = self .response_headers
138- self .RequestHandlerClass (* args , ** kwargs )
137+ self .RequestHandlerClass (request , client_address , self , ** kwargs )
139138
140139class ThreadingHTTPServer (socketserver .ThreadingMixIn , HTTPServer ):
141140 daemon_threads = True
@@ -144,7 +143,7 @@ class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
144143class HTTPSServer (HTTPServer ):
145144 def __init__ (self , server_address , RequestHandlerClass ,
146145 bind_and_activate = True , * , certfile , keyfile = None ,
147- password = None , alpn_protocols = None , response_headers = None ):
146+ password = None , alpn_protocols = None , ** http_server_kwargs ):
148147 try :
149148 import ssl
150149 except ImportError :
@@ -163,7 +162,7 @@ def __init__(self, server_address, RequestHandlerClass,
163162 super ().__init__ (server_address ,
164163 RequestHandlerClass ,
165164 bind_and_activate ,
166- response_headers = response_headers )
165+ ** http_server_kwargs )
167166
168167 def server_activate (self ):
169168 """Wrap the socket in SSLSocket."""
@@ -709,7 +708,7 @@ def __init__(self, *args, directory=None, response_headers=None, **kwargs):
709708 if directory is None :
710709 directory = os .getcwd ()
711710 self .directory = os .fspath (directory )
712- self .response_headers = response_headers or {}
711+ self .response_headers = response_headers
713712 super ().__init__ (* args , ** kwargs )
714713
715714 def do_GET (self ):
@@ -991,7 +990,8 @@ def _get_best_family(*address):
991990def test (HandlerClass = BaseHTTPRequestHandler ,
992991 ServerClass = ThreadingHTTPServer ,
993992 protocol = "HTTP/1.0" , port = 8000 , bind = None ,
994- tls_cert = None , tls_key = None , tls_password = None , response_headers = None ):
993+ tls_cert = None , tls_key = None , tls_password = None ,
994+ response_headers = None ):
995995 """Test the HTTP request handler class.
996996
997997 This runs an HTTP server on port 8000 (or the port argument).
@@ -1075,11 +1075,9 @@ def server_bind(self):
10751075 return super ().server_bind ()
10761076
10771077 def finish_request (self , request , client_address ):
1078- handler_args = (request , client_address , self )
1079- handler_kwargs = dict (directory = args .directory )
1080- if self .response_headers :
1081- handler_kwargs ['response_headers' ] = self .response_headers
1082- self .RequestHandlerClass (* handler_args , ** handler_kwargs )
1078+ self .RequestHandlerClass (request , client_address , self ,
1079+ directory = args .directory ,
1080+ response_headers = self .response_headers )
10831081
10841082 class HTTPDualStackServer (DualStackServerMixin , ThreadingHTTPServer ):
10851083 pass
0 commit comments