From: Ka-Ping Yee Date: Wed, 11 Apr 2001 04:02:05 +0000 (+0000) Subject: Add a close_request method to the BaseServer so that the TCPServer class X-Git-Tag: v2.1c1~103 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=285a7e59f308613945ced43889fe12eb993af838;p=python Add a close_request method to the BaseServer so that the TCPServer class can close the request connection when it's done handling it. --- diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index ec0159a045..e5863b5adb 100644 --- a/Lib/SocketServer.py +++ b/Lib/SocketServer.py @@ -154,6 +154,7 @@ class BaseServer: - verify_request(request, client_address) - server_close() - process_request(request, client_address) + - close_request(request) - handle_error() Methods for derived classes: @@ -214,6 +215,7 @@ class BaseServer: self.process_request(request, client_address) except: self.handle_error(request, client_address) + self.close_request(request) def verify_request(self, request, client_address): """Verify the request. May be overridden. @@ -243,6 +245,10 @@ class BaseServer: """Finish one request by instantiating RequestHandlerClass.""" self.RequestHandlerClass(request, client_address, self) + def close_request(self, request): + """Called to clean up an individual request.""" + pass + def handle_error(self, request, client_address): """Handle an error gracefully. May be overridden. @@ -277,6 +283,7 @@ class TCPServer(BaseServer): - get_request() -> request, client_address - verify_request(request, client_address) - process_request(request, client_address) + - close_request(request) - handle_error() Methods for derived classes: @@ -357,6 +364,10 @@ class TCPServer(BaseServer): """ return self.socket.accept() + def close_request(self, request): + """Called to clean up an individual request.""" + request.close() + class UDPServer(TCPServer): @@ -376,6 +387,9 @@ class UDPServer(TCPServer): # No need to call listen() for UDP. pass + def close_request(self, request): + # No need to close anything. + pass class ForkingMixIn: