Support for HTTP POST.
Rewritten by Andy Green to use chunks, add timeout, use extra states in handshake not parser.
Signed-off-by: Andy Green <andy@warmcat.com>
diff --git a/lib/libwebsockets.c b/lib/libwebsockets.c
index 42deebd..3c9187a 100644
--- a/lib/libwebsockets.c
+++ b/lib/libwebsockets.c
@@ -217,12 +217,18 @@
}
- if (wsi->mode == LWS_CONNMODE_HTTP_SERVING_ACCEPTED && wsi->u.http.fd >= 0) {
- lwsl_debug("closing http fd %d\n", wsi->u.http.fd);
- close(wsi->u.http.fd);
- wsi->u.http.fd = -1;
- context->protocols[0].callback(context, wsi,
- LWS_CALLBACK_CLOSED_HTTP, wsi->user_space, NULL, 0);
+ if (wsi->mode == LWS_CONNMODE_HTTP_SERVING_ACCEPTED) {
+ if (wsi->u.http.post_buffer) {
+ free(wsi->u.http.post_buffer);
+ wsi->u.http.post_buffer = NULL;
+ }
+ if (wsi->u.http.fd >= 0) {
+ lwsl_debug("closing http fd %d\n", wsi->u.http.fd);
+ close(wsi->u.http.fd);
+ wsi->u.http.fd = -1;
+ context->protocols[0].callback(context, wsi,
+ LWS_CALLBACK_CLOSED_HTTP, wsi->user_space, NULL, 0);
+ }
}
#ifndef LWS_NO_EXTENSIONS