summaryrefslogtreecommitdiff
path: root/Lib/SocketServer.py
diff options
context:
space:
mode:
authorKristján Valur Jónsson <kristjan@ccpgames.com>2009-06-24 09:17:04 +0000
committerKristján Valur Jónsson <kristjan@ccpgames.com>2009-06-24 09:17:04 +0000
commitf1d11efb72a9f0612a39712658aecff7c2a5abcf (patch)
tree3394ad33b70e88a2de4d03aa659e944c5bff8d42 /Lib/SocketServer.py
parent5a85d5c4f2eb09e5ab5d4c84090aee38340eb284 (diff)
downloadcpython-git-f1d11efb72a9f0612a39712658aecff7c2a5abcf.tar.gz
http://bugs.python.org/issue6192
Move the newly introduced disable_nagle_algorithm flag into the StreamRequestHandler, where it is more appropriate.
Diffstat (limited to 'Lib/SocketServer.py')
-rw-r--r--Lib/SocketServer.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/Lib/SocketServer.py b/Lib/SocketServer.py
index 5f8facce16..7a25d0f511 100644
--- a/Lib/SocketServer.py
+++ b/Lib/SocketServer.py
@@ -374,7 +374,6 @@ class TCPServer(BaseServer):
- socket_type
- request_queue_size (only for stream sockets)
- allow_reuse_address
- - disable_nagle_algorithm
Instance variables:
@@ -392,8 +391,6 @@ class TCPServer(BaseServer):
allow_reuse_address = False
- disable_nagle_algorithm = False
-
def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True):
"""Constructor. May be extended, do not override."""
BaseServer.__init__(self, server_address, RequestHandlerClass)
@@ -444,10 +441,7 @@ class TCPServer(BaseServer):
May be overridden.
"""
- request = self.socket.accept()
- if self.disable_nagle_algorithm:
- request[0].setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, True)
- return request
+ return self.socket.accept()
def close_request(self, request):
"""Called to clean up an individual request."""
@@ -655,8 +649,15 @@ class StreamRequestHandler(BaseRequestHandler):
rbufsize = -1
wbufsize = 0
+ # 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.disable_nagle_algorithm:
+ self.connection.setsockopt(socket.IPPROTO_TCP,
+ socket.TCP_NODELAY, True)
self.rfile = self.connection.makefile('rb', self.rbufsize)
self.wfile = self.connection.makefile('wb', self.wbufsize)