Add the PATCH method to the http module.
authorWerner Koch <wk@gnupg.org>
Thu, 18 May 2017 10:13:00 +0000 (12:13 +0200)
committerWerner Koch <wk@gnupg.org>
Fri, 19 May 2017 08:02:14 +0000 (10:02 +0200)
* src/http.h (HTTP_REQ_PATCH): New.
* src/http.c (http_open): Adjust method check.
(send_request): Implement PATCH method.

src/http.c
src/http.h

index e4db5fe..554cc64 100644 (file)
@@ -694,7 +694,9 @@ http_open (http_t *r_hd, http_req_t reqtype, const char *url,
 
   *r_hd = NULL;
 
-  if (!(reqtype == HTTP_REQ_GET || reqtype == HTTP_REQ_POST))
+  if (!(reqtype == HTTP_REQ_GET
+        || reqtype == HTTP_REQ_POST
+        || reqtype == HTTP_REQ_PATCH))
     return gpg_err_make (default_errsource, GPG_ERR_INV_ARG);
 
   /* Create the handle. */
@@ -1614,7 +1616,8 @@ send_request (http_t hd, const char *httphost, const char *auth,
         ("%s %s://%s:%hu%s%s HTTP/1.1\r\n%s%s",
          hd->req_type == HTTP_REQ_GET ? "GET" :
          hd->req_type == HTTP_REQ_HEAD ? "HEAD" :
-         hd->req_type == HTTP_REQ_POST ? "POST" : "OOPS",
+         hd->req_type == HTTP_REQ_POST ? "POST" :
+         hd->req_type == HTTP_REQ_PATCH ? "PATCH" : "OOPS",
          hd->uri->use_tls? "https" : "http",
          httphost? httphost : server,
          port, *p == '/' ? "" : "/", p,
@@ -1634,7 +1637,8 @@ send_request (http_t hd, const char *httphost, const char *auth,
         ("%s %s%s HTTP/1.1\r\nHost: %s%s\r\n%s",
          hd->req_type == HTTP_REQ_GET ? "GET" :
          hd->req_type == HTTP_REQ_HEAD ? "HEAD" :
-         hd->req_type == HTTP_REQ_POST ? "POST" : "OOPS",
+         hd->req_type == HTTP_REQ_POST ? "POST" :
+         hd->req_type == HTTP_REQ_PATCH ? "PATCH" : "OOPS",
          *p == '/' ? "" : "/", p,
          httphost? httphost : server,
          portstr,
index 881a2a0..e7290c6 100644 (file)
@@ -67,7 +67,8 @@ typedef enum
     HTTP_REQ_GET  = 1,
     HTTP_REQ_HEAD = 2,
     HTTP_REQ_POST = 3,
-    HTTP_REQ_OPAQUE = 4  /* Internal use.  */
+    HTTP_REQ_PATCH = 4,
+    HTTP_REQ_OPAQUE = 5  /* Internal use.  */
   }
 http_req_t;