From aa084920213d0f3bfc05a2868a2391c2f9a91dc4 Mon Sep 17 00:00:00 2001 From: Andy Green Date: Mon, 9 Dec 2013 11:27:07 +0800 Subject: [PATCH] solve broken partial file sends We can't force the wsi state to HTTP_BODY without considering the callback may already have set the state to sending a file. This fixes the bug that we can get stalled in the test app at "choked before able to send whole file" Signed-off-by: Andy Green --- lib/handshake.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/handshake.c b/lib/handshake.c index 48b27672..69daf755 100644 --- a/lib/handshake.c +++ b/lib/handshake.c @@ -277,11 +277,13 @@ leave: AWAITING_TIMEOUT); /* + * (if callback didn't start sending a file) * deal with anything else as body, whether * there was a content-length or not */ - wsi->state = WSI_STATE_HTTP_BODY; + if (wsi->state != WSI_STATE_HTTP_ISSUING_FILE) + wsi->state = WSI_STATE_HTTP_BODY; goto http_postbody; }