diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/TcpSocket.cpp | 15 | 
1 files changed, 5 insertions, 10 deletions
diff --git a/src/TcpSocket.cpp b/src/TcpSocket.cpp index 6e7c31d..433e5c1 100644 --- a/src/TcpSocket.cpp +++ b/src/TcpSocket.cpp @@ -32,6 +32,7 @@  #include <string.h>  #include <signal.h>  #include <stdint.h> +#include <poll.h>  using namespace std; @@ -168,17 +169,11 @@ TcpSocket TcpSocket::accept()  boost::optional<TcpSocket> TcpSocket::accept(int timeout_ms)  { -    fd_set rfds; -    struct timeval tv; -    int retval; +    struct pollfd fds[1]; +    fds[0].fd = m_sock; +    fds[0].events = POLLIN | POLLOUT; -    FD_ZERO(&rfds); -    FD_SET(m_sock, &rfds); - -    tv.tv_sec = 0; -    tv.tv_usec = 1000ul * timeout_ms; - -    retval = select(1, &rfds, NULL, NULL, &tv); +    int retval = poll(fds, 1, timeout_ms);      if (retval == -1) {          stringstream ss;  | 
