aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
diff options
context:
space:
mode:
authorAnders Svensson <anders@erlang.org>2014-05-29 09:18:10 +0200
committerAnders Svensson <anders@erlang.org>2014-05-29 15:06:58 +0200
commite22d0c9c9d1bc18a68a8eefca6f87edde66c3d86 (patch)
tree3ba7c042657e03b980d777f9b6d4a4b3fa571a56 /lib/diameter
parent1049490b7b146e3d2105d05e41ea6f740bae9dda (diff)
downloadotp-e22d0c9c9d1bc18a68a8eefca6f87edde66c3d86.tar.gz
otp-e22d0c9c9d1bc18a68a8eefca6f87edde66c3d86.tar.bz2
otp-e22d0c9c9d1bc18a68a8eefca6f87edde66c3d86.zip
Fix broken check for undefined AVPs in @codec and @custom_types
Instead of detecting the error, code generation failed when attempting to lookup the type of an undefined AVP.
Diffstat (limited to 'lib/diameter')
-rw-r--r--lib/diameter/src/compiler/diameter_dict_util.erl9
1 files changed, 4 insertions, 5 deletions
diff --git a/lib/diameter/src/compiler/diameter_dict_util.erl b/lib/diameter/src/compiler/diameter_dict_util.erl
index 136bba16cb..cf4741e563 100644
--- a/lib/diameter/src/compiler/diameter_dict_util.erl
+++ b/lib/diameter/src/compiler/diameter_dict_util.erl
@@ -731,8 +731,8 @@ no_messages_without_id(Dict) ->
%% explode/4
%%
-%% {avp_vendor_id, AvpName} -> [Lineno, Id::integer()]
-%% {custom_types|codecs|inherits, AvpName} -> [Lineno, Mod::string()]
+%% {avp_vendor_id, AvpName} -> [Lineno, Id::integer()]
+%% {custom|inherits, AvpName} -> [Lineno, Mod::string()]
explode({_, Line, AvpName}, Dict, {_, _, X} = T, K) ->
true = K /= avp_vendor_id orelse is_uint32(T, [K]),
@@ -1094,7 +1094,7 @@ explode_avps([{_, Line, Name} | Toks], Dict) ->
Vid = avp_vendor_id(Flags, Name, Line, Dict),
%% An AVP is uniquely defined by its AVP code and vendor id (if any).
- %% Ensure there are no duplicate.
+ %% Ensure there are no duplicates.
store_new({avp_types, {Code, Vid}},
[Line, Name],
Dict,
@@ -1302,8 +1302,7 @@ x({K, {Name, AvpName}}, [Line | _], Dict)
%% Ditto.
x({K, AvpName}, [Line | _], Dict)
when K == avp_vendor_id;
- K == custom_types;
- K == codecs ->
+ K == custom ->
true = avp_is_defined(AvpName, Dict, Line);
%% Ensure that all local AVP's of type Grouped are also present in @grouped.