fix error path in file transfer
Signed-off-by: Andy Green <andy.green@linaro.org>
diff --git a/lib/output.c b/lib/output.c
index 8962f75..8e13d4b 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -492,10 +492,8 @@
wsi->u.http.filepos += n;
}
- if (n < 0) {
- libwebsocket_close_and_free_session(context, wsi, LWS_CLOSE_STATUS_NOSTATUS);
- return 1;
- }
+ if (n < 0)
+ return 1; /* caller will close */
if (n < sizeof(context->service_buffer) || wsi->u.http.filepos == wsi->u.http.filelen) {
wsi->state = WSI_STATE_HTTP;
@@ -503,7 +501,8 @@
if (wsi->protocol->callback)
ret = user_callback_handle_rxflow(wsi->protocol->callback, context, wsi, LWS_CALLBACK_HTTP_FILE_COMPLETION, wsi->user_space,
NULL, 0);
- return ret;
+ /* user_callback_handle_rxflow did any close already */
+ return 0;
}
}