From 95f173bff89a5a033514502fed9a6fb4cafdaaf6 Mon Sep 17 00:00:00 2001 From: Alex Hultman Date: Sat, 29 Feb 2020 00:05:00 +0100 Subject: [PATCH] Reintroduce ping/pong handlers --- src/WebSocketContext.h | 40 ++++++++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/src/WebSocketContext.h b/src/WebSocketContext.h index 014e980..080a930 100644 --- a/src/WebSocketContext.h +++ b/src/WebSocketContext.h @@ -170,15 +170,19 @@ private: } else { if (opCode == PING) { webSocket->send(std::string_view(data, length), (OpCode) OpCode::PONG); - /*group->pingHandler(webSocket, data, length); - if (webSocket->isClosed() || webSocket->isShuttingDown()) { - return true; - }*/ + if (webSocketContextData->pingHandler) { + webSocketContextData->pingHandler(webSocket); + if (us_socket_is_closed(SSL, (us_socket_t *) s) || webSocketData->isShuttingDown) { + return true; + } + } } else if (opCode == PONG) { - /*group->pongHandler(webSocket, data, length); - if (webSocket->isClosed() || webSocket->isShuttingDown()) { - return true; - }*/ + if (webSocketContextData->pongHandler) { + webSocketContextData->pongHandler(webSocket); + if (us_socket_is_closed(SSL, (us_socket_t *) s) || webSocketData->isShuttingDown) { + return true; + } + } } } } else { @@ -195,15 +199,19 @@ private: } else { if (opCode == PING) { webSocket->send(std::string_view(controlBuffer, webSocketData->controlTipLength), (OpCode) OpCode::PONG); - /*group->pingHandler(webSocket, controlBuffer, webSocket->controlTipLength); - if (webSocket->isClosed() || webSocket->isShuttingDown()) { - return true; - }*/ + if (webSocketContextData->pingHandler) { + webSocketContextData->pingHandler(webSocket); + if (us_socket_is_closed(SSL, (us_socket_t *) s) || webSocketData->isShuttingDown) { + return true; + } + } } else if (opCode == PONG) { - /*group->pongHandler(webSocket, controlBuffer, webSocket->controlTipLength); - if (webSocket->isClosed() || webSocket->isShuttingDown()) { - return true; - }*/ + if (webSocketContextData->pongHandler) { + webSocketContextData->pongHandler(webSocket); + if (us_socket_is_closed(SSL, (us_socket_t *) s) || webSocketData->isShuttingDown) { + return true; + } + } } }