Fixed problem on Windows where errors from accept() were incorrectly handled as successes.
diff --git a/asio/include/asio/detail/impl/socket_ops.ipp b/asio/include/asio/detail/impl/socket_ops.ipp index 27a85f0..7f7c749 100644 --- a/asio/include/asio/detail/impl/socket_ops.ipp +++ b/asio/include/asio/detail/impl/socket_ops.ipp
@@ -118,7 +118,7 @@ socket_type new_socket = socket_ops::accept(s, addr, addrlen, ec); // Check if operation succeeded. - if (new_socket >= 0) + if (new_socket != invalid_socket) return new_socket; // Operation failed. @@ -209,7 +209,7 @@ new_socket = socket_ops::accept(s, addr, addrlen, ec); // Check if operation succeeded. - if (new_socket >= 0) + if (new_socket != invalid_socket) return true; // Retry operation if interrupted by signal.
diff --git a/asio/include/asio/detail/reactive_socket_service.hpp b/asio/include/asio/detail/reactive_socket_service.hpp index c668760..53fdf0c 100644 --- a/asio/include/asio/detail/reactive_socket_service.hpp +++ b/asio/include/asio/detail/reactive_socket_service.hpp
@@ -325,7 +325,7 @@ peer_endpoint ? &addr_len : 0, ec)); // On success, assign new connection to peer socket object. - if (new_socket.get() >= 0) + if (new_socket.get() != invalid_socket) { if (peer_endpoint) peer_endpoint->resize(addr_len);