|
|
@@ -6484,7 +6484,15 @@ inline bool Server::listen_internal() {
|
|
|
#ifndef _WIN32
|
|
|
}
|
|
|
#endif
|
|
|
+
|
|
|
+#if defined _WIN32
|
|
|
+ // sockets conneced via WASAccept inherit flags NO_HANDLE_INHERIT, OVERLAPPED
|
|
|
+ socket_t sock = WSAAccept(svr_sock_, nullptr, nullptr, nullptr, 0);
|
|
|
+#elif defined __linux__
|
|
|
+ socket_t sock = accept4(svr_sock_, nullptr, nullptr, SOCK_CLOEXEC);
|
|
|
+#else
|
|
|
socket_t sock = accept(svr_sock_, nullptr, nullptr);
|
|
|
+#endif
|
|
|
|
|
|
if (sock == INVALID_SOCKET) {
|
|
|
if (errno == EMFILE) {
|