Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
http: allow providing extra headers for http requests
author
Brandon Williams
<bmwill@google.com>
Thu, 15 Mar 2018 17:31:38 +0000
(10:31 -0700)
committer
Junio C Hamano
<gitster@pobox.com>
Thu, 15 Mar 2018 19:01:09 +0000
(12:01 -0700)
Add a way for callers to request that extra headers be included when
making http requests.
Signed-off-by: Brandon Williams <bmwill@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
http.c
patch
|
blob
|
history
http.h
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
49e85e9
)
diff --git
a/http.c
b/http.c
index 32d33261c98cce2d5fd25c07a503654a3d5d2e52..a4c16a91e664ece21d4541c2cb5d0fce2f59b959 100644
(file)
--- a/
http.c
+++ b/
http.c
@@
-1723,6
+1723,14
@@
static int http_request(const char *url,
headers = curl_slist_append(headers, buf.buf);
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");
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 f7bd3b26b0da70e44402579e4912a1b20dcef16e..4df4a25e1abc232c27f1b00ba0a97b05a689db2e 100644
(file)
--- a/
http.h
+++ b/
http.h
@@
-172,6
+172,13
@@
struct http_get_options {
* for details.
*/
struct strbuf *base_url;
* 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_*() */
};
/* Return values for http_get_*() */