set the docroot to the current working directory if none is specified, fixes random...
[project/uhttpd.git] / uhttpd.h
index e73e235..d6b6985 100644 (file)
--- a/uhttpd.h
+++ b/uhttpd.h
@@ -62,9 +62,11 @@ struct config {
        int network_timeout;
        int rfc1918_filter;
        int tcp_keepalive;
-       int max_requests;
+       int max_script_requests;
+       int max_connections;
        int http_keepalive;
        int script_timeout;
+       int ubus_noauth;
 };
 
 struct auth_realm {
@@ -156,6 +158,7 @@ struct relay {
 };
 
 struct dispatch_proc {
+       struct uloop_timeout timeout;
        struct blob_buf hdr;
        struct uloop_fd wrfd;
        struct relay r;
@@ -165,6 +168,7 @@ struct dispatch_proc {
 
 struct dispatch_handler {
        struct list_head list;
+       bool script;
 
        bool (*check_url)(const char *url);
        bool (*check_path)(struct path_info *pi, const char *url);
@@ -198,6 +202,10 @@ struct dispatch {
        void (*write_cb)(struct client *cl);
        void (*close_fds)(struct client *cl);
        void (*free)(struct client *cl);
+
+       void *req_data;
+       void (*req_free)(struct client *cl);
+
        bool data_blocked;
 
        union {
@@ -222,6 +230,7 @@ struct client {
        struct ustream_ssl ssl;
 #endif
        struct uloop_timeout timeout;
+       int requests;
 
        enum client_state state;
        bool tls;
@@ -279,6 +288,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,