diff options
author | Anders Svensson <[email protected]> | 2015-03-20 02:03:31 +0100 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2015-03-24 11:02:05 +0100 |
commit | 35f564094033ea2eb4c5b01d0d0b1c0d629ea5b1 (patch) | |
tree | 3c03cce0511a58276153da3a339e0fdf049b2852 /lib/diameter/src | |
parent | b7d8668ea5a4215da900bfcd2a1dbd51384cb0c7 (diff) | |
download | otp-35f564094033ea2eb4c5b01d0d0b1c0d629ea5b1.tar.gz otp-35f564094033ea2eb4c5b01d0d0b1c0d629ea5b1.tar.bz2 otp-35f564094033ea2eb4c5b01d0d0b1c0d629ea5b1.zip |
Reject transport=udp;protocol=diameter at DiameterURI encode
Both RFC 3588 and 6733 disallow the combination. Make its encode fail.
Diffstat (limited to 'lib/diameter/src')
-rw-r--r-- | lib/diameter/src/base/diameter_types.erl | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/diameter/src/base/diameter_types.erl b/lib/diameter/src/base/diameter_types.erl index 28a0635c57..8497329c20 100644 --- a/lib/diameter/src/base/diameter_types.erl +++ b/lib/diameter/src/base/diameter_types.erl @@ -311,7 +311,12 @@ is_integer(PN), 0 =< PN, (T == tcp orelse T == sctp orelse T == udp), - (P == diameter orelse P == radius orelse P == 'tacacs+') -> + (P == diameter orelse P == radius orelse P == 'tacacs+'), + (P /= diameter orelse T /= udp) -> + #diameter_uri{port = PN0, + transport = T0, + protocol = P0} + = #diameter_uri{}, iolist_to_binary([atom_to_list(Type), "://", DN, ":", integer_to_list(PN), ";transport=", atom_to_list(T), |