mirror of
https://github.com/python/cpython.git
synced 2025-07-30 22:54:16 +00:00
parent
552e7a7e2f
commit
e007860b8b
7 changed files with 406 additions and 70 deletions
|
@ -445,6 +445,7 @@ class TCPServer(BaseServer):
|
|||
|
||||
def close_request(self, request):
|
||||
"""Called to clean up an individual request."""
|
||||
request.shutdown(socket.SHUT_WR)
|
||||
request.close()
|
||||
|
||||
|
||||
|
@ -610,12 +611,11 @@ class BaseRequestHandler:
|
|||
self.request = request
|
||||
self.client_address = client_address
|
||||
self.server = server
|
||||
self.setup()
|
||||
try:
|
||||
self.setup()
|
||||
self.handle()
|
||||
self.finish()
|
||||
finally:
|
||||
sys.exc_traceback = None # Help garbage collection
|
||||
self.finish()
|
||||
|
||||
def setup(self):
|
||||
pass
|
||||
|
@ -649,12 +649,17 @@ class StreamRequestHandler(BaseRequestHandler):
|
|||
rbufsize = -1
|
||||
wbufsize = 0
|
||||
|
||||
# A timeout to apply to the request socket, if not None.
|
||||
timeout = None
|
||||
|
||||
# Disable nagle algoritm for this socket, if True.
|
||||
# Use only when wbufsize != 0, to avoid small packets.
|
||||
disable_nagle_algorithm = False
|
||||
|
||||
def setup(self):
|
||||
self.connection = self.request
|
||||
if self.timeout is not None:
|
||||
self.connection.settimeout(self.timeout)
|
||||
if self.disable_nagle_algorithm:
|
||||
self.connection.setsockopt(socket.IPPROTO_TCP,
|
||||
socket.TCP_NODELAY, True)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue