summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergey Ponomarev2026-02-13 07:50:25 +0000
committerFelix Fietkau2026-02-13 07:53:55 +0000
commita1531e89f6c22f92a2ac52b0408a7f5c755a09f2 (patch)
treea4a1d885d01414a9603d294e53b85ef427331cca
parent115c92824b6d4e2117a26cae9ccc8630ae828210 (diff)
downloaduclient-a1531e89f6c22f92a2ac52b0408a7f5c755a09f2.tar.gz
uclient-fetch: support for WebDAV methods
Add COPY, LOCK, MKCOL, MOVE, PROPFIND, PROPPATCH and UNLOCK request types for WebDAV support. Add body support for methods that use XML request bodies (PROPFIND, PROPPATCH, LOCK, MKCOL). Signed-off-by: Sergey Ponomarev <stokito@gmail.com> Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--uclient-http.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/uclient-http.c b/uclient-http.c
index 01289a2..ce046c3 100644
--- a/uclient-http.c
+++ b/uclient-http.c
@@ -46,6 +46,13 @@ enum request_type {
REQ_POST,
REQ_PUT,
REQ_DELETE,
+ REQ_COPY,
+ REQ_LOCK,
+ REQ_MKCOL,
+ REQ_MOVE,
+ REQ_PROPFIND,
+ REQ_PROPPATCH,
+ REQ_UNLOCK,
__REQ_MAX
};
@@ -66,6 +73,13 @@ static const char * const request_types[__REQ_MAX] = {
[REQ_POST] = "POST",
[REQ_PUT] = "PUT",
[REQ_DELETE] = "DELETE",
+ [REQ_COPY] = "COPY",
+ [REQ_LOCK] = "LOCK",
+ [REQ_MKCOL] = "MKCOL",
+ [REQ_MOVE] = "MOVE",
+ [REQ_PROPFIND] = "PROPFIND",
+ [REQ_PROPPATCH] = "PROPPATCH",
+ [REQ_UNLOCK] = "UNLOCK",
};
struct uclient_http {
@@ -306,6 +320,10 @@ static bool uclient_request_supports_body(enum request_type req_type)
case REQ_POST:
case REQ_PUT:
case REQ_DELETE:
+ case REQ_PROPFIND:
+ case REQ_PROPPATCH:
+ case REQ_LOCK:
+ case REQ_MKCOL:
return true;
default:
return false;