summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoreadler <eadler@FreeBSD.org>2012-10-22 03:00:15 +0000
committereadler <eadler@FreeBSD.org>2012-10-22 03:00:15 +0000
commit106fb1fefe19b26bf51d5f5a28146daa42b7b0c8 (patch)
treee8ba1b2e09bdee27e4423640fcd3a3922d0c0eb4
parentf647c87f9c373d56d14471b8600d0151acf7ebb0 (diff)
downloadFreeBSD-src-106fb1fefe19b26bf51d5f5a28146daa42b7b0c8.zip
FreeBSD-src-106fb1fefe19b26bf51d5f5a28146daa42b7b0c8.tar.gz
Implement HTTP 305 redirect handling.
PR: 172452 Submitted by: gcooper Reviewed by: des Approved by: cperciva MFC after: 1 week
-rw-r--r--lib/libfetch/http.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/libfetch/http.c b/lib/libfetch/http.c
index a1166bc..00dd887 100644
--- a/lib/libfetch/http.c
+++ b/lib/libfetch/http.c
@@ -103,6 +103,7 @@ __FBSDID("$FreeBSD$");
#define HTTP_MOVED_TEMP 302
#define HTTP_SEE_OTHER 303
#define HTTP_NOT_MODIFIED 304
+#define HTTP_USE_PROXY 305
#define HTTP_TEMP_REDIRECT 307
#define HTTP_PERM_REDIRECT 308
#define HTTP_NEED_AUTH 401
@@ -113,6 +114,7 @@ __FBSDID("$FreeBSD$");
#define HTTP_REDIRECT(xyz) ((xyz) == HTTP_MOVED_PERM \
|| (xyz) == HTTP_MOVED_TEMP \
|| (xyz) == HTTP_TEMP_REDIRECT \
+ || (xyz) == HTTP_USE_PROXY \
|| (xyz) == HTTP_SEE_OTHER)
#define HTTP_ERROR(xyz) ((xyz) > 400 && (xyz) < 599)
@@ -1697,6 +1699,7 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
case HTTP_MOVED_PERM:
case HTTP_MOVED_TEMP:
case HTTP_SEE_OTHER:
+ case HTTP_USE_PROXY:
/*
* Not so fine, but we still have to read the
* headers to get the new location.
@@ -1778,7 +1781,8 @@ http_request(struct url *URL, const char *op, struct url_stat *us,
*/
if (noredirect &&
conn->err != HTTP_MOVED_PERM &&
- conn->err != HTTP_PERM_REDIRECT) {
+ conn->err != HTTP_PERM_REDIRECT &&
+ conn->err != HTTP_USE_PROXY) {
n = 1;
break;
}
OpenPOWER on IntegriCloud