From 02b7875fe1695682562bce28242b9a2386b640a7 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sat, 30 Jun 2018 00:50:07 -0300 Subject: [PATCH] Fix CanConnect for web sockets --- src/ezsockets.cpp | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/ezsockets.cpp b/src/ezsockets.cpp index c994339817..43a6cf0345 100644 --- a/src/ezsockets.cpp +++ b/src/ezsockets.cpp @@ -225,14 +225,13 @@ bool EzSockets::CanConnect(const std::string& host, unsigned short port) FD_ZERO(&readfds); FD_SET(sock.sock, &readfds); auto read = select(sock.sock + 1, nullptr, &readfds, nullptr, &(sock.timeout)); - bool select = read > -1 && write > -1; - if (!select) { - sock.close(); - return false; - } - bool err = sock.IsError() || !sock.CanRead() || !sock.CanWrite(); + FD_ZERO(&readfds); + FD_SET(sock.sock, &readfds); + auto exc = select(sock.sock + 1, nullptr, nullptr, &readfds, &(sock.timeout)); + bool select = read > -1 && write > -1 && exc > -1; + auto err = sock.IsError() || !sock.CanWrite(); sock.close(); - return !err; + return select && !err; } bool EzSockets::setAddr(const std::string& host, unsigned short port)