Re: [PATCH v3 32/35] http: allow providing extra headers for http requests

2018-02-22 Thread Brandon Williams
On 02/21, Jonathan Tan wrote:
> On Tue,  6 Feb 2018 17:13:09 -0800
> Brandon Williams  wrote:
> 
> > @@ -172,6 +172,8 @@ struct http_get_options {
> >  * for details.
> >  */
> > struct strbuf *base_url;
> > +
> > +   struct string_list *extra_headers;
> 
> Document this? For example:
> 
>   If not NULL, additional HTTP headers to be sent with the request. The
>   strings in the list must not be freed until after the request.

I'll add that.

-- 
Brandon Williams


Re: [PATCH v3 32/35] http: allow providing extra headers for http requests

2018-02-21 Thread Jonathan Tan
On Tue,  6 Feb 2018 17:13:09 -0800
Brandon Williams  wrote:

> @@ -172,6 +172,8 @@ struct http_get_options {
>* for details.
>*/
>   struct strbuf *base_url;
> +
> + struct string_list *extra_headers;

Document this? For example:

  If not NULL, additional HTTP headers to be sent with the request. The
  strings in the list must not be freed until after the request.


[PATCH v3 32/35] http: allow providing extra headers for http requests

2018-02-06 Thread Brandon Williams
Add a way for callers to request that extra headers be included when
making http requests.

Signed-off-by: Brandon Williams 
---
 http.c | 8 
 http.h | 2 ++
 2 files changed, 10 insertions(+)

diff --git a/http.c b/http.c
index 597771271..e1757d62b 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 f7bd3b26b..a113915c7 100644
--- a/http.h
+++ b/http.h
@@ -172,6 +172,8 @@ struct http_get_options {
 * for details.
 */
struct strbuf *base_url;
+
+   struct string_list *extra_headers;
 };
 
 /* Return values for http_get_*() */
-- 
2.16.0.rc1.238.g530d649a79-goog