summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-28 22:27:44 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-08-28 22:27:44 +0000
commita1cea36673186829ab5d1d1408ac50ded3ca5850 (patch)
treeef97eb1dc48d33432be11a472d0c7315fc88437f /net/socket
parent20ebc1882282e27358a7c9e517db7873a454e6e3 (diff)
downloadchromium_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.cc12
-rw-r--r--net/socket/socket_test_util.h20
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_;