Age | Commit message (Collapse) | Author |
|
* anders/diameter/5xxx_errors/OTP-10759:
Add testcases for application_opt() request_errors = answer
Answer 5xxx errors with application_opt() request_errors = answer
Comments and minor Result-Code fix
|
|
* anders/diameter/result_code/OTP-10761:
Add testcases to 3xxx suite
Minor traffic suite fix
Be less brutal in setting Result-Code/Failed-AVP
|
|
* anders/diameter/3xxx_callback/OTP-10686:
Add 3xxx suite for testing application_opt() request_errors
Minor suite simplification
Add application_opt() request_errors
|
|
* ia/odbc/port_info:
odbc: Use erlang:port_info to make sure test cases chooses the correct port
|
|
|
|
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.
|
|
In particular, don't put an error tuple in the errors field of
a #diameter_packet{} when Result-Code and the E-bit are in conflict, put
{integer(), #diameter_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.
|
|
|
|
|
|
Configuring the value 'callback' all errors detected in incoming
requests to result in a handle_request callback. The default value
'answer_3xxx' is the previous behaviour in which diameter answers
protocol errors without a callback.
|
|
* origin/peppe/common_test/ct_master_evh:
Fix problem with hanging event handler
OTP-10634
|
|
A short description of how ~tp works now.
|
|
|
|
Use the new function shell:strings/1 to toggle how the Erlang shell
outputs lists of integers.
|
|
The modifier 'l' can be used for turning off the string recognition of
~p and ~P.
|
|
|
|
|
|
|
|
|
|
* sc/gen_tcp_send_error_closed/OTP-10839:
Fix type of error Reason on gen_tcp:send/2
|
|
* rickard/small-build:
Include apps needed for tests and doc in small build
|
|
* lukas/erts/binary_conv_bifs/OTP-10300:
erts: Remove ?line macro from hash_SUITE
Add float_to_binary and binary_to_float
Add new binary conversion bifs
|
|
|
|
Added: binary_to_integer/1,2, integer_to_binary/1,2
|
|
* lukas/erts/update-config-guess-sub/OTP-10848:
Update config.guess and config.sub to latest versions
|
|
|
|
Too late now to remove gs in R16.
|
|
* bjorn/stdlib/filelib-wildcard/OTP-10812:
Remove special case handling "-" at the beginning of a charset
Optimize character sets using gb_sets
Clean up and simplify the inner matching loop
Only sort the result list once, just before returning
Replace filename:join/2 with '++'
Rethink the filelib:wildcard() functions
Don't redefine error/1
Don't allow binaries as the Cwd argument for filelib:wildcard()
Don't handle binaries from file:list_dir/1
Strengthen test suite
|
|
* bjorn/stdlib/types:
Make the file:filename() type more restrictive
c: Remove handling of binaries in return from file:list_dir/1
|
|
* ia/ssh/derived-file-in-git:
ssh: Remove derived file from git
|
|
|
|
* bjorn/remove-tuple-funs/OTP-10170:
si_sasl_supp: Eliminate use of tuple fun
pman: Eliminate use of tuple fun
|
|
* bjorn/remove-packages/OTP-10348:
edoc: Fix building of documentation in sub directories
|
|
|
|
* ia/ssl/transport-cb-and-inet/OTP-10847:
ssl: Generalize cb_info option
|
|
* hb/stdlib/extend_ts/OTP-10836:
Extend ~ts to handle binaries with characters coded in ISO-latin-1
|
|
* hb/kernel/application_bug_fix/OTP-10754:
[kernel] FIx a bug that could cause crash with wrong reason
|
|
|
|
|
|
* nk/jinterface_dont_compress_if_size_increased/OTP-10822:
jinterface, OtpOutputStream: add a write_compressed(object, level) method
jinterface: fix a memory leak
jinterface: new limited OutputStream implementation without the need to resize
jinterface: don't return compressed external term if bigger than uncompressed
jinterface: don't compress small erlang terms < 5 bytes
jinterface, OtpOutputStream: properly override the three write() methods to ensure our growth strategy
jinterface: fix typo in error message if encoding fails
jinterface: don't need another FilterOutputStream wrapper
|
|
Make sure io_lib:fwrite() with a format string including "~ts" does
not crash when given binaries that cannot be interpreted as
UTF-8-encoded strings.
We want to avoid crashes caused by excessive use of the 't' modifier.
|
|
We don't need this special case, since "-" is only special between
two other characters.
|
|
|
|
Use list comprehensions and 'orelse' to make the code more concise.
Rename wildcard_5/2 to match_part/2 to make it clearer what it does.
If the pattern always matches, don't test it in every iteration of
the loop.
|
|
There does not seem to be any advantage of sorting the result of
file:list_dir/1 directly. Disadvantages are that we'll need to be
careful to keep the result sorted, and that we could waste time
sorting filenames that the pattern matching will discard anyway.
|
|
Under controlled circumstances (and we are in control of the
circumstances), filename:join/2 can be replaced with '++'.
'++' is faster because it is implmented in C, does not need to
look at the list elements it copies, and does not need to copy
its right operand.
|
|
Commit 70b5e24c9498225fadc08d19503269c8aad851bf broke
filelib:wildcard(Pattern, ".").
Over the years, the logic for filelib:wilcard() has become a mess
of special cases.
Probably because of premature optimization, filelib:wildcard(Pattern)
and filelib:wildcard(Pattern, Cwd) are handled differently.
They can be consolidated if we use a "." as the default Cwd argument.
We can also simplify things by compiling the Cwd argument into the
wildcard. We did not that in the initial implementation because it
used to be possible to pre-compile a wildcard and pass it to
filelib:wildcard/{1,2}. Since that is no longer possible, there is
no point in keeping the compiled wildcard "portable" (not dependent
on the Cwd argument).
|