cli tool: in -F option arg, comma is a delimiter for files only

Also upgrade test 1133 to cover this case and clarify man page about
form data quoting.

Bug: https://github.com/curl/curl/issues/2022
Reported-By: omau on github
This commit is contained in:
Patrick Monnerat 2017-10-29 13:57:16 +01:00 committed by monnerat
parent 7ee59512f8
commit f82f952d2f
3 changed files with 34 additions and 20 deletions

View file

@ -23,10 +23,10 @@ blablabla
http
</server>
<name>
HTTP RFC1867-type formposting with filename contains ',', ';', '"'
HTTP RFC1867-type formposting with filename/data contains ',', ';', '"'
</name>
<command>
http://%HOSTIP:%HTTPPORT/we/want/1133 -F "file=@\"log/test1133,a\\\"nd;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/test1133,a\"nd;.txt"' -F 'file3=@"log/test1133,a\"nd;.txt";type=m/f,"log/test1133,a\"nd;.txt"'
http://%HOSTIP:%HTTPPORT/we/want/1133 -F "file=@\"log/test1133,a\\\"nd;.txt\";type=mo/foo;filename=\"faker,and;.txt\"" -F 'file2=@"log/test1133,a\"nd;.txt"' -F 'file3=@"log/test1133,a\"nd;.txt";type=m/f,"log/test1133,a\"nd;.txt"' -F a="{\"field1\":\"value1\",\"field2\":\"value2\"}" -F 'b=" \\value1;type=\"whatever\" "; type=text/foo; charset=utf-8 ; filename=param_b'
</command>
# We create this file before the command is invoked!
<file name=log/test1133,a"nd;.txt>
@ -47,7 +47,8 @@ POST /we/want/1133 HTTP/1.1
User-Agent: curl/7.10.4 (i686-pc-linux-gnu) libcurl/7.10.4 OpenSSL/0.9.7a ipv6 zlib/1.1.3
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 969
Content-Length: 1270
Expect: 100-continue
Content-Type: multipart/form-data; boundary=----------------------------24e78000bd32
------------------------------24e78000bd32
@ -89,6 +90,13 @@ bar
foo
Content-Disposition: form-data; name="a"
{"field1":"value1","field2":"value2"}
Content-Disposition: form-data; name="b"; filename="param_b"
Content-Type: text/foo; charset=utf-8
\value1;type="whatever"
------------------------------24e78000bd32--
</protocol>
</verify>