From 2045c64bd8d4435585d87c38b4d1143116c5bdd9 Mon Sep 17 00:00:00 2001 From: Antoine Augusti Date: Mon, 11 Oct 2021 10:11:11 +0200 Subject: [PATCH] Follow HTTP 308 redirects --- src/hackney.erl | 6 +++--- src/hackney_stream.erl | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/hackney.erl b/src/hackney.erl index 20d89a38..042b2c5a 100644 --- a/src/hackney.erl +++ b/src/hackney.erl @@ -725,7 +725,7 @@ maybe_redirect( case redirect_location(Headers) of undefined -> Resp; Location -> - IsRedirect = lists:member(S, [301, 302, 303, 307]), + IsRedirect = lists:member(S, [301, 302, 303, 307, 308]), case IsRedirect of false -> Resp; _ -> @@ -734,7 +734,7 @@ maybe_redirect( end end; maybe_redirect({ok, S, _H, #client{follow_redirect=true}}=Resp, _Req) -> - case lists:member(S, [301, 302, 303, 307]) of + case lists:member(S, [301, 302, 303, 307, 308]) of true -> {error, {max_redirect_overflow, Resp}}; false -> @@ -746,7 +746,7 @@ maybe_redirect(Resp, _Req) -> maybe_redirect1(Location, {ok, S, H, #client{retries=Tries}=Client}=Resp, Req) -> {Method, _Path, Headers, Body} = Req, - case lists:member(S, [301, 302, 307]) of + case lists:member(S, [301, 302, 307, 308]) of true -> ?report_debug("redirect request", [{location, Location}, {req, Req}, diff --git a/src/hackney_stream.erl b/src/hackney_stream.erl index 7df666dc..c8bc2a5d 100644 --- a/src/hackney_stream.erl +++ b/src/hackney_stream.erl @@ -170,7 +170,7 @@ maybe_redirect(Parent, Owner, Ref, StatusInt, Reason, socket=Socket, method=Method, follow_redirect=true}=Client) -> - case lists:member(StatusInt, [301, 302, 307]) of + case lists:member(StatusInt, [301, 302, 307, 308]) of true -> Transport:setopts(Socket, [{active, false}]), case parse(Client) of