Commit a58eecd436ff9344cda18efcdfa1da034503512e

Ben Straub 2013-10-08T13:40:52

WinHTTP: set Accept header for POSTs

diff --git a/src/transports/winhttp.c b/src/transports/winhttp.c
index 067d6fc..95c9d10 100644
--- a/src/transports/winhttp.c
+++ b/src/transports/winhttp.c
@@ -265,8 +265,8 @@ static int winhttp_stream_connect(winhttp_stream *s)
 		goto on_error;
 	}
 
-	/* Send Content-Type header -- only necessary on a POST */
 	if (post_verb == s->verb) {
+		/* Send Content-Type header -- only necessary on a POST */
 		git_buf_clear(&buf);
 		if (git_buf_printf(&buf, "Content-Type: application/x-git-%s-request", s->service) < 0)
 			goto on_error;
@@ -277,6 +277,16 @@ static int winhttp_stream_connect(winhttp_stream *s)
 			giterr_set(GITERR_OS, "Failed to add a header to the request");
 			goto on_error;
 		}
+
+		/* Set the Accept header */
+		git_buf_clear(&buf);
+		if (git_buf_printf(&buf, "Accept: application/x-git-%s-result\r\n", s->service) < 0)
+			goto on_error;
+		git__utf8_to_16(ct, MAX_CONTENT_TYPE_LEN, git_buf_cstr(&buf));
+		if (!WinHttpAddRequestHeaders(s->request, ct, (ULONG) -1L, WINHTTP_ADDREQ_FLAG_REPLACE)) {
+			giterr_set(GITERR_OS, "Failed to add a header to the request");
+			goto on_error;
+		}
 	}
 
 	/* If requested, disable certificate validation */