mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-27 11:22:43 +00:00
Don't deny non-temporary redirects if the -A option is set (per
the man page) [0] While here add support for draft-reschke-http-status-308-07 PR: 172451 [0] Submitted by: gcooper [0] Reviewed by: des Approved by: cperciva MFC after: 1 week
This commit is contained in:
parent
e6c0e200f4
commit
c4fa1489ec
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=241840
@ -104,6 +104,7 @@ __FBSDID("$FreeBSD$");
|
||||
#define HTTP_SEE_OTHER 303
|
||||
#define HTTP_NOT_MODIFIED 304
|
||||
#define HTTP_TEMP_REDIRECT 307
|
||||
#define HTTP_PERM_REDIRECT 308
|
||||
#define HTTP_NEED_AUTH 401
|
||||
#define HTTP_NEED_PROXY_AUTH 407
|
||||
#define HTTP_BAD_RANGE 416
|
||||
@ -1524,8 +1525,7 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
|
||||
/* try the provided URL first */
|
||||
url = URL;
|
||||
|
||||
/* if the A flag is set, we only get one try */
|
||||
n = noredirect ? 1 : MAX_REDIRECT;
|
||||
n = MAX_REDIRECT;
|
||||
i = 0;
|
||||
|
||||
e = HTTP_PROTOCOL_ERROR;
|
||||
@ -1772,6 +1772,16 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
|
||||
case hdr_location:
|
||||
if (!HTTP_REDIRECT(conn->err))
|
||||
break;
|
||||
/*
|
||||
* if the A flag is set, we don't follow
|
||||
* temporary redirects.
|
||||
*/
|
||||
if (noredirect &&
|
||||
conn->err != HTTP_MOVED_PERM &&
|
||||
conn->err != HTTP_PERM_REDIRECT) {
|
||||
n = 1;
|
||||
break;
|
||||
}
|
||||
if (new)
|
||||
free(new);
|
||||
if (verbose)
|
||||
|
@ -18,6 +18,7 @@
|
||||
304 OK Not Modified
|
||||
305 INFO Use Proxy
|
||||
307 MOVED Temporary Redirect
|
||||
308 MOVED Permanent Redirect
|
||||
400 PROTO Bad Request
|
||||
401 AUTH Unauthorized
|
||||
402 AUTH Payment Required
|
||||
|
Loading…
Reference in New Issue
Block a user