diff options
author | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-16 04:10:07 +0000 |
---|---|---|
committer | rsleevi@chromium.org <rsleevi@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-16 04:10:07 +0000 |
commit | 4b7685673cbe22ceef40fef36760aed65f390d93 (patch) | |
tree | c07e99296ec554f08519fd60dfd7269f1a46592a /net/tools | |
parent | 8e1dcde379a18a93a0fd7c6afc8c3e8df1022130 (diff) | |
download | chromium_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-x | net/tools/testserver/testserver.py | 19 |
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.""" |