result = isc__nm_socket_reuse(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
+#ifndef _WIN32
if (mgr->load_balance_sockets) {
result = isc__nm_socket_reuse_lb(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
}
+#endif
return (sock);
}
csock->pquota = sock->pquota;
isc_quota_cb_init(&csock->quotacb, quota_accept_cb, csock);
+#ifdef _WIN32
+ UNUSED(fd);
+ csock->fd = isc__nm_tcp_lb_socket(mgr, iface->type.sa.sa_family);
+#else
if (mgr->load_balance_sockets) {
UNUSED(fd);
csock->fd = isc__nm_tcp_lb_socket(mgr,
} else {
csock->fd = dup(fd);
}
+#endif
REQUIRE(csock->fd >= 0);
ievent = isc__nm_get_netievent_tcplisten(mgr, csock);
sock->tid = 0;
sock->fd = -1;
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
fd = isc__nm_tcp_lb_socket(mgr, iface->type.sa.sa_family);
}
+#endif
isc_barrier_init(&sock->startlistening, sock->nchildren);
start_tcp_child(mgr, iface, sock, fd, isc_nm_tid());
}
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
isc__nm_closesocket(fd);
}
+#endif
LOCK(&sock->lock);
while (atomic_load(&sock->rchildren) != sock->nchildren) {
flags = UV_TCP_IPV6ONLY;
}
+#ifdef _WIN32
+ r = isc_uv_tcp_freebind(&sock->uv_handle.tcp, &sock->iface.type.sa,
+ flags);
+ if (r < 0) {
+ isc__nm_incstats(sock->mgr, sock->statsindex[STATID_BINDFAIL]);
+ goto done;
+ }
+#else
if (mgr->load_balance_sockets) {
r = isc_uv_tcp_freebind(&sock->uv_handle.tcp,
&sock->iface.type.sa, flags);
sock->parent->uv_handle.tcp.flags;
}
}
+#endif
/*
* The callback will run in the same thread uv_listen() was called
result = isc__nm_socket_reuse(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
+#ifndef _WIN32
if (mgr->load_balance_sockets) {
result = isc__nm_socket_reuse_lb(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
}
+#endif
return (sock);
}
csock->pquota = sock->pquota;
isc_quota_cb_init(&csock->quotacb, quota_accept_cb, csock);
+#ifdef _WIN32
+ UNUSED(fd);
+ csock->fd = isc__nm_tcpdns_lb_socket(mgr, iface->type.sa.sa_family);
+#else
if (mgr->load_balance_sockets) {
UNUSED(fd);
csock->fd = isc__nm_tcpdns_lb_socket(mgr,
} else {
csock->fd = dup(fd);
}
+#endif
REQUIRE(csock->fd >= 0);
ievent = isc__nm_get_netievent_tcpdnslisten(mgr, csock);
sock->tid = 0;
sock->fd = -1;
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
fd = isc__nm_tcpdns_lb_socket(mgr, iface->type.sa.sa_family);
}
+#endif
isc_barrier_init(&sock->startlistening, sock->nchildren);
start_tcpdns_child(mgr, iface, sock, fd, isc_nm_tid());
}
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
isc__nm_closesocket(fd);
}
+#endif
LOCK(&sock->lock);
while (atomic_load(&sock->rchildren) != sock->nchildren) {
flags = UV_TCP_IPV6ONLY;
}
+#ifdef _WIN32
+ r = isc_uv_tcp_freebind(&sock->uv_handle.tcp, &sock->iface.type.sa,
+ flags);
+ if (r < 0) {
+ isc__nm_incstats(sock->mgr, sock->statsindex[STATID_BINDFAIL]);
+ goto done;
+ }
+#else
if (mgr->load_balance_sockets) {
r = isc_uv_tcp_freebind(&sock->uv_handle.tcp,
&sock->iface.type.sa, flags);
sock->parent->uv_handle.tcp.flags;
}
}
+#endif
/*
* The callback will run in the same thread uv_listen() was called
result = isc__nm_socket_reuse(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
+#ifndef _WIN32
if (mgr->load_balance_sockets) {
result = isc__nm_socket_reuse_lb(sock);
RUNTIME_CHECK(result == ISC_R_SUCCESS);
}
+#endif
return (sock);
}
csock->extrahandlesize = sock->extrahandlesize;
csock->tid = tid;
+#ifdef _WIN32
+ UNUSED(fd);
+ csock->fd = isc__nm_udp_lb_socket(mgr, iface->type.sa.sa_family);
+#else
if (mgr->load_balance_sockets) {
UNUSED(fd);
csock->fd = isc__nm_udp_lb_socket(mgr,
} else {
csock->fd = dup(fd);
}
+#endif
REQUIRE(csock->fd >= 0);
ievent = isc__nm_get_netievent_udplisten(mgr, csock);
sock->tid = 0;
sock->fd = -1;
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
fd = isc__nm_udp_lb_socket(mgr, iface->type.sa.sa_family);
}
+#endif
isc_barrier_init(&sock->startlistening, sock->nchildren);
start_udp_child(mgr, iface, sock, fd, isc_nm_tid());
}
+#ifndef _WIN32
if (!mgr->load_balance_sockets) {
isc__nm_closesocket(fd);
}
+#endif
LOCK(&sock->lock);
while (atomic_load(&sock->rchildren) != sock->nchildren) {
uv_bind_flags |= UV_UDP_IPV6ONLY;
}
+#ifdef _WIN32
+ r = isc_uv_udp_freebind(&sock->uv_handle.udp,
+ &sock->parent->iface.type.sa, uv_bind_flags);
+ if (r < 0) {
+ isc__nm_incstats(sock->mgr, sock->statsindex[STATID_BINDFAIL]);
+ goto done;
+ }
+#else
if (mgr->load_balance_sockets) {
r = isc_uv_udp_freebind(&sock->uv_handle.udp,
&sock->parent->iface.type.sa,
sock->parent->uv_handle.udp.flags;
}
}
+#endif
#ifdef ISC_RECV_BUFFER_SIZE
uv_recv_buffer_size(&sock->uv_handle.handle,