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;
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;
}
}