aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/src/base
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2015-03-20 02:03:31 +0100
committerAnders Svensson <[email protected]>2015-03-24 11:02:05 +0100
commit35f564094033ea2eb4c5b01d0d0b1c0d629ea5b1 (patch)
tree3c03cce0511a58276153da3a339e0fdf049b2852 /lib/diameter/src/base
parentb7d8668ea5a4215da900bfcd2a1dbd51384cb0c7 (diff)
downloadotp-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/base')
-rw-r--r--lib/diameter/src/base/diameter_types.erl7
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),