-J: support ';' in quoted file names

Content-disposition headers can provide file names with semicolons which
previously would be cut off at that point.

Added test case 1311 and 1312 to verify -J.

Bug: http://curl.haxx.se/bug/view.cgi?id=3375603
Reported by: Peter Hjalmarsson
This commit is contained in:
Daniel Stenberg 2011-08-04 17:48:45 +02:00
parent d2c22411af
commit 519d0c0dd2
4 changed files with 162 additions and 4 deletions

64
tests/data/test1312 Normal file
View file

@ -0,0 +1,64 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
-J
</keywords>
</info>
#
<reply>
<data nocheck="yes">
HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Length: 6
Connection: close
Content-Type: text/html
Content-Disposition: inline; filename="name1312;weird"
12345
</data>
</reply>
#
# Client-side
<client>
# this relies on the debug feature to allow us to set directory to store the
# -J output in
<features>
debug
</features>
<server>
http
</server>
<name>
HTTP GET with -J, Content-Disposition and ; in filename
</name>
<setenv>
CURL_TESTDIR=%PWD/log
</setenv>
<command option="no-output,no-include">
http://%HOSTIP:%HTTPPORT/1312 -J -O
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
GET /1312 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
<file name="log/name1312;weird">
12345
</file>
</verify>
</testcase>