<feed xmlns='http://www.w3.org/2005/Atom'>
<title>otp.git/lib/diameter/src/base, branch OTP-19.1.1</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 'anders/diameter/19.1/OTP-13838' into maint</title>
<updated>2016-09-12T20:31:33+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-12T20:31:33+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=58cc6bb63216d66975b8b9a895c0596925a8571d'/>
<id>58cc6bb63216d66975b8b9a895c0596925a8571d</id>
<content type='text'>
* anders/diameter/19.1/OTP-13838:
  vsn -&gt; 1.12.1
  Update appup for 19.1
  Fix xmllint errors in documentation
  Remove documentation overkill
  Don't run traffic tests in parallel when {string_decode, true}
  Remove copyright from generated dictionary modules
  Fix dictionary function typo
  Fix dictionary typo in relay example
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/19.1/OTP-13838:
  vsn -&gt; 1.12.1
  Update appup for 19.1
  Fix xmllint errors in documentation
  Remove documentation overkill
  Don't run traffic tests in parallel when {string_decode, true}
  Remove copyright from generated dictionary modules
  Fix dictionary function typo
  Fix dictionary typo in relay example
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/failover/OTP-13412' into maint</title>
<updated>2016-09-12T20:31:26+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-12T20:31:26+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5620f7b8e8444bbaf5ad7ba17b842aae2a8f5d9d'/>
<id>5620f7b8e8444bbaf5ad7ba17b842aae2a8f5d9d</id>
<content type='text'>
* anders/diameter/failover/OTP-13412:
  Make peer failover more efficient
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/failover/OTP-13412:
  Make peer failover more efficient
</pre>
</div>
</content>
</entry>
<entry>
<title>Let unfortunate min_heap_size setting be disabled</title>
<updated>2016-09-11T12:45:01+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-09-07T21:05:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=392a0a77a9c4fc4c9bdca1c2e6599ce34f07c93b'/>
<id>392a0a77a9c4fc4c9bdca1c2e6599ce34f07c93b</id>
<content type='text'>
The setting in all diameter server processes has existed since the
beginning of time. Whether it's actually useful is questionable, but it
does lead to increased memory usage, especially if there are many peer
connections whose processes wouldn't otherwise be large. Let the setting
be disabled with -diameter min_heap_size false. (Or any value that isn't
a non-negative integer.)

The diameter application itself only calls
diameter_lib:spawn_opts(server, []), but let other arguments remain for
backwards compatibility, since diameter_lib:spawn_opts/2 has been abused
from outside of diameter.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The setting in all diameter server processes has existed since the
beginning of time. Whether it's actually useful is questionable, but it
does lead to increased memory usage, especially if there are many peer
connections whose processes wouldn't otherwise be large. Let the setting
be disabled with -diameter min_heap_size false. (Or any value that isn't
a non-negative integer.)

The diameter application itself only calls
diameter_lib:spawn_opts(server, []), but let other arguments remain for
backwards compatibility, since diameter_lib:spawn_opts/2 has been abused
from outside of diameter.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix dictionary function typo</title>
<updated>2016-08-25T22:21:01+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-08-25T15:51:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=d41cfa87e43725953b4eb3efca31413708b71ed4'/>
<id>d41cfa87e43725953b4eb3efca31413708b71ed4</id>
<content type='text'>
It's '#get-'/2, not 'get-'/2. Only failed if the dictionary in question
defined no Failed-AVP, which is rarely the case in practice.

Thanks to Ferenc Holzhauser.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It's '#get-'/2, not 'get-'/2. Only failed if the dictionary in question
defined no Failed-AVP, which is rarely the case in practice.

Thanks to Ferenc Holzhauser.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branch 'anders/diameter/rand/OTP-13664'</title>
<updated>2016-06-12T07:09:59+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-06-12T07:09:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c2861de76ca39217a0cf4fc284f8eeaf3f7d2477'/>
<id>c2861de76ca39217a0cf4fc284f8eeaf3f7d2477</id>
<content type='text'>
* anders/diameter/rand/OTP-13664:
  Use rand(3) instead of random(3)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* anders/diameter/rand/OTP-13664:
  Use rand(3) instead of random(3)
