svn commit: r242289 - stable/9/lib/libfetch
Eitan Adler
eadler at FreeBSD.org
Mon Oct 29 04:16:53 UTC 2012
Author: eadler
Date: Mon Oct 29 04:16:52 2012
New Revision: 242289
URL: http://svn.freebsd.org/changeset/base/242289
Log:
MFC r241840:
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]
Approved by: cperciva (implicit)
Modified:
stable/9/lib/libfetch/http.c
stable/9/lib/libfetch/http.errors
Directory Properties:
stable/9/lib/libfetch/ (props changed)
Modified: stable/9/lib/libfetch/http.c
==============================================================================
--- stable/9/lib/libfetch/http.c Mon Oct 29 04:16:52 2012 (r242288)
+++ stable/9/lib/libfetch/http.c Mon Oct 29 04:16:52 2012 (r242289)
@@ -96,6 +96,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
@@ -1516,8 +1517,7 @@ http_request(struct url *URL, const char
/* 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;
@@ -1764,6 +1764,16 @@ http_request(struct url *URL, const char
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)
Modified: stable/9/lib/libfetch/http.errors
==============================================================================
--- stable/9/lib/libfetch/http.errors Mon Oct 29 04:16:52 2012 (r242288)
+++ stable/9/lib/libfetch/http.errors Mon Oct 29 04:16:52 2012 (r242289)
@@ -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
More information about the svn-src-stable-9
mailing list