aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2012-11-05 17:27:18 +0100
committerErlang/OTP <[email protected]>2012-11-05 17:27:18 +0100
commit210d354d305a9672b4725dfe7b98bdbbdb18cf85 (patch)
tree01593928c3c6e13ea86f22a75e26ff9445142880
parentd2258a88c708762083572faaaaf3ea3304526f56 (diff)
parenteaa782f30b3b281a9c652e17ba8c1730f99e957d (diff)
downloadotp-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.src8
-rw-r--r--lib/diameter/src/base/diameter_codec.erl3
-rw-r--r--lib/diameter/src/base/diameter_peer_fsm.erl10
-rw-r--r--lib/diameter/vsn.mk2
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)"