Windows only: Move client socket functionality from TCPClientSocket into TCPSocket.
TCPClientSocket becomes a wrapper around TCPSocket to expose a client-only interface.
The corresponding change for POSIX will be in a separate CL.
BUG=262601
TEST=new tests in tcp_socket_unittest.cc
Review URL: https://chromiumcodereview.appspot.com/23881002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@223286 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/net/socket/tcp_server_socket.cc b/net/socket/tcp_server_socket.cc
index 13e9de1..63cb2cf8 100644
--- a/net/socket/tcp_server_socket.cc
+++ b/net/socket/tcp_server_socket.cc
@@ -22,7 +22,7 @@
}
int TCPServerSocket::Listen(const IPEndPoint& address, int backlog) {
- int result = socket_.Create(address.GetFamily());
+ int result = socket_.Open(address.GetFamily());
if (result != OK)
return result;
@@ -88,17 +88,17 @@
if (result != OK)
return result;
+ // TODO(yzshen): Once we switch TCPClientSocketLibevent to take a connected
+ // TCPSocket object, we don't need to do platform-specific handling.
+#if defined(OS_WIN)
+ scoped_ptr<TCPClientSocket> client_socket(new TCPClientSocket(
+ temp_accepted_socket.Pass(), accepted_address_));
+#elif defined(OS_POSIX)
scoped_ptr<TCPClientSocket> client_socket(new TCPClientSocket(
AddressList(accepted_address_),
temp_accepted_socket->net_log().net_log(),
temp_accepted_socket->net_log().source()));
- // TODO(yzshen): Once we switch TCPClientSocket::AdoptSocket() to take a
- // TCPSocket object, we don't need to do platform-specific handling.
-#if defined(OS_WIN)
- SOCKET raw_socket = temp_accepted_socket->Release();
-#elif defined(OS_POSIX)
int raw_socket = temp_accepted_socket->Release();
-#endif
result = client_socket->AdoptSocket(raw_socket);
if (result != OK) {
// |client_socket| won't take ownership of |raw_socket| on failure.
@@ -106,6 +106,7 @@
temp_accepted_socket->Adopt(raw_socket);
return result;
}
+#endif
*output_accepted_socket = client_socket.Pass();
return OK;