diff options
author | Anders Svensson <[email protected]> | 2013-02-12 12:52:15 +0100 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2013-02-12 12:52:15 +0100 |
commit | bbf692965470a9e993e1afd6f1a9375cbe832fcb (patch) | |
tree | 2c8fa685fd527b3190e1472b1257d3a0e1c1e47e /lib/diameter/doc/src/diameter.xml | |
parent | 117005a3ad1ddfd82891c13e65953dc8db9ae0d9 (diff) | |
parent | a75772f2187e02e3efa8bdf972e8648cd64452a5 (diff) | |
download | otp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.tar.gz otp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.tar.bz2 otp-bbf692965470a9e993e1afd6f1a9375cbe832fcb.zip |
Merge branch 'anders/diameter/message_length/OTP-10687'
* anders/diameter/message_length/OTP-10687:
Add length suite for testing Message Length errors
Fix test/depend.mk blunder
Add transport_opt() length_errors
Only start a fragment timer when there's something to flush
Simplify and document diameter_tcp fragment timer
Comment fix
Remove upgrade code not needed after application restart
Diffstat (limited to 'lib/diameter/doc/src/diameter.xml')
-rw-r--r-- | lib/diameter/doc/src/diameter.xml | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/diameter/doc/src/diameter.xml b/lib/diameter/doc/src/diameter.xml index 7e50f338d3..ba9225da8b 100644 --- a/lib/diameter/doc/src/diameter.xml +++ b/lib/diameter/doc/src/diameter.xml @@ -975,6 +975,42 @@ configured them.</p> Defaults to a single callback returning <c>dpr</c>.</p> </item> +<marker id="length_errors"/> +<tag><c>{length_errors, exit|handle|discard}</c></tag> +<item> +<p> +Specifies how to deal with errors in the Message Length field of the +Diameter Header in an incoming message. +An error in this context is that the length is not at least 20 bytes +(the length of a Header), is not a multiple of 4 (a valid length) or +is not the length of the message in question, as received over the +transport interface documented in &man_transport;.</p> + +<p> +If <c>exit</c> then a warning report is emitted and the parent of the +transport process in question exits, which causes the transport +process itself to exit as described in &man_transport;. +If <c>handle</c> then the message is processed as usual, a resulting +&app_handle_request; or &app_handle_answer; callback (if one takes +place) indicating the <c>5015</c> error (DIAMETER_INVALID_MESSAGE_LENGTH). +If <c>discard</c> then the message in question is silently discarded.</p> + +<p> +Defaults to <c>exit</c>.</p> + +<note> +<p> +The default value reflects the fact that a transport module for a +stream-oriented transport like TCP may not be able to recover from a +message length error since such a transport must use the Message +Length header to divide the incoming byte stream into individual +Diameter messages. +An invalid length leaves it with no reliable way to rediscover message +boundaries, which may result in the failure of subsequent messages. +See &man_tcp; for the behaviour of that module.</p> +</note> +</item> + <marker id="reconnect_timer"/> <tag><c>{reconnect_timer, Tc}</c></tag> <item> |