mirror of
https://github.com/moparisthebest/curl
synced 2024-11-16 22:45:03 -05:00
transfer: make HTTP without headers count correct body size
This is what "HTTP/0.9" basically looks like. Reported on IRC Closes #2382
This commit is contained in:
parent
634f72fed4
commit
a9a7b606c2
@ -717,7 +717,7 @@ static CURLcode readwrite_data(struct Curl_easy *data,
|
|||||||
#endif /* CURL_DISABLE_HTTP */
|
#endif /* CURL_DISABLE_HTTP */
|
||||||
|
|
||||||
/* Account for body content stored in the header buffer */
|
/* Account for body content stored in the header buffer */
|
||||||
if(k->badheader && !k->ignorebody) {
|
if((k->badheader == HEADER_PARTHEADER) && !k->ignorebody) {
|
||||||
DEBUGF(infof(data, "Increasing bytecount by %zu from hbuflen\n",
|
DEBUGF(infof(data, "Increasing bytecount by %zu from hbuflen\n",
|
||||||
k->hbuflen));
|
k->hbuflen));
|
||||||
k->bytecount += k->hbuflen;
|
k->bytecount += k->hbuflen;
|
||||||
|
@ -293,8 +293,8 @@ command is run. They are cleared again after the command has been run.
|
|||||||
Variables are first substituted as in the <command> section.
|
Variables are first substituted as in the <command> section.
|
||||||
</setenv>
|
</setenv>
|
||||||
|
|
||||||
<command [option="no-output/no-include"] [timeout="secs"] [delay="secs"]
|
<command [option="no-output/no-include/force-output"] [timeout="secs"]
|
||||||
[type="perl"]>
|
[delay="secs"][type="perl"]>
|
||||||
command line to run, there's a bunch of %variables that get replaced
|
command line to run, there's a bunch of %variables that get replaced
|
||||||
accordingly.
|
accordingly.
|
||||||
|
|
||||||
@ -317,6 +317,9 @@ Set option="no-output" to prevent the test script to slap on the --output
|
|||||||
argument that directs the output to a file. The --output is also not added if
|
argument that directs the output to a file. The --output is also not added if
|
||||||
the verify/stdout section is used.
|
the verify/stdout section is used.
|
||||||
|
|
||||||
|
Set option="force-output" to make use of --output even when the test is
|
||||||
|
otherwise written to verify stdout.
|
||||||
|
|
||||||
Set option="no-include" to prevent the test script to slap on the --include
|
Set option="no-include" to prevent the test script to slap on the --include
|
||||||
argument.
|
argument.
|
||||||
|
|
||||||
|
@ -129,7 +129,7 @@ test1136 test1137 test1138 test1139 test1140 test1141 test1142 test1143 \
|
|||||||
test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
|
test1144 test1145 test1146 test1147 test1148 test1149 test1150 test1151 \
|
||||||
test1152 test1153 test1154 \
|
test1152 test1153 test1154 \
|
||||||
\
|
\
|
||||||
test1160 test1161 test1162 test1163 \
|
test1160 test1161 test1162 test1163 test1164 \
|
||||||
test1170 test1171 \
|
test1170 test1171 \
|
||||||
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
|
test1200 test1201 test1202 test1203 test1204 test1205 test1206 test1207 \
|
||||||
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
|
test1208 test1209 test1210 test1211 test1212 test1213 test1214 test1215 \
|
||||||
|
52
tests/data/test1164
Normal file
52
tests/data/test1164
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
<testcase>
|
||||||
|
<info>
|
||||||
|
<keywords>
|
||||||
|
HTTP
|
||||||
|
HTTP GET
|
||||||
|
</keywords>
|
||||||
|
</info>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Server-side
|
||||||
|
<reply>
|
||||||
|
# perl -e 'print "swsclose" . "\0" x 200;' | base64
|
||||||
|
# 'swsclose' is there to force server to close after send
|
||||||
|
<data nocheck="yes" base64="yes">
|
||||||
|
c3dzY2xvc2UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
|
||||||
|
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==
|
||||||
|
</data>
|
||||||
|
</reply>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Client-side
|
||||||
|
<client>
|
||||||
|
<server>
|
||||||
|
http
|
||||||
|
</server>
|
||||||
|
<name>
|
||||||
|
HTTP/0.9 GET and all zeroes
|
||||||
|
</name>
|
||||||
|
<command option="force-output">
|
||||||
|
http://%HOSTIP:%HTTPPORT/1164 -w '%{size_download}\n'
|
||||||
|
</command>
|
||||||
|
</client>
|
||||||
|
|
||||||
|
#
|
||||||
|
# Verify data after the test has been "shot"
|
||||||
|
<verify>
|
||||||
|
<strip>
|
||||||
|
^User-Agent:.*
|
||||||
|
</strip>
|
||||||
|
<protocol>
|
||||||
|
GET /1164 HTTP/1.1
|
||||||
|
Host: %HOSTIP:%HTTPPORT
|
||||||
|
Accept: */*
|
||||||
|
|
||||||
|
</protocol>
|
||||||
|
<stdout>
|
||||||
|
208
|
||||||
|
</stdout>
|
||||||
|
</verify>
|
||||||
|
</testcase>
|
@ -3909,7 +3909,7 @@ sub singletest {
|
|||||||
|
|
||||||
if((!$cmdhash{'option'}) || ($cmdhash{'option'} !~ /no-output/)) {
|
if((!$cmdhash{'option'}) || ($cmdhash{'option'} !~ /no-output/)) {
|
||||||
#We may slap on --output!
|
#We may slap on --output!
|
||||||
if (!@validstdout) {
|
if (!@validstdout || $cmdhash{'option'} =~ /force-output/) {
|
||||||
$out=" --output $CURLOUT ";
|
$out=" --output $CURLOUT ";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user