From ead9e5325c52a7271796c9e3a053d50cd86a189c Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Wed, 3 Oct 2012 11:41:29 +0200 Subject: Add missing clause for peer failover diameter_codec:sequence_numbers/1 is called on an already extracted pair of sequence numbers in the case of failover. --- lib/diameter/src/base/diameter_codec.erl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/diameter/src/base/diameter_codec.erl b/lib/diameter/src/base/diameter_codec.erl index 421e280422..a94d37f7a8 100644 --- a/lib/diameter/src/base/diameter_codec.erl +++ b/lib/diameter/src/base/diameter_codec.erl @@ -333,6 +333,9 @@ decode_header(_) -> %% wraparound counter. The 8-bit counter is incremented each time the %% system is restarted. +sequence_numbers({_,_} = T) -> + T; + sequence_numbers(#diameter_packet{bin = Bin}) when is_binary(Bin) -> sequence_numbers(Bin); -- cgit v1.2.3 From de4669e2cb16f3a986cdf1df3f1757d8b8c9b646 Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Tue, 16 Oct 2012 01:23:43 +0200 Subject: Allow for no diameter on remote node in connection guard The guard is against a connection to a given peer already existing but fails if diameter is not running on a remote node. Note that the guard itself is to be made configurable in R15B03 (OTP-10493) to allow multiple connections per peer. --- lib/diameter/src/base/diameter_peer_fsm.erl | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/diameter/src/base/diameter_peer_fsm.erl b/lib/diameter/src/base/diameter_peer_fsm.erl index 302540e76b..035bdad632 100644 --- a/lib/diameter/src/base/diameter_peer_fsm.erl +++ b/lib/diameter/src/base/diameter_peer_fsm.erl @@ -967,12 +967,16 @@ dpa_timer() -> %% both fail to do so this isn't foolproof. register_everywhere(T) -> - diameter_reg:add_new(T) - andalso unregistered(T). + diameter_reg:add_new(T) andalso unregistered(T). unregistered(T) -> {ResL, _} = rpc:multicall(?MODULE, match, [{node(), T}]), - lists:all(fun(L) -> [] == L end, ResL). + lists:all(fun nomatch/1, ResL). + +nomatch({badrpc, {'EXIT', {undef, _}}}) -> %% no diameter on remote node + true; +nomatch(L) -> + [] == L. match({Node, _}) when Node == node() -> -- cgit v1.2.3 From 2e24f7b2bc3c0266c05450fdc08974a1ee7425ff Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Mon, 5 Nov 2012 17:06:10 +0100 Subject: Update appup for OTP-10461/10550 --- lib/diameter/src/base/diameter.appup.src | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/diameter/src/base/diameter.appup.src b/lib/diameter/src/base/diameter.appup.src index 9b2a7d18ab..4de87c1023 100644 --- a/lib/diameter/src/base/diameter.appup.src +++ b/lib/diameter/src/base/diameter.appup.src @@ -38,12 +38,16 @@ %% unmodified but including modified diameter.hrl {load, diameter_callback}, {load, diameter_capx}, - {load, diameter_types}]} + {load, diameter_types}]}, + {"1.2", [{load, diameter_codec}, + {load, diameter_peer_fsm}]} ], [ {"0.9", [{restart_application, diameter}]}, {"0.10", [{restart_application, diameter}]}, {"1.0", [{restart_application, diameter}]}, - {"1.1", [{restart_application, diameter}]} + {"1.1", [{restart_application, diameter}]}, + {"1.2", [{load, diameter_codec}, + {load, diameter_peer_fsm}]} ] }. -- cgit v1.2.3 From eaa782f30b3b281a9c652e17ba8c1730f99e957d Mon Sep 17 00:00:00 2001 From: Anders Svensson Date: Mon, 5 Nov 2012 17:07:14 +0100 Subject: vsn -> 1.2.1 --- lib/diameter/vsn.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/diameter/vsn.mk b/lib/diameter/vsn.mk index 48e6596e72..a67b468511 100644 --- a/lib/diameter/vsn.mk +++ b/lib/diameter/vsn.mk @@ -18,7 +18,7 @@ # %CopyrightEnd% APPLICATION = diameter -DIAMETER_VSN = 1.2 +DIAMETER_VSN = 1.2.1 PRE_VSN = APP_VSN = "$(APPLICATION)-$(DIAMETER_VSN)$(PRE_VSN)" -- cgit v1.2.3