From 87807c690947f4636dc4dd7fddca15f944719f0c Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Thu, 12 Feb 2026 16:59:55 +0100 Subject: 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. --- include/libweb/handler.h | 4 ++-- include/libweb/http.h | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'include') 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; -- cgit v1.2.3