Index: net/socket/tcp_socket_win.cc |
diff --git a/net/socket/tcp_socket_win.cc b/net/socket/tcp_socket_win.cc |
index 0d1192d359b30b7840162f13fff395e95e46ce7c..4667bd8e423dd5b034969c715569fbf8843085c1 100644 |
--- a/net/socket/tcp_socket_win.cc |
+++ b/net/socket/tcp_socket_win.cc |
@@ -322,6 +322,24 @@ int TCPSocketWin::AdoptConnectedSocket(SOCKET socket, |
return OK; |
} |
+int TCPSocketWin::AdoptListenSocket(SOCKET socket) { |
+ DCHECK(CalledOnValidThread()); |
+ DCHECK_EQ(socket_, INVALID_SOCKET); |
+ |
+ socket_ = socket; |
+ |
+ if (SetNonBlocking(socket_)) { |
+ int result = MapSystemError(WSAGetLastError()); |
+ Close(); |
+ return result; |
+ } |
+ |
+ // |core_| is not needed for sockets that are used to accept connections. |
+ // The operation here is more like Open but with an existing socket. |
+ |
+ return OK; |
+} |
+ |
int TCPSocketWin::Bind(const IPEndPoint& address) { |
DCHECK(CalledOnValidThread()); |
DCHECK_NE(socket_, INVALID_SOCKET); |