diff options
author | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-21 22:31:53 +0000 |
---|---|---|
committer | willchan@chromium.org <willchan@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-21 22:31:53 +0000 |
commit | 182ac532081125b65bc169b56eb8230063a8d3a6 (patch) | |
tree | 902958892f112aeb15481879bf2a5c3aabfbad3c /chrome/browser/net | |
parent | 7747b6426a1c173b8274d5fe347a5b6d218a8f44 (diff) | |
download | chromium_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