fix handling of multiple Content-type headers
This can happen if an error happens while sending
application/mercurial-0.1 content. The error page will
be sent resulting (for at least lighttpd) in the following
headers:
Content-type: application/mercurial-0.1
Content-type: text/html
which result in req.proto = 'application/mercurial-0.1, text/html'
fix issue344
#!/bin/sh
hg init test
cd test
cat >sometext.txt <<ENDSOME
This is just some random text
that will go inside the file and take a few lines.
It is very boring to read, but computers don't
care about things like that.
ENDSOME
hg add sometext.txt
hg commit -d "1 0" -m "Just some text"
hg serve -p 20059 -A access.log -E error.log -d --pid-file=hg.pid
cat hg.pid >> $DAEMON_PIDS
("$TESTDIR/get-with-headers.py" localhost:20059 '/?f=f165dc289438;file=sometext.txt;style=raw' content-type content-length content-disposition) >getoutput.txt &
sleep 5
kill `cat hg.pid`
sleep 1 # wait for server to scream and die
cat getoutput.txt
cat access.log error.log | \
sed 's/^[^ ]*\( [^[]*\[\)[^]]*\(\].*\)$/host\1date\2/'