The WebDAV is an extension for HTTP for shared folders.
In order to make wget working with it we have to declare the missing constants 
with methods.
They don't take part in a logic except of OPTIONS methods that can't have a 
body.

Signed-off-by: Sergey Ponomarev <[email protected]>
---
 uclient-http.c | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/uclient-http.c b/uclient-http.c
index 02bb7c2..b4e6d70 100644
--- a/uclient-http.c
+++ b/uclient-http.c
@@ -40,11 +40,19 @@ enum auth_type {
 };
 
 enum request_type {
+       REQ_COPY,
        REQ_DELETE,
        REQ_GET,
        REQ_HEAD,
+       REQ_LOCK,
+       REQ_MKCOL,
+       REQ_MOVE,
+       REQ_OPTIONS,
        REQ_POST,
+       REQ_PROPFIND,
+       REQ_PROPPATCH,
        REQ_PUT,
+       REQ_UNLOCK,
        __REQ_MAX
 };
 
@@ -59,11 +67,19 @@ enum http_state {
 
 // Must be sorted aplhabeticaly
 static const char * const request_types[__REQ_MAX] = {
+       [REQ_COPY] = "COPY",
        [REQ_DELETE] = "DELETE",
        [REQ_GET] = "GET",
        [REQ_HEAD] = "HEAD",
+       [REQ_LOCK] = "LOCK",
+       [REQ_MKCOL] = "MKCOL",
+       [REQ_MOVE] = "MOVE",
+       [REQ_OPTIONS] = "OPTIONS",
        [REQ_POST] = "POST",
+       [REQ_PROPFIND] = "PROPFIND",
+       [REQ_PROPPATCH] = "PROPPATCH",
        [REQ_PUT] = "PUT",
+       [REQ_UNLOCK] = "UNLOCK",
 };
 
 struct uclient_http {
@@ -292,7 +308,7 @@ static void uclient_http_process_headers(struct 
uclient_http *uh)
 
 static bool uclient_request_supports_body(enum request_type req_type)
 {
-       return !(req_type == REQ_GET || req_type == REQ_HEAD);
+       return !(req_type == REQ_GET || req_type == REQ_HEAD || req_type == 
REQ_OPTIONS);
 }
 
 static int
-- 
2.37.2


_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to