]> granicus.if.org Git - python/commitdiff
Add a close_request method to the BaseServer so that the TCPServer class
authorKa-Ping Yee <ping@zesty.ca>
Wed, 11 Apr 2001 04:02:05 +0000 (04:02 +0000)
committerKa-Ping Yee <ping@zesty.ca>
Wed, 11 Apr 2001 04:02:05 +0000 (04:02 +0000)
can close the request connection when it's done handling it.

Lib/SocketServer.py

index ec0159a0457abcc671255170bf87689a7ba4cbeb..e5863b5adb32b78c0912a2cd57fd6308cd1812e3 100644 (file)
@@ -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: