diff options
author | Anders Svensson <[email protected]> | 2017-07-10 20:32:02 +0200 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2017-08-03 17:14:29 +0200 |
commit | 246a5d8611e258119fc6bdc6c52772539c8b09ca (patch) | |
tree | a000ec4a08612fe3cd0d658f6db8478807be84ce /lib/diameter/src/base | |
parent | dec19d6f572a564502fb81c8f1ada5a470429d97 (diff) | |
download | otp-246a5d8611e258119fc6bdc6c52772539c8b09ca.tar.gz otp-246a5d8611e258119fc6bdc6c52772539c8b09ca.tar.bz2 otp-246a5d8611e258119fc6bdc6c52772539c8b09ca.zip |
Don't count AVPs unnecessarily at encode
Stop counting when there can be no arity errors.
Diffstat (limited to 'lib/diameter/src/base')
-rw-r--r-- | lib/diameter/src/base/diameter_gen.erl | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/diameter/src/base/diameter_gen.erl b/lib/diameter/src/base/diameter_gen.erl index 313be5f215..a7dc3aaec3 100644 --- a/lib/diameter/src/base/diameter_gen.erl +++ b/lib/diameter/src/base/diameter_gen.erl @@ -127,6 +127,10 @@ enc(_, AvpName, _, Min, N, _, [], _, _) enc(_, _, _, _, _, _, [], _, _) -> []; +enc(Name, AvpName, H, Min, N, '*', Vs, Opts, Mod) + when Min =< N -> + [enc1(Name, AvpName, H, V, Opts, Mod) || V <- Vs]; + enc(_, AvpName, _, _, N, Max, _, _, _) when Max =< N -> ?THROW([repeated_avp_excessive_arity, AvpName, Max]); |