Skip to content

Commit 2dddd56

Browse files
committed
win: move logic to set socket non-inheritable to uv_tcp_set_socket
PR-URL: #400 Reviewed-By: Ben Noordhuis <[email protected]>
1 parent fb5df54 commit 2dddd56

File tree

1 file changed

+9
-29
lines changed

1 file changed

+9
-29
lines changed

src/win/tcp.c

Lines changed: 9 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,11 @@ static int uv__tcp_keepalive(uv_tcp_t* handle, SOCKET socket, int enable, unsign
7878
}
7979

8080

81-
static int uv_tcp_set_socket(uv_loop_t* loop, uv_tcp_t* handle,
82-
SOCKET socket, int family, int imported) {
81+
static int uv_tcp_set_socket(uv_loop_t* loop,
82+
uv_tcp_t* handle,
83+
SOCKET socket,
84+
int family,
85+
int imported) {
8386
DWORD yes = 1;
8487
int non_ifs_lsp;
8588
int err;
@@ -92,6 +95,10 @@ static int uv_tcp_set_socket(uv_loop_t* loop, uv_tcp_t* handle,
9295
return WSAGetLastError();
9396
}
9497

98+
/* Make the socket non-inheritable */
99+
if (!SetHandleInformation((HANDLE) socket, HANDLE_FLAG_INHERIT, 0))
100+
return GetLastError();
101+
95102
/* Associate it with the I/O completion port. */
96103
/* Use uv_handle_t pointer as completion key. */
97104
if (CreateIoCompletionPort((HANDLE)socket,
@@ -268,13 +275,6 @@ static int uv_tcp_try_bind(uv_tcp_t* handle,
268275
return WSAGetLastError();
269276
}
270277

271-
/* Make the socket non-inheritable */
272-
if (!SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0)) {
273-
err = GetLastError();
274-
closesocket(sock);
275-
return err;
276-
}
277-
278278
err = uv_tcp_set_socket(handle->loop, handle, sock, addr->sa_family, 0);
279279
if (err) {
280280
closesocket(sock);
@@ -381,15 +381,6 @@ static void uv_tcp_queue_accept(uv_tcp_t* handle, uv_tcp_accept_t* req) {
381381
return;
382382
}
383383

384-
/* Make the socket non-inheritable */
385-
if (!SetHandleInformation((HANDLE) accept_socket, HANDLE_FLAG_INHERIT, 0)) {
386-
SET_REQ_ERROR(req, GetLastError());
387-
uv_insert_pending_req(loop, (uv_req_t*)req);
388-
handle->reqs_pending++;
389-
closesocket(accept_socket);
390-
return;
391-
}
392-
393384
/* Prepare the overlapped structure. */
394385
memset(&(req->u.io.overlapped), 0, sizeof(req->u.io.overlapped));
395386
if (handle->flags & UV_HANDLE_EMULATE_IOCP) {
@@ -1166,12 +1157,6 @@ int uv_tcp_import(uv_tcp_t* tcp, uv__ipc_socket_info_ex* socket_info_ex,
11661157
return WSAGetLastError();
11671158
}
11681159

1169-
if (!SetHandleInformation((HANDLE) socket, HANDLE_FLAG_INHERIT, 0)) {
1170-
err = GetLastError();
1171-
closesocket(socket);
1172-
return err;
1173-
}
1174-
11751160
err = uv_tcp_set_socket(tcp->loop,
11761161
tcp,
11771162
socket,
@@ -1427,11 +1412,6 @@ int uv_tcp_open(uv_tcp_t* handle, uv_os_sock_t sock) {
14271412
return uv_translate_sys_error(GetLastError());
14281413
}
14291414

1430-
/* Make the socket non-inheritable */
1431-
if (!SetHandleInformation((HANDLE) sock, HANDLE_FLAG_INHERIT, 0)) {
1432-
return uv_translate_sys_error(GetLastError());
1433-
}
1434-
14351415
err = uv_tcp_set_socket(handle->loop,
14361416
handle,
14371417
sock,

0 commit comments

Comments
 (0)