<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/diameter/src/base, branch OTP-18.0.2</title>
<subtitle>Mirror of Erlang/OTP repository.
</subtitle>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/'/>
<entry>
<title>Merge branch 'bruce/change-license'</title>
<updated>2015-06-22T13:44:54+00:00</updated>
<author>
<name>Bruce Yinhe</name>
<email>bruce@erlang.org</email>
</author>
<published>2015-06-22T13:42:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8f63667b316cdff10e666b8f5b0b6a92bd722e5a'/>
<id>8f63667b316cdff10e666b8f5b0b6a92bd722e5a</id>
<content type='text'>
OTP-12845

* bruce/change-license:
  fix errors caused by changed line numbers
  Change license text to APLv2
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OTP-12845

* bruce/change-license:
  fix errors caused by changed line numbers
  Change license text to APLv2
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/18/OTP-12588'</title>
<updated>2015-06-21T22:41:09+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-21T22:41:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=29bbf6a23a13d3e5956e77e7298515e85170d52a'/>
<id>29bbf6a23a13d3e5956e77e7298515e85170d52a</id>
<content type='text'>
* anders/diameter/18/OTP-12588:
  vsn -&gt; 1.10
  Remove dead upgrade-related code
  Update appup for 18
  Fix release note typo
  Fix comment typo
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/18/OTP-12588:
  vsn -&gt; 1.10
  Remove dead upgrade-related code
  Update appup for 18
  Fix release note typo
  Fix comment typo
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/sctp/OTP-12768'</title>
<updated>2015-06-21T22:40:56+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-21T22:40:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=72f5c50ae1929cbbbdafe073477214e3c4015ef2'/>
<id>72f5c50ae1929cbbbdafe073477214e3c4015ef2</id>
<content type='text'>
* anders/diameter/sctp/OTP-12768:
  Fix connection timeouts in test transports
  Fix start order of alternate transports
  Log discarded answers
  Ensure accepting processes are first in, first out
  Remove upgrade-related code
  Be less parallel in traffic suite
  Increase send/receive buffers for testsuite SCTP listeners
  Decrease unnecessarily long testsuite timetraps
  Simplify accepting transport start
  Simplify peeloff signaling
  Simplify socket close at terminate
  Don't monitor listener after peeloff
  Don't receive initial messages out of order
  Remove assumption that SCTP association ids will be unique
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/sctp/OTP-12768:
  Fix connection timeouts in test transports
  Fix start order of alternate transports
  Log discarded answers
  Ensure accepting processes are first in, first out
  Remove upgrade-related code
  Be less parallel in traffic suite
  Increase send/receive buffers for testsuite SCTP listeners
  Decrease unnecessarily long testsuite timetraps
  Simplify accepting transport start
  Simplify peeloff signaling
  Simplify socket close at terminate
  Don't monitor listener after peeloff
  Don't receive initial messages out of order
  Remove assumption that SCTP association ids will be unique
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/grouped_errors/OTP-12721'</title>
<updated>2015-06-21T22:39:48+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-21T22:39:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5fff4543e890229527c2b8875fbc96aa88c87ad9'/>
<id>5fff4543e890229527c2b8875fbc96aa88c87ad9</id>
<content type='text'>
* anders/diameter/grouped_errors/OTP-12721:
  Fix decode of Grouped AVPs containing errors
  Simplify logic
  Simplify logic
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/grouped_errors/OTP-12721:
  Fix decode of Grouped AVPs containing errors
  Simplify logic
  Simplify logic
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix start order of alternate transports</title>
<updated>2015-06-21T09:03:07+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-21T07:55:17+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=fc9e8a6bade31c7216a8d6a194ba221f6f15459c'/>
<id>fc9e8a6bade31c7216a8d6a194ba221f6f15459c</id>
<content type='text'>
A transport configured with diameter:add_transport/2 can be passed
multiple transport_module/transport_config tuples in order to specify
alternate configuration, modules being attempted in order until one
succeeds. This is primarily for the connecting case, to allow a
transport to be configured to first attempt connection over SCTP, and
then TCP in case SCTP fails, with configuration like that documented:

  {transport_module, diameter_sctp},
  {transport_config, [...], 5000},
  {transport_module, diameter_tcp},
  {transport_config, [...]}

If the options are the same in both cases, another possibility would be
configuration like this, which attaches the same transport_config to
both modules:

  {transport_module, diameter_sctp},
  {transport_module, diameter_tcp},
  {transport_config, [...], 5000},

However, in this case the start order was reversed relative to the
documented order: first tcp, then sctp. This commit restores the
intended order.

OTP-12851
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A transport configured with diameter:add_transport/2 can be passed
multiple transport_module/transport_config tuples in order to specify
alternate configuration, modules being attempted in order until one
succeeds. This is primarily for the connecting case, to allow a
transport to be configured to first attempt connection over SCTP, and
then TCP in case SCTP fails, with configuration like that documented:

  {transport_module, diameter_sctp},
  {transport_config, [...], 5000},
  {transport_module, diameter_tcp},
  {transport_config, [...]}

If the options are the same in both cases, another possibility would be
configuration like this, which attaches the same transport_config to
both modules:

  {transport_module, diameter_sctp},
  {transport_module, diameter_tcp},
  {transport_config, [...], 5000},

However, in this case the start order was reversed relative to the
documented order: first tcp, then sctp. This commit restores the
intended order.

