aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi92@disroot.org>2026-02-12 16:59:55 +0100
committerXavier Del Campo Romero <xavi92@disroot.org>2026-02-12 16:59:55 +0100
commit87807c690947f4636dc4dd7fddca15f944719f0c (patch)
tree0696d61b91a3e5f40a34cf09ac6c715584af5744 /include
parent16f07314e675dd7d9d9cfb44dfb33cd81b13590d (diff)
Add HTTP op and resource to length callback
Users might want to know which HTTP operation (i.e., POST or PUT) and/or resource is being requested before determining whether the request should be accepted or not.
Diffstat (limited to 'include')
-rw-r--r--include/libweb/handler.h4
-rw-r--r--include/libweb/http.h9
2 files changed, 7 insertions, 6 deletions
diff --git a/include/libweb/handler.h b/include/libweb/handler.h
index 97fdca0..9dacdbd 100644
--- a/include/libweb/handler.h
+++ b/include/libweb/handler.h
@@ -10,8 +10,8 @@ typedef int (*handler_fn)(const struct http_payload *p,
struct handler_cfg
{
const char *tmpdir;
- int (*length)(unsigned long long len, const struct http_cookie *c,
- struct http_response *r, void *user);
+ int (*length)(enum http_op op, const char *res, unsigned long long len,
+ const struct http_cookie *c, struct http_response *r, void *user);
void *user;
size_t max_headers;
struct http_cfg_post post;
diff --git a/include/libweb/http.h b/include/libweb/http.h
index bd7769e..ad4ebcd 100644
--- a/include/libweb/http.h
+++ b/include/libweb/http.h
@@ -115,8 +115,9 @@ struct http_response
union http_step
{
- int (*length)(unsigned long long len, const struct http_cookie *c,
- struct http_response *r, void *user, void *args);
+ int (*length)(enum http_op op, const char *res, unsigned long long len,
+ const struct http_cookie *c, struct http_response *r, void *user,
+ void *args);
int (*payload)(const struct http_payload *p, struct http_response *r,
void *user, void *args);
} step;
@@ -128,8 +129,8 @@ struct http_cfg
int (*write)(const void *buf, size_t n, void *user);
int (*payload)(const struct http_payload *p, struct http_response *r,
void *user);
- int (*length)(unsigned long long len, const struct http_cookie *c,
- struct http_response *r, void *user);
+ int (*length)(enum http_op op, const char *res, unsigned long long len,
+ const struct http_cookie *c, struct http_response *r, void *user);
const char *tmpdir;
void *user;
size_t max_headers;