summaryrefslogtreecommitdiffstats
path: root/chrome/browser/net
diff options
context:
space:
mode:
authorwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-21 22:31:53 +0000
committerwillchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-21 22:31:53 +0000
commit182ac532081125b65bc169b56eb8230063a8d3a6 (patch)
tree902958892f112aeb15481879bf2a5c3aabfbad3c /chrome/browser/net
parent7747b6426a1c173b8274d5fe347a5b6d218a8f44 (diff)
downloadchromium_src-182ac532081125b65bc169b56eb8230063a8d3a6.zip
chromium_src-182ac532081125b65bc169b56eb8230063a8d3a6.tar.gz
chromium_src-182ac532081125b65bc169b56eb8230063a8d3a6.tar.bz2
Implement full duplex mode for TCPClientSocketLibevent.
The main thing is not to share the same MessageLoopForIO::FileDescriptorWatcher object for both reads and writes. Fixed tcp_client_socket_unittest.cc's full duplex test. In doing so, I also had to fix up some other stuff. (1) Put everything in the net::(anonymous) namespace. (2) Keep calling Write() until ERR_IO_PENDING happens. (3) Make the server socket pause its reads so that the buffers (both client and server side) eventually fill up. (4) Discovered that after the first Read(), the server socket will close. Further Write() calls will lead to a TCP RST, which breaks the FullDuplex_WriteFirst test, since it wants to do a Write() at the end. Fix this by changing DidRead() not to automatically close the server socket. Added a CloseServerSocket() member function to make this explicit. Fixed up the Read() tests. Made them more exact too. BUG=http://www.crbug.com/11888 TEST=Go to gmail, compose a message, attach a large file (say 1MB or so). It shouldn't crash. Review URL: http://codereview.chromium.org/115504 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16675 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/net')
0 files changed, 0 insertions, 0 deletions