mirror of
https://github.com/curl/curl.git
synced 2026-08-26 07:23:31 +03:00
lib: move mimepost data from ->req.p.http to ->state
When the legacy CURLOPT_HTTPPOST option is used, it gets converted into
the modem mimpost struct at first use. This data is (now) kept for the
entire transfer and not only per single HTTP request. This re-enables
rewind in the beginning of the second request instead of in end of the
first, as brought by 1b39731.
The request struct is per-request data only.
Extend test 650 to verify.
Fixes #11680
Reported-by: yushicheng7788 on github
Closes #11682
This commit is contained in:
parent
821d108fc9
commit
74b87a8af1
9 changed files with 157 additions and 45 deletions
|
|
@ -10,15 +10,26 @@ FORM
|
|||
#
|
||||
# Server-side
|
||||
<reply>
|
||||
<data>
|
||||
HTTP/1.1 200 OK
|
||||
<data nocheck="yes">
|
||||
HTTP/1.1 301 OK
|
||||
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake swsclose
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
Location: /%TESTNUMBER0002
|
||||
|
||||
hello
|
||||
</data>
|
||||
<data2 crlf="yes">
|
||||
HTTP/1.1 200 OK
|
||||
Date: Tue, 09 Nov 2010 14:49:00 GMT
|
||||
Server: test-server/fake
|
||||
Content-Length: 6
|
||||
Connection: close
|
||||
Content-Type: text/html
|
||||
|
||||
-foo-
|
||||
</data>
|
||||
</reply>
|
||||
|
||||
# Client-side
|
||||
|
|
@ -35,7 +46,7 @@ lib%TESTNUMBER
|
|||
</tool>
|
||||
|
||||
<name>
|
||||
HTTP formpost using form API
|
||||
HTTP formpost using form API - with redirect and re-POST
|
||||
</name>
|
||||
<stdin>
|
||||
Some data from stdin
|
||||
|
|
@ -134,6 +145,90 @@ Content-Disposition: form-data; name="standardinput"
|
|||
Content-Type: application/octet-stream
|
||||
|
||||
|
||||
16
|
||||
Some data from stdin
|
||||
|
||||
30
|
||||
|
||||
--------------------------------
|
||||
|
||||
0
|
||||
|
||||
POST /%TESTNUMBER0002 HTTP/1.1
|
||||
Host: %HOSTIP:%HTTPPORT
|
||||
Accept: */*
|
||||
Transfer-Encoding: chunked
|
||||
Content-Type: multipart/form-data; boundary=----------------------------
|
||||
Expect: 100-continue
|
||||
|
||||
361
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="fieldname"
|
||||
Content-Type: text/plain
|
||||
X-customheader-1: Header 1 data
|
||||
X-customheader-2: Header 2 data
|
||||
|
||||
this is what we post to the silly web server
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="fieldnam"
|
||||
|
||||
uhis is what we post to the silly web serve
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="multifile"
|
||||
Content-Type: multipart/mixed; boundary=----------------------------
|
||||
|
||||
------------------------------
|
||||
Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
|
||||
Content-Type: application/octet-stream
|
||||
|
||||
This is data from a file.
|
||||
|
||||
------------------------------
|
||||
Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
|
||||
Content-Type: text/whatever
|
||||
|
||||
|
||||
%if hyper
|
||||
A5
|
||||
%else
|
||||
a5
|
||||
%endif
|
||||
This is data from a file.
|
||||
|
||||
------------------------------
|
||||
Content-Disposition: attachment; filename="test%TESTNUMBER.filedata"
|
||||
Content-Type: text/whatever
|
||||
|
||||
|
||||
%if hyper
|
||||
AF
|
||||
%else
|
||||
af
|
||||
%endif
|
||||
This is data from a file.
|
||||
|
||||
--------------------------------
|
||||
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="filecontents"
|
||||
|
||||
|
||||
%if hyper
|
||||
10F
|
||||
%else
|
||||
10f
|
||||
%endif
|
||||
This is data from a file.
|
||||
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="formlength"
|
||||
|
||||
1367
|
||||
------------------------------
|
||||
Content-Disposition: form-data; name="standardinput"
|
||||
Content-Type: application/octet-stream
|
||||
|
||||
|
||||
16
|
||||
Some data from stdin
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue