http: restore header folding behavior

Folded header lines will now get passed through like before. The headers
API is adapted and will provide the content unfolded.

Added test 1274 and extended test 1940 to verify.

Reported-by: Petr Pisar
Fixes #8844
Closes #8899
This commit is contained in:
Daniel Stenberg 2022-05-24 23:33:35 +02:00
parent 16a58e9f93
commit c9b60f0053
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
8 changed files with 139 additions and 9 deletions

View file

@ -160,7 +160,7 @@ test1240 test1241 test1242 test1243 test1244 test1245 test1246 test1247 \
test1248 test1249 test1250 test1251 test1252 test1253 test1254 test1255 \
test1256 test1257 test1258 test1259 test1260 test1261 test1262 test1263 \
test1264 test1265 test1266 test1267 test1268 test1269 test1270 test1271 \
test1272 test1273 \
test1272 test1273 test1274 \
\
test1280 test1281 test1282 test1283 test1284 test1285 test1286 test1287 \
test1288 test1289 test1290 test1291 test1292 test1293 test1294 test1295 \

65
tests/data/test1274 Normal file
View file

@ -0,0 +1,65 @@
<testcase>
<info>
<keywords>
HTTP
HTTP GET
header line folding
</keywords>
</info>
#
# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/
fake
folded
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Content-Length: 6
Connection: close
-foo-
</data>
</reply>
#
# Client-side
<client>
<server>
http
</server>
<name>
HTTP header line folding
</name>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER -D log/out%TESTNUMBER
</command>
</client>
#
# Verify data after the test has been "shot"
<verify>
<protocol>
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
</protocol>
<file name="log/out%TESTNUMBER">
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/
fake
folded
Last-Modified: Tue, 13 Jun 2000 12:10:00 GMT
ETag: "21025-dc7-39462498"
Content-Length: 6
Connection: close
</file>
</verify>
</testcase>

View file

@ -12,6 +12,9 @@ HTTP/1.1 200 OK
Date: Thu, 09 Nov 2010 14:49:00 GMT
Server: test with trailing space
Content-Type: text/html
Fold: is
folding a
line
Content-Length: 0
Set-Cookie: onecookie=data;
Set-Cookie: secondcookie=2data;
@ -44,7 +47,7 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER
# Verify data after the test has been "shot"
<verify>
<stdout>
<stdout mode="text">
Date == Thu, 09 Nov 2010 14:49:00 GMT
Server == test with trailing space
Content-Type == text/html
@ -53,6 +56,7 @@ http://%HOSTIP:%HTTPPORT/%TESTNUMBER
- Set-Cookie == onecookie=data; (0/3)
- Set-Cookie == secondcookie=2data; (1/3)
- Set-Cookie == cookie3=data3; (2/3)
Fold == is folding a line
</stdout>
</verify>
</testcase>