diff --git a/lib/roles/h2/http2.c b/lib/roles/h2/http2.c index bd7662f56..6beef3e0b 100644 --- a/lib/roles/h2/http2.c +++ b/lib/roles/h2/http2.c @@ -2532,6 +2532,8 @@ lws_h2_client_stream_long_poll_rxonly(struct lws *wsi) wsi->h2.long_poll = 1; wsi->h2.send_END_STREAM = 1; + lws_header_table_detach(wsi, 0); + lws_callback_on_writable(wsi); return 0; diff --git a/lib/roles/http/client/client-http.c b/lib/roles/http/client/client-http.c index b1b8ac1a2..fc7e20c15 100644 --- a/lib/roles/http/client/client-http.c +++ b/lib/roles/http/client/client-http.c @@ -637,10 +637,11 @@ lws_http_transaction_completed_client(struct lws *wsi) n = _lws_generic_transaction_completed_active_conn(wsi); - _lws_header_table_reset(wsi->http.ah); + if (wsi->http.ah) + _lws_header_table_reset(wsi->http.ah); wsi->http.rx_content_length = 0; - if (!n) + if (!n || !wsi->http.ah) return 0; /*