aboutsummaryrefslogtreecommitdiff
path: root/include/slweb/handler.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/slweb/handler.h')
-rw-r--r--include/slweb/handler.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/slweb/handler.h b/include/slweb/handler.h
new file mode 100644
index 0000000..4ac7f76
--- /dev/null
+++ b/include/slweb/handler.h
@@ -0,0 +1,24 @@
+#ifndef HANDLER_H
+#define HANDLER_H
+
+#include "slweb/http.h"
+#include <stddef.h>
+
+typedef int (*handler_fn)(const struct http_payload *p,
+ struct http_response *r, void *user);
+
+struct handler_cfg
+{
+ const char *tmpdir;
+ int (*length)(unsigned long long len, const struct http_cookie *c,
+ struct http_response *r, void *user);
+ void *user;
+};
+
+struct handler *handler_alloc(const struct handler_cfg *cfg);
+void handler_free(struct handler *h);
+int handler_add(struct handler *h, const char *url, enum http_op op,
+ handler_fn f, void *user);
+int handler_listen(struct handler *h, short port);
+
+#endif /* HANDLER_H */