aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mnesia/src/mnesia_text.erl
diff options
context:
space:
mode:
authorAnders Svensson <[email protected]>2013-02-12 17:46:38 +0100
committerAnders Svensson <[email protected]>2013-02-16 22:46:45 +0100
commit61b9efd8b4cf35dce44ec2fefd26339d2d20cb3c (patch)
tree2157f468910dd1df0233ab710dccaf5dd4e655e8 /lib/mnesia/src/mnesia_text.erl
parentdf2189c22f7ca7660496e46322d8b825e9f28ba3 (diff)
downloadotp-61b9efd8b4cf35dce44ec2fefd26339d2d20cb3c.tar.gz
otp-61b9efd8b4cf35dce44ec2fefd26339d2d20cb3c.tar.bz2
otp-61b9efd8b4cf35dce44ec2fefd26339d2d20cb3c.zip
Be less brutal in setting Result-Code/Failed-AVP
When receiving a request for which errors have been detected during decode, diameter previously used the errors list in the decoded diameter_packet record to unconditionally set Result-Code and Failed-AVP in the outgoing answer. It wasn't particularly delicate in doing so however and would happily set a 5xxx Result-Code even if a handle_request callback returned an answer-message, leading to an encode error. This behaviour became even less endearing as of commit ac452e28, which made it possible to handle_request to take place even for protocol errors. (ie. When a callback typically should return an answer-message.) This commit fixes the behaviour by only setting a value that's appropriate for the answer in question, either a 3xxx or a 5xxx, depending on if the answer's an answer-message or not. It also allows handle_request to prevent diameter from setting anything by setting errors = false in a returned diameter_packet. Ideally it should have been errors = [] but the empty list is the default value for the errors field and changing the default (ideally there shouldn't have been one) would require recompilation of all modules including diameter.hrl: choose the less attractive 'false' to avoid such backwards incompatibility. The request reception is also refactored somewhat to shorten some call chains.
Diffstat (limited to 'lib/mnesia/src/mnesia_text.erl')
0 files changed, 0 insertions, 0 deletions