File 0959-Always-renew-active-once-after-a-discovery-response.patch of Package erlang
From 2a3b7f1fa271c5d9d6028add1fc7ae0e70133aec Mon Sep 17 00:00:00 2001
From: Raimo Niskanen <raimo@erlang.org>
Date: Mon, 17 Aug 2020 10:45:21 +0200
Subject: [PATCH] Always renew active,once after a discovery response
Since we got a message we had active,once before it was received,
so restore active,once regardless of if the discovery response
was good or not.
---
lib/snmp/src/agent/snmpa_net_if.erl | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/snmp/src/agent/snmpa_net_if.erl b/lib/snmp/src/agent/snmpa_net_if.erl
index c1f7c6b424..4ecf833963 100644
--- a/lib/snmp/src/agent/snmpa_net_if.erl
+++ b/lib/snmp/src/agent/snmpa_net_if.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2004-2019. All Rights Reserved.
+%% Copyright Ericsson AB 2004-2020. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -729,9 +729,9 @@ handle_discovery_response(
_From,
#pdu{request_id = ReqId} = Pdu,
ManagerEngineId) ->
+ active_once(Socket),
case lists:keyfind(ReqId, 1, S#state.reqs) of
{ReqId, Pid} ->
- active_once(Socket),
Pid ! {snmp_discovery_response_received, Pdu, ManagerEngineId},
%% XXX Strange... Reqs from this Pid should be reaped
%% at process exit by clear_reqs/2 so the following
@@ -748,7 +748,6 @@ handle_discovery_response(
case (length(DiscoReqs) =:= 2) of
true ->
[{_, Pid}, _] = DiscoReqs,
- active_once(Socket),
Pid ! {snmp_discovery_response_received, Pdu,
ManagerEngineId},
NReqs = S#state.reqs -- DiscoReqs,
--
2.26.2