Mercurial > code
changeset 284:9be2cd100167
Fusion
author | David Demelier <markand@malikania.fr> |
---|---|
date | Tue, 11 Nov 2014 14:04:36 +0100 |
parents | 88f9d8b406c6 (current diff) d2d5a14bae10 (diff) |
children | 9b6990fa8fd9 |
files | |
diffstat | 5 files changed, 12 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/C++/Socket.cpp Tue Nov 11 14:03:42 2014 +0100 +++ b/C++/Socket.cpp Tue Nov 11 14:04:36 2014 +0100 @@ -330,8 +330,8 @@ throw error::Failure("socket", syserror()); } -Socket::Socket(Handle handle, std::shared_ptr<SocketInterface> interface) - : m_interface(std::move(interface)) +Socket::Socket(Handle handle, std::shared_ptr<SocketInterface> iface) + : m_interface(std::move(iface)) , m_handle(handle) { }
--- a/C++/Socket.h Tue Nov 11 14:03:42 2014 +0100 +++ b/C++/Socket.h Tue Nov 11 14:04:36 2014 +0100 @@ -297,7 +297,7 @@ * @param handle the handle * @param interface the interface to use */ - Socket(Handle handle, std::shared_ptr<SocketInterface> interface); + Socket(Handle handle, std::shared_ptr<SocketInterface> iface); /** * Close the socket.
--- a/C++/SocketAddress.h Tue Nov 11 14:03:42 2014 +0100 +++ b/C++/SocketAddress.h Tue Nov 11 14:04:36 2014 +0100 @@ -23,6 +23,7 @@ #if defined(_WIN32) # include <Winsock2.h> +# include <Ws2tcpip.h> #else # include <sys/socket.h> #endif
--- a/C++/SocketListener.cpp Tue Nov 11 14:03:42 2014 +0100 +++ b/C++/SocketListener.cpp Tue Nov 11 14:04:36 2014 +0100 @@ -174,7 +174,14 @@ { int direction{}; - if (event & POLLIN) + /* + * Poll implementations mark the socket differently regarding + * the disconnection of a socket. + * + * At least, even if POLLHUP or POLLIN is set, recv() always + * return 0 so we mark the socket as readable. + */ + if ((event & POLLIN) || (event & POLLHUP)) direction |= Read; if (event & POLLOUT) direction |= Write;