X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuhttpd.git;a=blobdiff_plain;f=client.c;h=3185b8fd1a14d7b4d94ee1c0178c60de8090a0d4;hp=173285a7bd7a9fa94e2018bc7f30edb32d1c9ffa;hb=fae8886f8aa5d996c8de607abea8b677216549b5;hpb=7823ad9590d0ec54bca6f637e0d8b14794bb49c0 diff --git a/client.c b/client.c index 173285a..3185b8f 100644 --- a/client.c +++ b/client.c @@ -24,6 +24,7 @@ #include "tls.h" static LIST_HEAD(clients); +static bool client_done = false; int n_clients = 0; struct config conf = {}; @@ -442,6 +443,7 @@ void uh_client_read_cb(struct client *cl) char *str; int len; + client_done = false; do { str = ustream_get_read_buf(us, &len); if (!str || !len) @@ -456,11 +458,12 @@ void uh_client_read_cb(struct client *cl) uh_header_error(cl, 413, "Request Entity Too Large"); break; } - } while(1); + } while (!client_done); } static void client_close(struct client *cl) { + client_done = true; n_clients--; uh_dispatch_done(cl); uloop_timeout_cancel(&cl->timeout);