</pre>
</div>
</content>
</entry>
<entry>
<title>Use rand(3) instead of random(3)</title>
<updated>2016-06-11T16:49:42+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-06-11T10:42:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=c980e489d02417e1144d28958fe9abd4017f72a4'/>
<id>c980e489d02417e1144d28958fe9abd4017f72a4</id>
<content type='text'>
The latter is deprecated in OTP 19.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The latter is deprecated in OTP 19.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unnecessary no_auto_import</title>
<updated>2016-06-11T12:55:50+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-06-11T12:45:12+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=1e153ca0258c7f14d65c41873b2c2034dc607181'/>
<id>1e153ca0258c7f14d65c41873b2c2034dc607181</id>
<content type='text'>
Not difficult to avoid, and better without.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Not difficult to avoid, and better without.
</pre>
</div>
</content>
</entry>
<entry>
<title>Redo transport config server as a gen_server</title>
<updated>2016-06-11T12:55:50+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-06-11T10:05:55+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=b4b7e8a7a694b3473dcecdbf117e007ad22b8fb1'/>
<id>b4b7e8a7a694b3473dcecdbf117e007ad22b8fb1</id>
<content type='text'>
To properly handle system messages. Initially implemented in commit
5ca5fb71.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To properly handle system messages. Initially implemented in commit
5ca5fb71.
</pre>
</div>
</content>
</entry>
<entry>
<title>Close listening sockets at transport removal</title>
<updated>2016-05-30T06:56:15+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-05-18T12:39:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=5ca5fb71695ccdf7267007b8405f7a13497a2f17'/>
<id>5ca5fb71695ccdf7267007b8405f7a13497a2f17</id>
<content type='text'>
The transport interface documented in diameter_transport(3) is used to
start/stop accepting/connecting transport processes: they're started
with a function call, and told to die with their parent process. In the
accepting case, both diameter_tcp and diameter_sctp start a listening
process when the first accepting transport is started. However, there's
no way for a listening process to find out that that it should stop
listening when transport configuration is removed.

Both diameter_tcp and diameter_sctp have used a timer to terminate the
listening process after all existing accepting processes have died as a
consequence of transport removal. The problem with this is that nothing
stops a new client from connecting before this, and also that no new
transport can succeed in opening the same listening port (eg.
reconfiguration) until the old listener dies.

This commit solves the problem by adding diameter_reg:subscribe/2, to
allow callers to subscribe to messages about added/removed associations.
A call to diameter:add_transport/2 results in a new child process that
registers a term that a listening process subscribes to. Transport
removal results in the death of the child, and the resulting
notification to the listener causes the latter to close its socket and
terminate.

This is still an internal interface, but the subscription mechanism
should probably be made external  (eg. a diameter:subscribe/1 that can
be used to subscribe to specified messages), so that transport modules
other than diameter's own can make use of it. There is no support for
soft upgrade.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The transport interface documented in diameter_transport(3) is used to
start/stop accepting/connecting transport processes: they're started
with a function call, and told to die with their parent process. In the
accepting case, both diameter_tcp and diameter_sctp start a listening
process when the first accepting transport is started. However, there's
no way for a listening process to find out that that it should stop
listening when transport configuration is removed.

Both diameter_tcp and diameter_sctp have used a timer to terminate the
listening process after all existing accepting processes have died as a
consequence of transport removal. The problem with this is that nothing
stops a new client from connecting before this, and also that no new
transport can succeed in opening the same listening port (eg.
reconfiguration) until the old listener dies.

This commit solves the problem by adding diameter_reg:subscribe/2, to
allow callers to subscribe to messages about added/removed associations.
A call to diameter:add_transport/2 results in a new child process that
registers a term that a listening process subscribes to. Transport
removal results in the death of the child, and the resulting
notification to the listener causes the latter to close its socket and
terminate.

This is still an internal interface, but the subscription mechanism
should probably be made external  (eg. a diameter:subscribe/1 that can
be used to subscribe to specified messages), so that transport modules
other than diameter's own can make use of it. There is no support for
soft upgrade.
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't restart transport processes after transport removal</title>
<updated>2016-05-30T06:54:41+00:00</updated>
<author>
<name>Anders Svensson</name>
<email>anders@erlang.org</email>
</author>
<published>2016-05-18T09:34:48+00:00</published>
<link rel='alternate' type='text/html' href='http://git.ninenines.eu/otp.git/commit/?id=7d7271121b4d2e786bf6fb41508166efb96e5842'/>
<id>7d7271121b4d2e786bf6fb41508166efb96e5842</id>
<content type='text'>
A replacement accepting transport could be started after the service
process received a shutdown message from diameter_config, if a
connection was accepted before the transport process in question was
terminated. The replacement lived on until the service needed to restart
it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
A replacement accepting transport could be started after the service
process received a shutdown message from diameter_config, if a
connection was accepted before the transport process in question was
terminated. The replacement lived on until the service needed to restart
it.
</pre>
</div>
</content>
</entry>
</feed>
