Author: eadler
Date: Mon Oct 22 03:00:15 2012
New Revision: 241841
URL: http://svn.freebsd.org/changeset/base/241841

Log:
  Implement HTTP 305 redirect handling.
  
  PR:           172452
  Submitted by: gcooper
  Reviewed by:  des
  Approved by:  cperciva
  MFC after:    1 week

Modified:
  head/lib/libfetch/http.c

Modified: head/lib/libfetch/http.c
==============================================================================
--- head/lib/libfetch/http.c    Mon Oct 22 03:00:10 2012        (r241840)
+++ head/lib/libfetch/http.c    Mon Oct 22 03:00:15 2012        (r241841)
@@ -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
                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
                                 */
                                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;
                                 }
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to