aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/doc/src/diameter.xml
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2013-02-16 01:14:12 +0100
committerAnders Svensson <[email protected]>2013-02-17 03:26:07 +0100
commit1da8a27f08a890d3ba44ad9707b848ff8afbc1f5 (patch)
treec42ad66fa178dee167318d6b7bd4b2e6833bfa85 /lib/diameter/doc/src/diameter.xml
parent4d8afe10687f11e9e9796ba787a49c85f76082e9 (diff)
downloadotp-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.xml33
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>