From 91166ecb2a0f602e7963d7c36be75e0a695dddff Mon Sep 17 00:00:00 2001 From: Andy Green Date: Sat, 23 Sep 2017 07:10:51 +0800 Subject: [PATCH] pmd: handle zero-length rx --- lib/client-parser.c | 3 +++ lib/parsers.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/client-parser.c b/lib/client-parser.c index f99592e5..d12c3994 100644 --- a/lib/client-parser.c +++ b/lib/client-parser.c @@ -500,6 +500,9 @@ ping_drop: eff_buf.token = &wsi->u.ws.rx_ubuf[LWS_PRE]; eff_buf.token_len = wsi->u.ws.rx_ubuf_head; + if (wsi->u.ws.opcode == LWSWSOPC_PONG && !eff_buf.token_len) + goto already_done; + drain_extension: lwsl_ext("%s: passing %d to ext\n", __func__, eff_buf.token_len); diff --git a/lib/parsers.c b/lib/parsers.c index f67ede0b..85666e6b 100644 --- a/lib/parsers.c +++ b/lib/parsers.c @@ -1556,6 +1556,9 @@ ping_drop: eff_buf.token = &wsi->u.ws.rx_ubuf[LWS_PRE]; eff_buf.token_len = wsi->u.ws.rx_ubuf_head; + if (wsi->u.ws.opcode == LWSWSOPC_PONG && !eff_buf.token_len) + goto already_done; + drain_extension: lwsl_ext("%s: passing %d to ext\n", __func__, eff_buf.token_len);