diff options
author | Ka-Ping Yee <ping@zesty.ca> | 2001-04-11 04:02:05 (GMT) |
---|---|---|
committer | Ka-Ping Yee <ping@zesty.ca> | 2001-04-11 04:02:05 (GMT) |
commit | 285a7e59f308613945ced43889fe12eb993af838 (patch) | |
tree | 585e9103b3f91e5e28a09ffbf1efbfbdcf967bb6 /Lib | |
parent | 3f5cc2081394e487c1f2d96f4a2c7d17b8b56435 (diff) | |
download | cpython-285a7e59f308613945ced43889fe12eb993af838.zip cpython-285a7e59f308613945ced43889fe12eb993af838.tar.gz cpython-285a7e59f308613945ced43889fe12eb993af838.tar.bz2 |
Add a close_request method to the BaseServer so that the TCPServer class
can close the request connection when it's done handling it.
Diffstat (limited to 'Lib')
-rw-r--r-- | Lib/SocketServer.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py index ec0159a..e5863b5 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: |