diff options
author | Anders Svensson <anders@erlang.org> | 2014-05-29 09:18:10 +0200 |
---|---|---|
committer | Anders Svensson <anders@erlang.org> | 2014-05-29 15:06:58 +0200 |
commit | e22d0c9c9d1bc18a68a8eefca6f87edde66c3d86 (patch) | |
tree | 3ba7c042657e03b980d777f9b6d4a4b3fa571a56 /lib/diameter | |
parent | 1049490b7b146e3d2105d05e41ea6f740bae9dda (diff) | |
download | otp-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.erl | 9 |
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. |