aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2012-10-16 01:23:43 +0200
committerAnders Svensson <[email protected]>2012-11-05 11:56:52 +0100
commit4aecd733017411b3975ef38aea37f0532cc0b324 (patch)
treed18b5afedb28ae49367d1ad2c06c379d16e34547 /lib/diameter
parent618642cc8bf057294f86eadfb7c0968c089a0dac (diff)
downloadotp-4aecd733017411b3975ef38aea37f0532cc0b324.tar.gz
otp-4aecd733017411b3975ef38aea37f0532cc0b324.tar.bz2
otp-4aecd733017411b3975ef38aea37f0532cc0b324.zip
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.
Diffstat (limited to 'lib/diameter')
-rw-r--r--lib/diameter/src/base/diameter_peer_fsm.erl7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/diameter/src/base/diameter_peer_fsm.erl b/lib/diameter/src/base/diameter_peer_fsm.erl
index 297a5d7709..3f4945f7a6 100644
--- a/lib/diameter/src/base/diameter_peer_fsm.erl
+++ b/lib/diameter/src/base/diameter_peer_fsm.erl
@@ -1015,7 +1015,12 @@ add(false, T) ->
unregistered(Nodes, T) ->
{ResL, _} = rpc:multicall(Nodes, ?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/1