From 8cece79b77952c991e62ae595bcf71cde016a052 Mon Sep 17 00:00:00 2001
From: Erlang/OTP
+ Fix handling of 5014 (INVALID_AVP_LENGTH) errors.
++ This was in some cases reported as 3009 + (INVALID_AVP_BITS).
++ Note that the correction is partially implemented in + modules generated by diameterc(1): a dictionary file must + be recompiled for the correction to apply to any messages + it defines.
++ Own Id: OTP-11007
++ Fix faulty capitalization in release notes.
+
+ Diameter = the protocol.
diameter = the Erlang
+ application.
+ Own Id: OTP-11014
++ Fix watchdog memory leak.
++ Entries were not removed from a service-specific ets + table, causing them to be orphaned at connection + reestablishment for listening transports, and + diameter:remove_transport/2 for both listening and + connecting transports.
++ The fault was introduced by OTP-10692 in diameter-1.4.1 + (R16B).
++ Own Id: OTP-11019 Aux Id: OTP-10692
++ Fix decode failure on AVP Length < 8.
++ The failure caused the message in question to be + discarded.
++ Own Id: OTP-11026
++ Respect Host-IP-Address configuration.
++ Addresses returned from a transport module were always + used to populate Host-IP-Address AVP's in an outgoing + CER/CEA, which precluded the sending of a VIP address. + Transport addresses are now only used if Host-IP-Address + is unspecified.
++ Own Id: OTP-11045
++ Fix mkdir race.
++ Install could fail if examples/code and examples/dict + were created in parallel. Noticed on FreeBSD.
++ Own Id: OTP-11051
++ Fix recognition of 5001 on mandatory AVP's.
++ An AVP setting the M-bit was not regarded as erroneous if + it was defined in the dictionary in question and its + container (message or Grouped AVP) had an 'AVP' field. + It's now regarded as a 5001 error (AVP_UNSUPPORTED), as + in the case that the AVP is not defined.
++ Note that the correction is partially implemented in + modules generated by diameterc(1): a dictionary file must + be recompiled for the correction to apply to any messages + it defines.
++ Own Id: OTP-11087
++ Fix setting of Failed-AVP on handle_request + {answer_message, 5xxx} return.
++ Failed-AVP was never in the outgoing answer-message. It + is now set with the AVP from the first entry with the + specified Result-Code in the errors field of the incoming + diameter_packet, if found.
++ Own Id: OTP-11092
++ Fix watchdog function_clause
++ A listening transport on a service that allowed multiple + connections to the same peer could result in a + function_clause error in module diameter_watchdog. The + resulting crash was harmless but unseemly.
++ Thanks to Aleksander Nycz.
++ Own Id: OTP-11115
++ Fix population of Failed-AVP.
++ In cases in which diameter populated this AVP, many + values were sent instead of one as suggested by RFC 6733. + This was partially corrected by OTP-11007.
++ Own Id: OTP-11127 Aux Id: OTP-11007
++ Fix list-valued Vendor-Specific-Application-Id config
++ R16B (specifically, OTP-10760) broke the handling of such + configuration, resulting in a function clause error if + the list was not of length 3, and faulty interpretation + of the list's contents otherwise. Only record-valued + configuration was properly interpreted.
++ Own Id: OTP-11165
++ Allow peer connections to be shared between Erlang nodes + for the purpose of sending outgoing requests.
++ A diameter_app(3) pick_peer/4 callback gets a list of + remote candidates as argument, allowing a callback on one + node to select a transport connection established on + another node. The service_opt() share_peers controls the + extent to which local connections are shared with remote + nodes. The service_opt() use_shared_peers controls the + extent to which connections shared from remote nodes are + utilized on the local node.
++ Own Id: OTP-9610
++ Allow listening diameter_{tcp,sctp} transports to be + configured with remote addresses.
++ Option 'accept' allows remote addresses to be configured + as tuples or regular expressions. Remote addresses are + matched against the configured values at connection + establishment, any non-matching address causing the + connection to be aborted.
++ Own Id: OTP-10893
++ Detect more transport_opt() configuration errors at + diameter:add_transport/2.
++ Many errors would previously not be detected until + transport start, diameter:add_transport/2 returning 'ok' + but transport connections failing to be established. An + error tuple is now returned.
++ Own Id: OTP-10972
++ Make explicit local address configuration optional in + diameter_tcp:start/3.
++ The default address (as determined by gen_tcp) is now + used when a local address is not explicitly configured.
++ Own Id: OTP-10986
++ Improve handling of unrecognized service options.
++ Such options were silently ignored by + diameter:start_service/2. An error tuple is now returned.
++ Own Id: OTP-11017
++ Don't send default Inband-Security-Id in CER/CEA.
++ RFC 6733 recommends against the use of + Inband-Security-Id. Only send a value that differs from + the default, NO_INBAND_SECURITY = 0.
++ Own Id: OTP-11050
++ Make spawn options for request processes configurable.
++ Own Id: OTP-11060
+