Compare commits

...

3 commits

Author SHA1 Message Date
Simon Cruanes
0c4e9f30e1
format
Some checks failed
format / format (push) Has been cancelled
github pages / deploy (push) Has been cancelled
build / Build (push) Has been cancelled
2026-02-08 07:53:52 -05:00
Simon Cruanes
aec132d37c Refactor: group PUT and PATCH together with conditional upload
Both methods need identical handling (customrequest + upload flag),
so combine them using pattern matching to reduce duplication.

Only set the upload flag when content is provided, matching the
behavior of POST and preventing curl from trying to read when
there's no content to upload.
2026-02-08 12:48:39 +00:00
Christopher Zimmermann
6662364103 PATCH does upload 2026-02-08 02:38:08 -05:00

View file

@ -433,15 +433,14 @@ module Make (IO : IO) : S with type 'a io = 'a IO.t = struct
| POST [] when content <> None -> Curl.set_post self.curl true
| POST l -> Curl.set_httppost self.curl l
| GET -> Curl.set_httpget self.curl true
| PUT ->
Curl.set_customrequest self.curl "PUT";
Curl.set_upload self.curl true
| (PUT | PATCH) as meth ->
Curl.set_customrequest self.curl (string_of_meth meth);
if content <> None then Curl.set_upload self.curl true
| DELETE -> Curl.set_customrequest self.curl "DELETE"
| HEAD -> Curl.set_customrequest self.curl "HEAD"
| CONNECT -> Curl.set_customrequest self.curl "CONNECT"
| OPTIONS -> Curl.set_customrequest self.curl "OPTIONS"
| TRACE -> Curl.set_customrequest self.curl "TRACE"
| PATCH -> Curl.set_customrequest self.curl "PATCH");
| TRACE -> Curl.set_customrequest self.curl "TRACE");
_set_headers self !headers;
Curl.set_headerfunction self.curl (fun s0 ->