From f66f12e2d0014ad14d663fb1a0dafaa665bff303 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Wed, 18 Jul 2018 16:23:28 +0200 Subject: Fix function_clause when sending a request after an outgoing DPA After DPR, the intention is that outgoing answers are sent and outgoing requests are discarded. This was the case when the DPR was outgoing, but if it was incoming then a subsequent outgoing request resulted in a function_clause, bringing down the diameter_peer_fsm gen_server associated with the transport connection in question. With diameter_tcp/sctp, the failure can result in the connection being reset before the peer closes it in response to DPA, but is otherwise harmless since DPR means that the connection is already on its way down. --- lib/diameter/src/base/diameter_peer_fsm.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/diameter/src/base/diameter_peer_fsm.erl b/lib/diameter/src/base/diameter_peer_fsm.erl index d99f11a697..cf5e7f21d3 100644 --- a/lib/diameter/src/base/diameter_peer_fsm.erl +++ b/lib/diameter/src/base/diameter_peer_fsm.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2010-2017. All Rights Reserved. +%% Copyright Ericsson AB 2010-2018. 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. @@ -901,7 +901,7 @@ outgoing(#diameter_packet{header = #diameter_header{is_request = false}} ok; %% Outgoing request: discard. -outgoing(Msg, #state{dpr = {_,_,_}}) -> +outgoing(Msg, #state{}) -> invalid(false, send_after_dpr, header(Msg)). header(#diameter_packet{header = H}) -> -- cgit v1.2.3 From c812ac6f9ca37d03dba08d947bcb723585682ee9 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Mon, 10 Sep 2018 10:27:35 +0200 Subject: Update appup for 21.1 OTP-15198 Fix function_clause when sending a request after outgoing DPA --- lib/diameter/src/diameter.appup.src | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/diameter/src/diameter.appup.src b/lib/diameter/src/diameter.appup.src index 3389f11937..51830f5276 100644 --- a/lib/diameter/src/diameter.appup.src +++ b/lib/diameter/src/diameter.appup.src @@ -58,7 +58,8 @@ {"2.1.1", [{restart_application, diameter}]}, %% 20.1.2 {"2.1.2", [{restart_application, diameter}]}, %% 20.1.3 {"2.1.3", [{restart_application, diameter}]}, %% 20.2 - {"2.1.4", [{restart_application, diameter}]} %% 20.3 + {"2.1.4", [{restart_application, diameter}]}, %% 20.3 + {"2.1.5", [{update, diameter_peer_fsm}]} %% 21.0 ], [ {"0.9", [{restart_application, diameter}]}, @@ -98,6 +99,7 @@ {"2.1.1", [{restart_application, diameter}]}, {"2.1.2", [{restart_application, diameter}]}, {"2.1.3", [{restart_application, diameter}]}, - {"2.1.4", [{restart_application, diameter}]} + {"2.1.4", [{restart_application, diameter}]}, + {"2.1.5", [{update, diameter_peer_fsm}]} ] }. -- cgit v1.2.3 From 646bf732bfcc8dfd77c15d009b959b7c86e867bc Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Mon, 10 Sep 2018 10:29:05 +0200 Subject: vsn -> 2.1.6 --- lib/diameter/vsn.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'lib') diff --git a/lib/diameter/vsn.mk b/lib/diameter/vsn.mk index 3081034df9..8c75c9e55e 100644 --- a/lib/diameter/vsn.mk +++ b/lib/diameter/vsn.mk @@ -17,5 +17,5 @@ # %CopyrightEnd% APPLICATION = diameter -DIAMETER_VSN = 2.1.5 +DIAMETER_VSN = 2.1.6 APP_VSN = $(APPLICATION)-$(DIAMETER_VSN)$(PRE_VSN) -- cgit v1.2.3