diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-28 22:27:44 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-28 22:27:44 +0000 |
commit | a1cea36673186829ab5d1d1408ac50ded3ca5850 (patch) | |
tree | ef97eb1dc48d33432be11a472d0c7315fc88437f /net/socket | |
parent | 20ebc1882282e27358a7c9e517db7873a454e6e3 (diff) | |
download | chromium_src-a1cea36673186829ab5d1d1408ac50ded3ca5850.zip chromium_src-a1cea36673186829ab5d1d1408ac50ded3ca5850.tar.gz chromium_src-a1cea36673186829ab5d1d1408ac50ded3ca5850.tar.bz2 |
Don't trust server's PASV response that much in FtpNetworkTransaction.
TEST=Covered by net_unittests.
http://crbug.com/20334
Review URL: http://codereview.chromium.org/180011
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@24818 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r-- | net/socket/socket_test_util.cc | 12 | ||||
-rw-r--r-- | net/socket/socket_test_util.h | 20 |
2 files changed, 21 insertions, 11 deletions
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc index 4b6a3ad..cd4423b 100644 --- a/net/socket/socket_test_util.cc +++ b/net/socket/socket_test_util.cc @@ -65,7 +65,8 @@ void MockClientSocket::RunCallback(int result) { MockTCPClientSocket::MockTCPClientSocket(const net::AddressList& addresses, net::MockSocket* socket) - : data_(socket), + : addresses_(addresses), + data_(socket), read_offset_(0), read_data_(true, net::ERR_UNEXPECTED), need_read_data_(true) { @@ -290,18 +291,19 @@ void MockClientSocketFactory::ResetNextMockIndexes() { mock_ssl_sockets_.ResetNextIndex(); } -ClientSocket* MockClientSocketFactory::GetMockTCPClientSocket(int index) const { +MockTCPClientSocket* MockClientSocketFactory::GetMockTCPClientSocket( + int index) const { return tcp_client_sockets_[index]; } -SSLClientSocket* MockClientSocketFactory::GetMockSSLClientSocket( +MockSSLClientSocket* MockClientSocketFactory::GetMockSSLClientSocket( int index) const { return ssl_client_sockets_[index]; } ClientSocket* MockClientSocketFactory::CreateTCPClientSocket( const AddressList& addresses) { - ClientSocket* socket = + MockTCPClientSocket* socket = new MockTCPClientSocket(addresses, mock_sockets_.GetNext()); tcp_client_sockets_.push_back(socket); return socket; @@ -311,7 +313,7 @@ SSLClientSocket* MockClientSocketFactory::CreateSSLClientSocket( ClientSocket* transport_socket, const std::string& hostname, const SSLConfig& ssl_config) { - SSLClientSocket* socket = + MockSSLClientSocket* socket = new MockSSLClientSocket(transport_socket, hostname, ssl_config, mock_ssl_sockets_.GetNext()); ssl_client_sockets_.push_back(socket); diff --git a/net/socket/socket_test_util.h b/net/socket/socket_test_util.h index 75f3a37..c7c0e12 100644 --- a/net/socket/socket_test_util.h +++ b/net/socket/socket_test_util.h @@ -189,6 +189,9 @@ class MockSocketArray { std::vector<T*> sockets_; }; +class MockTCPClientSocket; +class MockSSLClientSocket; + // ClientSocketFactory which contains arrays of sockets of each type. // You should first fill the arrays using AddMock{SSL,}Socket. When the factory // is asked to create a socket, it takes next entry from appropriate array. @@ -200,12 +203,13 @@ class MockClientSocketFactory : public ClientSocketFactory { void AddMockSSLSocket(MockSSLSocket* socket); void ResetNextMockIndexes(); - // Return |index|-th ClientSocket (starting from 0) that the factory created. - ClientSocket* GetMockTCPClientSocket(int index) const; + // Return |index|-th MockTCPClientSocket (starting from 0) that the factory + // created. + MockTCPClientSocket* GetMockTCPClientSocket(int index) const; - // Return |index|-th SSLClientSocket (starting from 0) that the factory + // Return |index|-th MockSSLClientSocket (starting from 0) that the factory // created. - SSLClientSocket* GetMockSSLClientSocket(int index) const; + MockSSLClientSocket* GetMockSSLClientSocket(int index) const; // ClientSocketFactory virtual ClientSocket* CreateTCPClientSocket(const AddressList& addresses); @@ -219,8 +223,8 @@ class MockClientSocketFactory : public ClientSocketFactory { MockSocketArray<MockSSLSocket> mock_ssl_sockets_; // Store pointers to handed out sockets in case the test wants to get them. - std::vector<ClientSocket*> tcp_client_sockets_; - std::vector<SSLClientSocket*> ssl_client_sockets_; + std::vector<MockTCPClientSocket*> tcp_client_sockets_; + std::vector<MockSSLClientSocket*> ssl_client_sockets_; }; class MockClientSocket : public net::SSLClientSocket { @@ -271,7 +275,11 @@ class MockTCPClientSocket : public MockClientSocket { virtual int Write(net::IOBuffer* buf, int buf_len, net::CompletionCallback* callback); + net::AddressList addresses() const { return addresses_; } + private: + net::AddressList addresses_; + net::MockSocket* data_; int read_offset_; net::MockRead read_data_; |