Merge "Use TCP_NODELAY on outgoing connections"

This commit is contained in:
Jenkins 2015-01-19 19:19:33 +00:00 committed by Gerrit Code Review
commit c3dadd94e0
2 changed files with 8 additions and 1 deletions

View File

@ -30,6 +30,7 @@ from swift import gettext_ as _
from urllib import quote
import logging
import time
import socket
from eventlet.green.httplib import CONTINUE, HTTPConnection, HTTPMessage, \
HTTPResponse, HTTPSConnection, _UNKNOWN
@ -105,7 +106,9 @@ class BufferedHTTPConnection(HTTPConnection):
def connect(self):
self._connected_time = time.time()
return HTTPConnection.connect(self)
ret = HTTPConnection.connect(self)
self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
return ret
def putrequest(self, method, url, skip_host=0, skip_accept_encoding=0):
self._method = method

View File

@ -15,6 +15,8 @@
import unittest
import socket
from eventlet import spawn, Timeout, listen
from swift.common import bufferedhttp
@ -60,6 +62,8 @@ class TestBufferedHTTP(unittest.TestCase):
'x-header': 'value'},
query_string='omg&no=%7f')
conn.send('REQUEST\r\n')
self.assertTrue(conn.sock.getsockopt(socket.IPPROTO_TCP,
socket.TCP_NODELAY))
resp = conn.getresponse()
body = resp.read()
conn.close()