OTP-12851
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove dead upgrade-related code</title>
<updated>2015-06-20T13:12:05+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-17T23:44:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=2ee2148bf9478ab4a1c8ec715ccc3579e19a6d11'/>
<id>2ee2148bf9478ab4a1c8ec715ccc3579e19a6d11</id>
<content type='text'>
Not needed with the parent commit's restart_application.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not needed with the parent commit's restart_application.
</pre>
</div>
</content>
</entry>
<entry>
<title>Log discarded answers</title>
<updated>2015-06-20T12:29:30+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-19T13:12:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1f483bd5eb6371a1bf2517188658cc4a9cb57cae'/>
<id>1f483bd5eb6371a1bf2517188658cc4a9cb57cae</id>
<content type='text'>
To diameter_lib:log/4, which was last motivated in commit 39acfdb0.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To diameter_lib:log/4, which was last motivated in commit 39acfdb0.
</pre>
</div>
</content>
</entry>
<entry>
<title>Change license text to APLv2</title>
<updated>2015-06-18T09:31:02+00:00</updated>
<author>
<name>Bruce Yinhe</name>
<email>bruce@erlang.org</email>
</author>
<published>2015-06-18T09:31:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=738c34d4bb8f1a3811acd00af8c6c12107f8315b'/>
<id>738c34d4bb8f1a3811acd00af8c6c12107f8315b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix decode of Grouped AVPs containing errors</title>
<updated>2015-06-17T22:41:37+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-06-15T15:46:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7f4f9583bb1245c27ca58d88fe6862498a2df1f2'/>
<id>7f4f9583bb1245c27ca58d88fe6862498a2df1f2</id>
<content type='text'>
RFC 6733 says this of Failed-AVP in 7.5:

   In the case where the offending AVP is embedded within a Grouped AVP,
   the Failed-AVP MAY contain the grouped AVP, which in turn contains
   the single offending AVP.  The same method MAY be employed if the
   grouped AVP itself is embedded in yet another grouped AVP and so on.
   In this case, the Failed-AVP MAY contain the grouped AVP hierarchy up
   to the single offending AVP.  This enables the recipient to detect
   the location of the offending AVP when embedded in a group.

It says this of DIAMETER_INVALID_AVP_LENGTH in 7.1.5:

      The request contained an AVP with an invalid length.  A Diameter
      message indicating this error MUST include the offending AVPs
      within a Failed-AVP AVP.  In cases where the erroneous AVP length
      value exceeds the message length or is less than the minimum AVP
      header length, it is sufficient to include the offending AVP
      header and a zero filled payload of the minimum required length
      for the payloads data type.  If the AVP is a Grouped AVP, the
      Grouped AVP header with an empty payload would be sufficient to
      indicate the offending AVP.  In the case where the offending AVP
      header cannot be fully decoded when the AVP length is less than
      the minimum AVP header length, it is sufficient to include an
      offending AVP header that is formulated by padding the incomplete
      AVP header with zero up to the minimum AVP header length.

The AVPs placed in the errors field of a diameter_packet record are
intended to be appropriate for inclusion in a Failed-AVP, but neither of
the above paragraphs has been followed in the Grouped case: the entire
faulty AVP (non-faulty components and all) has been included. This made
it impossible to identify the actual faulty AVP in all but simple case.

This commit adapts the decode to the RFC, and implements the suggested
single faulty AVP, nested in as many Grouped containers as required.
The best-effort decode of Failed-AVP in answer messages, initially
implemented in commit 0f9cdbaf, is also applied.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RFC 6733 says this of Failed-AVP in 7.5:

   In the case where the offending AVP is embedded within a Grouped AVP,
   the Failed-AVP MAY contain the grouped AVP, which in turn contains
   the single offending AVP.  The same method MAY be employed if the
   grouped AVP itself is embedded in yet another grouped AVP and so on.
   In this case, the Failed-AVP MAY contain the grouped AVP hierarchy up
   to the single offending AVP.  This enables the recipient to detect
   the location of the offending AVP when embedded in a group.

It says this of DIAMETER_INVALID_AVP_LENGTH in 7.1.5:

      The request contained an AVP with an invalid length.  A Diameter
      message indicating this error MUST include the offending AVPs
      within a Failed-AVP AVP.  In cases where the erroneous AVP length
      value exceeds the message length or is less than the minimum AVP
      header length, it is sufficient to include the offending AVP
      header and a zero filled payload of the minimum required length
      for the payloads data type.  If the AVP is a Grouped AVP, the
      Grouped AVP header with an empty payload would be sufficient to
      indicate the offending AVP.  In the case where the offending AVP
      header cannot be fully decoded when the AVP length is less than
      the minimum AVP header length, it is sufficient to include an
      offending AVP header that is formulated by padding the incomplete
      AVP header with zero up to the minimum AVP header length.

The AVPs placed in the errors field of a diameter_packet record are
intended to be appropriate for inclusion in a Failed-AVP, but neither of
the above paragraphs has been followed in the Grouped case: the entire
faulty AVP (non-faulty components and all) has been included. This made
it impossible to identify the actual faulty AVP in all but simple case.

This commit adapts the decode to the RFC, and implements the suggested
single faulty AVP, nested in as many Grouped containers as required.
The best-effort decode of Failed-AVP in answer messages, initially
implemented in commit 0f9cdbaf, is also applied.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'maint'</title>
<updated>2015-05-30T08:31:47+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2015-05-30T08:31:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=8260f916c2ab9b9dff9752b47e47d07ac3d95c92'/>
<id>8260f916c2ab9b9dff9752b47e47d07ac3d95c92</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
