File 1127-snmp-agent-Add-explicit-socket-s-close-when-terminat.patch of Package erlang

From 7b8e3e157edf0f4bfbc93eb7265b1f1986171097 Mon Sep 17 00:00:00 2001
From: Micael Karlberg <bmk@erlang.org>
Date: Fri, 2 Dec 2022 19:58:53 +0100
Subject: [PATCH 2/2] [snmp|agent] Add explicit socket(s) close when
 terminating net-if

OTP-18352
---
 lib/snmp/src/manager/snmpm_net_if.erl | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/lib/snmp/src/manager/snmpm_net_if.erl b/lib/snmp/src/manager/snmpm_net_if.erl
index af78308147..af4f6e2f70 100644
--- a/lib/snmp/src/manager/snmpm_net_if.erl
+++ b/lib/snmp/src/manager/snmpm_net_if.erl
@@ -750,8 +750,18 @@ handle_info_down(Info, State) ->
 %% Purpose: Shutdown the server
 %% Returns: any (ignored by gen_server)
 %%--------------------------------------------------------------------
-terminate(Reason, #state{log = Log, irgc = IrGcRef}) ->
+terminate(Reason, #state{log        = Log,
+                         irgc       = IrGcRef,
+                         transports = Transports}) ->
     ?vdebug("terminate: ~p", [Reason]),
+    %% Close all transports:
+    Close =
+        fun(S) ->
+                ?vlog("try close socket ~p", [S]),
+                (catch gen_udp:close(S))
+        end,
+    _ = [Close(Socket) || #transport{socket = Socket} <- Transports],
+    %% Stop IR GC timer
     irgc_stop(IrGcRef),
     %% Close logs
     do_close_log(Log),
-- 
2.35.3

openSUSE Build Service is sponsored by