aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2015-12-20 16:23:20 +0100
committerAnders Svensson <[email protected]>2015-12-20 16:28:19 +0100
commit516708326db6887190425f5c020e66dfe3666a67 (patch)
tree9f16c7c28302fcafb680f97d8a9624103afb1a6e
parent42493ad886f9b1b3e32e6f1bef084275a4480096 (diff)
downloadotp-516708326db6887190425f5c020e66dfe3666a67.tar.gz
otp-516708326db6887190425f5c020e66dfe3666a67.tar.bz2
otp-516708326db6887190425f5c020e66dfe3666a67.zip
Be resilient to diameter_service state upgrades
By not failing in code that looks up state: pick_peer and service_info.
-rw-r--r--lib/diameter/src/base/diameter_service.erl9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/diameter/src/base/diameter_service.erl b/lib/diameter/src/base/diameter_service.erl
index a31cef2c8c..ed22ef7801 100644
--- a/lib/diameter/src/base/diameter_service.erl
+++ b/lib/diameter/src/base/diameter_service.erl
@@ -206,7 +206,7 @@ stop_transport(SvcName, [_|_] = Refs) ->
info(SvcName, Item) ->
case lookup_state(SvcName) of
- [#state{} = S] ->
+ [S] ->
service_info(Item, S);
[] ->
undefined
@@ -215,7 +215,12 @@ info(SvcName, Item) ->
%% lookup_state/1
lookup_state(SvcName) ->
- ets:lookup(?STATE_TABLE, SvcName).
+ case ets:lookup(?STATE_TABLE, SvcName) of
+ [#state{}] = L ->
+ L;
+ _ ->
+ []
+ end.
%% ---------------------------------------------------------------------------
%% # subscribe/1