Commit c3733e56410d5bc73fcca0df8e062f84a0565f90

Matt Burke 2015-09-04T08:56:26

Add more headers to HTTP requests

diff --git a/src/transports/http.c b/src/transports/http.c
index 87f3ee8..f9e5da2 100644
--- a/src/transports/http.c
+++ b/src/transports/http.c
@@ -54,6 +54,7 @@ typedef struct {
 	char *redirect_url;
 	const char *verb;
 	char *chunk_buffer;
+	git_strarray *extra_headers;
 	unsigned chunk_buffer_len;
 	unsigned sent_request : 1,
 		received_response : 1,
@@ -193,6 +194,7 @@ static int gen_request(
 {
 	http_subtransport *t = OWNING_SUBTRANSPORT(s);
 	const char *path = t->connection_data.path ? t->connection_data.path : "/";
+	size_t i;
 
 	git_buf_printf(buf, "%s %s%s HTTP/1.1\r\n", s->verb, path, s->service_url);
 
@@ -210,6 +212,13 @@ static int gen_request(
 	} else
 		git_buf_puts(buf, "Accept: */*\r\n");
 
+	if (s->extra_headers) {
+		for (i = 0; i < s->extra_headers->count; i++) {
+			git_buf_puts(buf, s->extra_headers->strings[i]);
+			git_buf_puts(buf, "\r\n");
+		}
+	}
+
 	/* Apply credentials to the request */
 	if (apply_credentials(buf, t) < 0)
 		return -1;