Browse Source

Don't overwrite the last redirected location (#1589)

* Don't overwrite the last redirected location

* Check the last redirected location
Jiwoo Park 2 years ago
parent
commit
4a61f68fa4
2 changed files with 4 additions and 3 deletions
  1. 2 1
      httplib.h
  2. 2 2
      test/test.cc

+ 2 - 1
httplib.h

@@ -3920,7 +3920,8 @@ inline bool redirect(T &cli, Request &req, Response &res,
   if (ret) {
     req = new_req;
     res = new_res;
-    res.location = location;
+
+    if (res.location.empty()) res.location = location;
   }
   return ret;
 }

+ 2 - 2
test/test.cc

@@ -972,7 +972,7 @@ TEST(YahooRedirectTest, Redirect_Online) {
   res = cli.Get("/");
   ASSERT_TRUE(res);
   EXPECT_EQ(200, res->status);
-  EXPECT_EQ("https://yahoo.com/", res->location);
+  EXPECT_EQ("https://www.yahoo.com/", res->location);
 }
 
 TEST(HttpsToHttpRedirectTest, Redirect_Online) {
@@ -5301,7 +5301,7 @@ TEST(YahooRedirectTest2, SimpleInterface_Online) {
   res = cli.Get("/");
   ASSERT_TRUE(res);
   EXPECT_EQ(200, res->status);
-  EXPECT_EQ("https://yahoo.com/", res->location);
+  EXPECT_EQ("https://www.yahoo.com/", res->location);
 }
 
 TEST(YahooRedirectTest3, SimpleInterface_Online) {