From 0d787fa312017d3cbe167bb07f812de2e4608c7d Mon Sep 17 00:00:00 2001 From: Andy Green Date: Tue, 22 May 2018 16:28:50 +0800 Subject: [PATCH] ws: pingpong: server wants to send pings too During the role refactoring pingpong accidentally became something only a client wsi could initiate. https://github.com/warmcat/libwebsockets/issues/1283 --- lib/roles/ws/ops-ws.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/lib/roles/ws/ops-ws.c b/lib/roles/ws/ops-ws.c index c9a353e82..d6e690ee1 100644 --- a/lib/roles/ws/ops-ws.c +++ b/lib/roles/ws/ops-ws.c @@ -1245,8 +1245,7 @@ int rops_handle_POLLOUT_ws(struct lws *wsi) return LWS_HP_RET_BAIL_OK; } - if (lwsi_role_client(wsi) && !wsi->socket_is_permanently_unusable && - wsi->ws->send_check_ping) { + if (!wsi->socket_is_permanently_unusable && wsi->ws->send_check_ping) { lwsl_info("issuing ping on wsi %p\n", wsi); wsi->ws->send_check_ping = 0; @@ -1411,15 +1410,13 @@ rops_periodic_checks_ws(struct lws_context *context, int tsi, time_t now) wsi->ws->time_next_ping_check) > context->ws_ping_pong_interval) { - lwsl_info("req pp on wsi %p\n", - wsi); + lwsl_info("req pp on wsi %p\n", wsi); wsi->ws->send_check_ping = 1; lws_set_timeout(wsi, PENDING_TIMEOUT_WS_PONG_CHECK_SEND_PING, context->timeout_secs); lws_callback_on_writable(wsi); - wsi->ws->time_next_ping_check = - now; + wsi->ws->time_next_ping_check = now; } wsi = wsi->same_vh_protocol_next; }