Code

t5551-http-fetch: Work around broken Accept header in libcurl
authorShawn O. Pearce <spearce@spearce.org>
Mon, 9 Nov 2009 18:10:37 +0000 (10:10 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Nov 2009 00:41:13 +0000 (16:41 -0800)
Unfortunately at least one version of libcurl has a bug causing
it to include "Accept: */*" in the same POST request where we have
already asked for "Accept: application/x-git-upload-pack-response".

This is a bug in libcurl, not Git, or our test vector.  The
application has explicitly asked the server for a single content
type, but libcurl has mistakenly also told the server the client
application will accept */*, which is any content type.

Based on the libcurl change log, this "Accept: */*" header bug
may have been fixed in version 7.18.1 released March 30, 2008:

  http://curl.haxx.se/changes.html#7_18_1

Rather than require users to upgrade libcurl we change the test
vector to trim this line out of the 2nd request.

Reported-by: Tarmigan <tarmigan+git@gmail.com>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t5551-http-fetch.sh

index 0bf165bacdf47dd313250756a4e7d569b448de6a..c0505ecd7be7c63f3d33efc28744e251600bc3fb 100755 (executable)
@@ -61,6 +61,9 @@ test_expect_success 'clone http repository' '
 
                /^> User-Agent: /d
                /^> Host: /d
+               /^> POST /,$ {
+                       /^> Accept: [*]\\/[*]/d
+               }
                s/^> Content-Length: .*/> Content-Length: xxx/
                /^> 00..want /d
                /^> 00.*done/d