aboutsummaryrefslogtreecommitdiff
path: root/doc
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 /doc
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 'doc')
-rw-r--r--doc/man7/libweb_handler.74
-rw-r--r--doc/man7/libweb_http.714
2 files changed, 13 insertions, 5 deletions
diff --git a/doc/man7/libweb_handler.7 b/doc/man7/libweb_handler.7
index 5398675..6a2c93e 100644
--- a/doc/man7/libweb_handler.7
+++ b/doc/man7/libweb_handler.7
@@ -73,7 +73,7 @@ defined as:
struct handler_cfg
{
const char *\fItmpdir\fP;
- int (*\fIlength\fP)(unsigned long long len, const struct http_cookie *c, struct http_response *r, void *user);
+ int (*\fIlength\fP)(enum http_op op, const char *res, unsigned long long len, const struct http_cookie *c, struct http_response *r, void *user);
void *\fIuser\fP;
size_t \fImax_headers\fP;
struct http_cfg_post \fIpost\fP;
@@ -185,7 +185,7 @@ static int hello(const struct http_payload *const pl,
return 0;
}
-static int on_length(const unsigned long long len,
+static int on_length(const char *const res, const unsigned long long len,
const struct http_cookie *const c, struct http_response *const r,
void *const user)
{
diff --git a/doc/man7/libweb_http.7 b/doc/man7/libweb_http.7
index 39fd4a5..ba32a99 100644
--- a/doc/man7/libweb_http.7
+++ b/doc/man7/libweb_http.7
@@ -90,7 +90,7 @@ struct http_cfg
int (*\fIread\fP)(void *\fIbuf\fP, size_t \fIn\fP, void *\fIuser\fP);
int (*\fIwrite\fP)(const void *\fIbuf\fP, size_t \fIn\fP, void *\fIuser\fP);
int (*\fIpayload\fP)(const struct http_payload *\fIp\fP, struct http_response *\fIr\fP, void *\fIuser\fP);
- int (*\fIlength\fP)(unsigned long long \fIlen\fP, const struct http_cookie *\fIc\fP, struct http_response *\fIr\fP, void *\fIuser\fP);
+ int (*\fIlength\fP)(enum http_op \fIop\fP, const char *\fIres\fP, unsigned long long \fIlen\fP, const struct http_cookie *\fIc\fP, struct http_response *\fIr\fP, void *\fIuser\fP);
const char *\fItmpdir\fP;
void *\fIuser\fP;
size_t \fImax_headers\fP;
@@ -182,6 +182,11 @@ In the case of a
request,
.I len
defines the length of the file body.
+.I op
+can be used to distinguish the request type,
+whereas
+.I res
+can be used to determine which resource is being accessed by the request.
.I c
is a read-only pointer to a
.I "struct http_cookie"
@@ -200,8 +205,11 @@ only when the function returns a positive integer.
This function returns zero on success, a negative integer in case
of a fatal error or a positive integer in case of a non-fatal error
caused by a malformed request, or to indicate a lack of support for
-this feature. When a positive integer is returned, the connection
-against the client shall be closed.
+this feature. When a positive integer is returned, the response pointed
+to by
+.I r
+is sent to the client and the connection
+against the client shall be closed afterwards.
.I tmpdir
is a null-terminated string defining the path to a directory where