Skip to content

Commit b4a48ed

Browse files
Kuroneerbenoitc
authored andcommitted
Send hackney_response before calling handle_error (#573)
As hackney_manager:handle_error could terminate the request, the request process should send the response to the owner before calling it.
1 parent 9c3f578 commit b4a48ed

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/hackney_stream.erl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -95,8 +95,8 @@ stream_loop(Parent, Owner, Ref, #client{transport=Transport,
9595
Transport:controlling_process(Socket, Parent),
9696
Owner ! {hackney_response, Ref, done};
9797
{error, _Reason} = Error ->
98-
hackney_manager:handle_error(Client),
99-
Owner ! {hackney_response, Ref, Error}
98+
Owner ! {hackney_response, Ref, Error},
99+
hackney_manager:handle_error(Client)
100100
end.
101101

102102
maybe_continue(Parent, Owner, Ref, #client{transport=Transport,
@@ -196,8 +196,8 @@ maybe_redirect(Parent, Owner, Ref, StatusInt, Reason,
196196
end
197197
end;
198198
{error, Error} ->
199-
hackney_manager:handle_error(Client),
200-
Owner ! {hackney_response, Ref, {error, Error}}
199+
Owner ! {hackney_response, Ref, {error, Error}},
200+
hackney_manager:handle_error(Client)
201201
end;
202202
false when StatusInt =:= 303, Method =:= post ->
203203
Transport:setopts(Socket, [{active, false}]),
@@ -223,8 +223,8 @@ maybe_redirect(Parent, Owner, Ref, StatusInt, Reason,
223223
end
224224
end;
225225
{error, Error} ->
226-
hackney_manager:handle_error(Client),
227-
Owner ! {hackney_response, Ref, {error, Error}}
226+
Owner ! {hackney_response, Ref, {error, Error}},
227+
hackney_manager:handle_error(Client)
228228
end;
229229
_ ->
230230
Owner ! {hackney_response, Ref, {status, StatusInt, Reason}},

0 commit comments

Comments
 (0)