diff --git a/ixwebsocket/IXWebSocket.cpp b/ixwebsocket/IXWebSocket.cpp index 7e8bc27b..d435d903 100644 --- a/ixwebsocket/IXWebSocket.cpp +++ b/ixwebsocket/IXWebSocket.cpp @@ -272,8 +272,6 @@ namespace ix // 2. Poll to see if there's any new data available WebSocketTransport::PollPostTreatment pollPostTreatment = _ws.poll(); - //if (_stop) return; - // 3. Dispatch the incoming messages _ws.dispatch( pollPostTreatment, diff --git a/ixwebsocket/IXWebSocketServer.cpp b/ixwebsocket/IXWebSocketServer.cpp index 2755ac9e..7582c9ba 100644 --- a/ixwebsocket/IXWebSocketServer.cpp +++ b/ixwebsocket/IXWebSocketServer.cpp @@ -43,7 +43,7 @@ namespace ix client->close(); } - //SocketServer::stop(); + SocketServer::stop(); } void WebSocketServer::enablePong() diff --git a/ixwebsocket/IXWebSocketTransport.cpp b/ixwebsocket/IXWebSocketTransport.cpp index f2dcba28..1e7f4923 100644 --- a/ixwebsocket/IXWebSocketTransport.cpp +++ b/ixwebsocket/IXWebSocketTransport.cpp @@ -333,7 +333,7 @@ namespace ix _socket->close(); } - if (_readyState == CLOSING && closingDelayExceeded()) + if (_readyState == CLOSING /*&& closingDelayExceeded()*/) { // close code and reason were set when calling close() _socket->close(); @@ -928,8 +928,6 @@ namespace ix sendCloseFrame(code, reason); - setReadyState(CLOSING); - { std::lock_guard lock(_closeDataMutex); _closeCode = code; @@ -941,6 +939,9 @@ namespace ix std::lock_guard lock(_closingTimePointMutex); _closingTimePoint = std::chrono::steady_clock::now(); } + setReadyState(CLOSING); + + _socket->wakeUpFromPoll(Socket::kSendRequest); } size_t WebSocketTransport::bufferedAmount() const diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index cd053ff0..ea9c2b91 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -35,12 +35,12 @@ set (SOURCES # Some unittest don't work on windows yet if (NOT WIN32) list(APPEND SOURCES - #IXWebSocketCloseTest.cpp + IXWebSocketCloseTest.cpp IXWebSocketServerTest.cpp - #IXWebSocketPingTest.cpp - #IXWebSocketPingTimeoutTest.cpp - #cmd_websocket_chat.cpp - #IXWebSocketTestConnectionDisconnection.cpp + IXWebSocketPingTest.cpp + IXWebSocketPingTimeoutTest.cpp + cmd_websocket_chat.cpp + IXWebSocketTestConnectionDisconnection.cpp ) endif()