aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-09-09 00:19:39 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-09-09 00:21:42 +0200
commit09909c0a3b326efd6a2b87df95d0e73c1e394c29 (patch)
treef7ec05f2bb1e9b621d5d2af10354c8ffe31f0ce4 /include
parent6c7faa7f9063aca15345c9aeb95d651a5fe983f9 (diff)
http: Allow multiple non-file Content-Disposition
Now, slweb accepts requests such as: --boundary Content-Disposition: form-data; name="field1" value1 --boundary Content-Disposition: form-data; name="field2" value2 --boundary Content-Disposition: form-data; name="field3"; filename="example.txt" The following breaking changes have been introduced: Member "dir" from struct http_post was a leftover from the days where slcl and slweb were one project. It did not make sense for slweb, since it should not decide which Content-Disposition names are allowed. In other words, "dir" was only relevant in the scope of slcl. Member "n" from struct http_post used to have two meanings: - The length of a URL-encoded request. - The number of files on a multipart/form-data request. Since "npairs" had to be introduced to struct http_post, it did not make sense to keep this dual meaning any more. Therefore, "n" has been restricted to the former, whereas a new member, called "nfiles", has been introduced for the latter.
Diffstat (limited to 'include')
-rw-r--r--include/slweb/http.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/include/slweb/http.h b/include/slweb/http.h
index ac1f51a..db2c0b6 100644
--- a/include/slweb/http.h
+++ b/include/slweb/http.h
@@ -26,8 +26,12 @@ struct http_payload
{
bool expect_continue;
const void *data;
- size_t n;
- const char *dir;
+ size_t n, nfiles, npairs;
+
+ const struct http_post_pair
+ {
+ const char *name, *value;
+ } *pairs;
const struct http_post_file
{