solve broken partial file sends
authorAndy Green <andy.green@linaro.org>
Mon, 9 Dec 2013 03:27:07 +0000 (11:27 +0800)
committerAndy Green <andy.green@linaro.org>
Mon, 9 Dec 2013 03:27:07 +0000 (11:27 +0800)
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 <andy.green@linaro.org>
lib/handshake.c

index 48b2767..69daf75 100644 (file)
@@ -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;
                        }