diff options
author | Anders Svensson <[email protected]> | 2013-02-16 01:14:12 +0100 |
---|---|---|
committer | Anders Svensson <[email protected]> | 2013-02-17 03:26:07 +0100 |
commit | 1da8a27f08a890d3ba44ad9707b848ff8afbc1f5 (patch) | |
tree | c42ad66fa178dee167318d6b7bd4b2e6833bfa85 /lib/diameter/doc/src/diameter.xml | |
parent | 4d8afe10687f11e9e9796ba787a49c85f76082e9 (diff) | |
download | otp-1da8a27f08a890d3ba44ad9707b848ff8afbc1f5.tar.gz otp-1da8a27f08a890d3ba44ad9707b848ff8afbc1f5.tar.bz2 otp-1da8a27f08a890d3ba44ad9707b848ff8afbc1f5.zip |
Answer 5xxx errors with application_opt() request_errors = answer
RFC 3588 allowed only 3xxx result codes in an answer-message (that is,
an answer that sets the E-bit) while RFC 6733 also allows 5xxx result
codes. Setting request_errors = answer tells diameter to answer 5xxx
errors itself. Returning {answer_message, integer()} from a
handle_request callback allows both 3xxx and 5xxx result codes to be
set. {protocol_error, integer()} is retained for 3xxx result codes.
Diffstat (limited to 'lib/diameter/doc/src/diameter.xml')
-rw-r--r-- | lib/diameter/doc/src/diameter.xml | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/lib/diameter/doc/src/diameter.xml b/lib/diameter/doc/src/diameter.xml index accf21cf98..379e9f0738 100644 --- a/lib/diameter/doc/src/diameter.xml +++ b/lib/diameter/doc/src/diameter.xml @@ -188,7 +188,7 @@ Defaults to the value of the <c>alias</c> option if unspecified.</p> <item> <p> Specifies whether or not the &app_pick_peer; -application callback can modify the application state, +application callback can modify the application state. Defaults to <c>false</c> if unspecified.</p> <note> @@ -226,22 +226,37 @@ question is as if a callback had taken place and returned Defaults to <c>report</c> if unspecified.</p> </item> -<tag><c>{request_errors, answer_3xxx|callback}</c></tag> +<tag><c>{request_errors, answer_3xxx|answer|callback}</c></tag> <item> <p> Determines the manner in which incoming requests are handled when an -error other than 3007, DIAMETER_APPLICATION_UNSUPPORTED. (With which no -application callback module can be associated.)</p> +error other than 3007, DIAMETER_APPLICATION_UNSUPPORTED (which cannot +be associated with an application callback module), is detected.</p> <p> -If <c>answer_3xxx</c> then the request is answered by diameter -without a &app_handle_request; callback taking place if a 3xxx series -error (protocol errors) is detected. -If <c>callback</c> then even 3xxx errors result in an application -&app_handle_request; callback.</p> +If <c>answer_3xxx</c> then requests are answered without a +&app_handle_request; callback taking place. +If <c>answer</c> then even 5xxx errors are answered without a +callback unless the connection in question has configured the RFC 3588 +common dictionary as noted below. +If <c>callback</c> then a &app_handle_request; callback always takes +place and the return value determines the answer sent to the peer.</p> <p> Defaults to <c>answer_3xxx</c> if unspecified.</p> + +<note> +<p> +Answers sent by diameter set the E-bit in the Diameter Header. +Since RFC 3588 allowed only 3xxx result codes in an +<c>answer-message</c>, <c>answer</c> has the same semantics as +<c>answer_3xxx</c> if the peer connection in question has configured +the RFC 3588 common dictionary, <c>diameter_gen_base_rfc3588</c>. +RFC 6733 allows both 3xxx and 5xxx result codes in an +<c>answer-message</c> so a connection configured with the RFC 6733 +common dictionary, <c>diameter_gen_base_rfc6733</c>, does +distinguish between <c>answer_3xxx</c> and <c>answer</c>.</p> +</note> </item> </taglist> |