From 7c1680ada7a2203417e9a1855d15e63b3929dd89 Mon Sep 17 00:00:00 2001 From: Lynix Date: Wed, 5 Oct 2016 00:50:27 +0200 Subject: [PATCH] Network/SocketPoller: Fix Wait not updating error parameter (fixes #79) Former-commit-id: fd04ad1ef0b3c86e02d12251c384c5ee2976460d [formerly 57f72f946a0182c022ad8fc18aea1867914f6552] [formerly bbbadcedac8d46ff33f53a24053d1a9c06d09b8b [formerly f536546d45c326658845c287a1fa6d9d4f8c5a99]] Former-commit-id: 94246df60ecd371a07a57c12586d1d6bc7279076 [formerly b693141c531e6a61a3e8bc703ad7adf0fdb7a12d] Former-commit-id: cbaf3deb146ad0a38f59d890ea99d66d49d9f730 --- src/Nazara/Network/Linux/SocketPollerImpl.cpp | 11 +++++++++++ src/Nazara/Network/Linux/SocketPollerImpl.hpp | 1 - 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Nazara/Network/Linux/SocketPollerImpl.cpp b/src/Nazara/Network/Linux/SocketPollerImpl.cpp index fb6321709..ec6b8235e 100644 --- a/src/Nazara/Network/Linux/SocketPollerImpl.cpp +++ b/src/Nazara/Network/Linux/SocketPollerImpl.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include #include @@ -75,6 +76,13 @@ namespace Nz std::memset(m_events.data(), 0, m_events.size() * sizeof(epoll_event)); activeSockets = epoll_wait(m_handle, m_events.data(), static_cast(m_events.size()), static_cast(msTimeout)); + if (activeSockets == -1) + { + if (error) + *error = SocketImpl::TranslateErrnoToResolveError(errno); + + return 0; + } m_activeSockets.clear(); if (activeSockets > 0U) @@ -96,6 +104,9 @@ namespace Nz } } + if (error) + *error = SocketError_NoError; + return activeSockets; } } diff --git a/src/Nazara/Network/Linux/SocketPollerImpl.hpp b/src/Nazara/Network/Linux/SocketPollerImpl.hpp index a6c5ad9f8..1c54471fc 100644 --- a/src/Nazara/Network/Linux/SocketPollerImpl.hpp +++ b/src/Nazara/Network/Linux/SocketPollerImpl.hpp @@ -9,7 +9,6 @@ #include #include -#include #include #include #include