diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-09-07 21:18:26 +0200 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-09-07 21:18:29 +0200 |
commit | 993cace15114a0f06f720f34a4748ab54b695f0d (patch) | |
tree | 578f62eeaf07e26302e309b862d971a909979472 | |
parent | f91788b809d9726126e9cf4384fedbbb0c5b8a73 (diff) |
file: fix processing POST data for deferred requests
Fixes https://dev.openwrt.org/ticket/20458
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
-rw-r--r-- | file.c | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -696,8 +696,11 @@ static void uh_complete_request(struct client *cl) dr = list_first_entry(&pending_requests, struct deferred_request, list); list_del(&dr->list); + cl = dr->cl; dr->called = true; - uh_invoke_script(dr->cl, dr->d, dr->path ? &dr->pi : NULL); + cl->dispatch.data_blocked = false; + uh_invoke_script(cl, dr->d, dr->path ? &dr->pi : NULL); + client_poll_post_data(cl); } } @@ -756,6 +759,7 @@ uh_defer_script(struct client *cl, struct dispatch_handler *d, struct path_info } cl->dispatch.req_data = dr; + cl->dispatch.data_blocked = true; dr->cl = cl; dr->d = d; list_add(&dr->list, &pending_requests); |