Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150679906
D18788.id61407.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D18788.id61407.diff
View Options
Index: head/lib/libfetch/Makefile
===================================================================
--- head/lib/libfetch/Makefile
+++ head/lib/libfetch/Makefile
@@ -68,6 +68,7 @@
MLINKS+= fetch.3 fetchPutFile.3
MLINKS+= fetch.3 fetchPutHTTP.3
MLINKS+= fetch.3 fetchPutURL.3
+MLINKS+= fetch.3 fetchReqHTTP.3
MLINKS+= fetch.3 fetchStat.3
MLINKS+= fetch.3 fetchStatFTP.3
MLINKS+= fetch.3 fetchStatFile.3
Index: head/lib/libfetch/fetch.3
===================================================================
--- head/lib/libfetch/fetch.3
+++ head/lib/libfetch/fetch.3
@@ -26,7 +26,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd March 18, 2016
+.Dd August 28, 2019
.Dt FETCH 3
.Os
.Sh NAME
@@ -53,6 +53,7 @@
.Nm fetchPutHTTP ,
.Nm fetchStatHTTP ,
.Nm fetchListHTTP ,
+.Nm fetchReqHTTP ,
.Nm fetchXGetFTP ,
.Nm fetchGetFTP ,
.Nm fetchPutFTP ,
@@ -112,6 +113,8 @@
.Ft struct url_ent *
.Fn fetchListHTTP "struct url *u" "const char *flags"
.Ft FILE *
+.Fn fetchReqHTTP "struct url *u" "const char *method" "const char *flags" "const char *content_type" "const char *body"
+.Ft FILE *
.Fn fetchXGetFTP "struct url *u" "struct url_stat *us" "const char *flags"
.Ft FILE *
.Fn fetchGetFTP "struct url *u" "const char *flags"
@@ -355,9 +358,10 @@
.Sh HTTP SCHEME
The
.Fn fetchXGetHTTP ,
-.Fn fetchGetHTTP
-and
+.Fn fetchGetHTTP ,
.Fn fetchPutHTTP
+and
+.Fn fetchReqHTTP
functions implement the HTTP/1.1 protocol.
With a little luck, there is
even a chance that they comply with RFC2616 and RFC2617.
@@ -386,6 +390,18 @@
.Li If-Modified-Since
HTTP header to only fetch the content if it is newer than
.Va ims_time .
+.Pp
+The function
+.Fn fetchReqHTTP
+can be used to make requests with an arbitrary HTTP verb,
+including POST, DELETE, CONNECT, OPTIONS, TRACE or PATCH.
+This can be done by setting the argument
+.Fa method
+to the intended verb, such as
+.Ql POST ,
+and
+.Fa body
+to the content.
.Pp
Since there seems to be no good way of implementing the HTTP PUT
method in a manner consistent with the rest of the
Index: head/lib/libfetch/http.c
===================================================================
--- head/lib/libfetch/http.c
+++ head/lib/libfetch/http.c
@@ -2093,6 +2093,9 @@
return (NULL);
}
+/*
+ * Arbitrary HTTP verb and content requests
+ */
FILE *
fetchReqHTTP(struct url *URL, const char *method, const char *flags,
const char *content_type, const char *body)
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Apr 4, 7:48 AM (21 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30806943
Default Alt Text
D18788.id61407.diff (2 KB)
Attached To
Mode
D18788: Documenting fetchReqHTTP in libfetch manual
Attached
Detach File
Event Timeline
Log In to Comment