diff options
author | Erlang/OTP <[email protected]> | 2012-11-05 17:27:18 +0100 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2012-11-05 17:27:18 +0100 |
commit | 210d354d305a9672b4725dfe7b98bdbbdb18cf85 (patch) | |
tree | 01593928c3c6e13ea86f22a75e26ff9445142880 | |
parent | d2258a88c708762083572faaaaf3ea3304526f56 (diff) | |
parent | eaa782f30b3b281a9c652e17ba8c1730f99e957d (diff) | |
download | otp-210d354d305a9672b4725dfe7b98bdbbdb18cf85.tar.gz otp-210d354d305a9672b4725dfe7b98bdbbdb18cf85.tar.bz2 otp-210d354d305a9672b4725dfe7b98bdbbdb18cf85.zip |
Merge branch 'anders/diameter/patch/R15B02/OTP-10555' into maint-r15
* anders/diameter/patch/R15B02/OTP-10555:
vsn -> 1.2.1
Update appup for OTP-10461/10550
Allow for no diameter on remote node in connection guard
Add missing clause for peer failover
-rw-r--r-- | lib/diameter/src/base/diameter.appup.src | 8 | ||||
-rw-r--r-- | lib/diameter/src/base/diameter_codec.erl | 3 | ||||
-rw-r--r-- | lib/diameter/src/base/diameter_peer_fsm.erl | 10 | ||||
-rw-r--r-- | lib/diameter/vsn.mk | 2 |
4 files changed, 17 insertions, 6 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}]} ] }. 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); 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() -> 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)" |