[PATCH v5 31/35] http: allow providing extra headers for http requests
From: Brandon Williams <hidden>
Date: 2018-03-14 18:33:36
Subsystem:
the rest · Maintainer:
Linus Torvalds
From: Brandon Williams <hidden>
Date: 2018-03-14 18:33:36
Subsystem:
the rest · Maintainer:
Linus Torvalds
Add a way for callers to request that extra headers be included when making http requests. Signed-off-by: Brandon Williams <redacted> --- http.c | 8 ++++++++ http.h | 7 +++++++ 2 files changed, 15 insertions(+)
diff --git a/http.c b/http.c
index 5977712712..e1757d62b2 100644
--- a/http.c
+++ b/http.c@@ -1723,6 +1723,14 @@ static int http_request(const char *url, headers = curl_slist_append(headers, buf.buf); + /* Add additional headers here */ + if (options && options->extra_headers) { + const struct string_list_item *item; + for_each_string_list_item(item, options->extra_headers) { + headers = curl_slist_append(headers, item->string); + } + } + curl_easy_setopt(slot->curl, CURLOPT_URL, url); curl_easy_setopt(slot->curl, CURLOPT_HTTPHEADER, headers); curl_easy_setopt(slot->curl, CURLOPT_ENCODING, "gzip");
diff --git a/http.h b/http.h
index f7bd3b26b0..4df4a25e1a 100644
--- a/http.h
+++ b/http.h@@ -172,6 +172,13 @@ struct http_get_options { * for details. */ struct strbuf *base_url; + + /* + * If not NULL, contains additional HTTP headers to be sent with the + * request. The strings in the list must not be freed until after the + * request has completed. + */ + struct string_list *extra_headers; }; /* Return values for http_get_*() */
--
2.16.2.804.g6dcf76e118-goog