Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:23
erlang
7083-inets-httpc-fix-for-socket-closing.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 7083-inets-httpc-fix-for-socket-closing.patch of Package erlang
From 2bf2e679214550f06163e475c6f4890a97bde40f Mon Sep 17 00:00:00 2001 From: Jakub Witczak <kuba@erlang.org> Date: Wed, 5 Apr 2023 10:29:58 +0200 Subject: [PATCH 3/4] inets: httpc fix for socket closing - upon remote socket closure, add current request to only 1 queue --- lib/inets/src/http_client/httpc_handler.erl | 26 ++++++++++++++------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/lib/inets/src/http_client/httpc_handler.erl b/lib/inets/src/http_client/httpc_handler.erl index c3185269f1..742c73536f 100644 --- a/lib/inets/src/http_client/httpc_handler.erl +++ b/lib/inets/src/http_client/httpc_handler.erl @@ -305,8 +305,9 @@ terminate(normal, %% Socket closed remotely terminate(normal, #state{session = #session{socket = {remote_close, Socket}, - socket_type = SocketType, - id = Id}, + socket_type = SocketType, + type = Type, + id = Id}, profile_name = ProfileName, request = Request, timers = Timers, @@ -315,8 +316,12 @@ terminate(normal, %% Clobber session (catch httpc_manager:delete_session(Id, ProfileName)), - maybe_retry_queue(Pipeline, State), - maybe_retry_queue(KeepAlive, State), + case Type of + pipeline -> + maybe_retry_queue(Pipeline, State); + _ -> + maybe_retry_queue(KeepAlive, State) + end, %% Cancel timers cancel_timers(Timers), @@ -327,8 +332,9 @@ terminate(normal, http_transport:close(SocketType, Socket); terminate(_Reason, #state{session = #session{id = Id, - socket = Socket, - socket_type = SocketType}, + socket = Socket, + type = Type, + socket_type = SocketType}, request = undefined, profile_name = ProfileName, timers = Timers, @@ -338,8 +344,12 @@ terminate(_Reason, #state{session = #session{id = Id, %% Clobber session (catch httpc_manager:delete_session(Id, ProfileName)), - maybe_retry_queue(Pipeline, State), - maybe_retry_queue(KeepAlive, State), + case Type of + pipeline -> + maybe_retry_queue(Pipeline, State); + _ -> + maybe_retry_queue(KeepAlive, State) + end, cancel_timer(Timers#timers.queue_timer, timeout_queue), http_transport:close(SocketType, Socket); -- 2.35.3
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor