curl/tests/data/test1596
Jay Satiro 6c70ec16c7 http: ignore invalid Retry-After times
- Treat negative Retry-After date-based times as 0.

- Treat Retry-After times greater than 6 hours as 6 hours.

Prior to this change Retry-After did not have a limited range and the
server could have set a time greater than 6 hours or a date in the past
that would result in a negative time, either of which may be unexpected
by the user.

The 6 hour limit is purposely not documented so that it can be changed
in the future if necessary.

Closes https://github.com/curl/curl/pull/15833
2024-12-31 03:19:22 -05:00

51 lines
747 B
Plaintext

<testcase>
<info>
<keywords>
HTTP
HTTP GET
HTTP replaced headers
CURLOPT_TIMECONDITION
If-Modified-Since
</keywords>
</info>
# Server-side
<reply>
<data nocheck="yes">
HTTP/1.1 429 Too Many Requests
Date: Wed, 31 Dec 2036 02:26:59 GMT
Server: test-server/swsclose
Retry-After: Wed, 31 Dec 2036 02:26:59 GMT
</data>
</reply>
# Client-side
<client>
<server>
http
</server>
<name>
HTTP Retry-After header parsing using a date
</name>
<tool>
lib%TESTNUMBER
</tool>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>
<verify>
<protocol>
GET /%TESTNUMBER HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
</protocol>
# Retry-After time is limited to 6 hours (21600 seconds)
<stdout>
Retry-After 21600
</stdout>
</verify>
</testcase>