#include <libubox/uloop.h>
#include <libubox/ustream.h>
#include <libubox/blob.h>
+#include <libubox/utils.h>
#include "utils.h"
char *realm;
char *file;
char *error_handler;
+ char *cgi_prefix;
int no_symlinks;
int no_dirlists;
int network_timeout;
int tcp_keepalive;
int max_requests;
int http_keepalive;
+ int script_timeout;
};
struct auth_realm {
struct list_head list;
- char path[PATH_MAX];
- char user[32];
- char pass[128];
+ char *path;
+ char *user;
+ char *pass;
};
enum http_method {
#ifdef HAVE_TLS
struct ustream_ssl stream_ssl;
#endif
- struct uloop_fd rpipe;
- struct uloop_fd wpipe;
- struct uloop_process proc;
struct uloop_timeout timeout;
- bool (*cb)(struct client *);
- void *priv;
enum client_state state;
struct blob_buf hdr;
- void (*dispatch_write_cb)(struct client *cl);
- void (*dispatch_free)(struct client *cl);
-
- union {
- struct {
- struct blob_attr **hdr;
- int fd;
- } file;
- } data;
+ struct {
+ void (*write_cb)(struct client *cl);
+ void (*close_fds)(struct client *cl);
+ void (*free)(struct client *cl);
+ union {
+ struct {
+ struct blob_attr **hdr;
+ int fd;
+ } file;
+ };
+ } dispatch;
};
extern int n_clients;
void uh_auth_add(const char *path, const char *user, const char *pass);
+void uh_close_listen_fds(void);
+void uh_close_fds(void);
+
#endif