diff --git a/lib/server/server.c b/lib/server/server.c index 69d3b07b..5bb8ee11 100644 --- a/lib/server/server.c +++ b/lib/server/server.c @@ -1930,6 +1930,9 @@ lws_http_transaction_completed(struct lws *wsi) /* If we're (re)starting on headers, need other implied init */ if (wsi->ah) wsi->ah->ues = URIES_IDLE; + + if (wsi->mode == LWSCM_HTTP_SERVING_ACCEPTED) + wsi->mode = LWSCM_HTTP_SERVING; } else if (wsi->preamble_rx) if (lws_header_table_attach(wsi, 0)) @@ -2285,6 +2288,9 @@ lws_server_socket_service(struct lws_context *context, struct lws *wsi, break; } + if (wsi->state == LWSS_HTTP_DEFERRING_ACTION) + goto try_pollout; + /* any incoming data ready? */ if (!(pollfd->revents & pollfd->events & LWS_POLLIN)) diff --git a/test-apps/attack.sh b/test-apps/attack.sh index f09db094..ee00ef6b 100755 --- a/test-apps/attack.sh +++ b/test-apps/attack.sh @@ -781,10 +781,13 @@ kill -2 $CPID # coverage... # run the test client against mirror for one period and exit +killall libwebsockets-test-server 2>/dev/null libwebsockets-test-server -s 2>> $LOG & CPID=$! - +sleep 1s libwebsockets-test-client 127.0.0.1 -s -O + +# https://github.com/curl/curl/issues/1587 curl -v -F text=hello -F send=SEND -F upload=@../README.md https://127.0.0.1:7681/formtest -k kill -2 $CPID