summaryrefslogtreecommitdiffstats
path: root/net/tools
diff options
context:
space:
mode:
authorrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-16 04:10:07 +0000
committerrsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-16 04:10:07 +0000
commit4b7685673cbe22ceef40fef36760aed65f390d93 (patch)
treec07e99296ec554f08519fd60dfd7269f1a46592a /net/tools
parent8e1dcde379a18a93a0fd7c6afc8c3e8df1022130 (diff)
downloadchromium_src-4b7685673cbe22ceef40fef36760aed65f390d93.zip
chromium_src-4b7685673cbe22ceef40fef36760aed65f390d93.tar.gz
chromium_src-4b7685673cbe22ceef40fef36760aed65f390d93.tar.bz2
When reading from an SSL socket, attempt to fully fill the caller's buffer
The current SSLClientSocket implementation reads one SSL record at a time, and immediately returns that to the caller of Read(). As it is a common performance optimization to set SSL record sizes to fit within MTU, this leads to suboptimal performance and causes SSLClientSocket::Read() to not match the behaviour of TCPClientSocket::Read() (which attempts to fully fill the caller's buffer). BUG=166903 Review URL: https://chromiumcodereview.appspot.com/12025040 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@182912 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/tools')
-rwxr-xr-xnet/tools/testserver/testserver.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/net/tools/testserver/testserver.py b/net/tools/testserver/testserver.py
index d442671..0fe9bd7 100755
--- a/net/tools/testserver/testserver.py
+++ b/net/tools/testserver/testserver.py
@@ -265,6 +265,7 @@ class TestPageHandler(testserver_base.BasePageHandler):
self.MultipartHandler,
self.MultipartSlowHandler,
self.GetSSLSessionCacheHandler,
+ self.SSLManySmallRecords,
self.CloseSocketHandler,
self.RangeResetHandler,
self.DefaultResponseHandler]
@@ -1408,6 +1409,24 @@ class TestPageHandler(testserver_base.BasePageHandler):
' this request')
return True
+ def SSLManySmallRecords(self):
+ """Sends a reply consisting of a variety of small writes. These will be
+ translated into a series of small SSL records when used over an HTTPS
+ server."""
+
+ if not self._ShouldHandleRequest('/ssl-many-small-records'):
+ return False
+
+ self.send_response(200)
+ self.send_header('Content-Type', 'text/plain')
+ self.end_headers()
+
+ # Write ~26K of data, in 1350 byte chunks
+ for i in xrange(20):
+ self.wfile.write('*' * 1350)
+ self.wfile.flush()
+ return True
+
def CloseSocketHandler(self):
"""Closes the socket without sending anything."""