ubus: duplicate request buffer to avoid memory corruption with multiple requests
[project/uhttpd.git] / uhttpd.h
index 807070c..0137eef 100644 (file)
--- a/uhttpd.h
+++ b/uhttpd.h
@@ -66,6 +66,7 @@ struct config {
        int max_connections;
        int http_keepalive;
        int script_timeout;
+       int ubus_noauth;
 };
 
 struct auth_realm {
@@ -145,9 +146,11 @@ struct env_var {
 struct relay {
        struct ustream_fd sfd;
        struct uloop_process proc;
+       struct uloop_timeout timeout;
        struct client *cl;
 
        bool process_done;
+       bool error;
        int ret;
        int header_ofs;
 
@@ -157,6 +160,7 @@ struct relay {
 };
 
 struct dispatch_proc {
+       struct uloop_timeout timeout;
        struct blob_buf hdr;
        struct uloop_fd wrfd;
        struct relay r;
@@ -286,6 +290,7 @@ void uh_dispatch_add(struct dispatch_handler *d);
 void uh_relay_open(struct client *cl, struct relay *r, int fd, int pid);
 void uh_relay_close(struct relay *r, int ret);
 void uh_relay_free(struct relay *r);
+void uh_relay_kill(struct client *cl, struct relay *r);
 
 struct env_var *uh_get_process_vars(struct client *cl, struct path_info *pi);
 bool uh_create_process(struct client *cl, struct path_info *pi, char *url,