aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2013-06-02Fix setting of Failed-AVP on {answer_message, 5xxx} from handle_requestAnders Svensson
RFC 6733 says that certain 5xxx result codes must be accompanied by Failed-AVP, and decode populates #diameter_packet.errors with Result-Code/AVP pairs for errors it detects. However, Failed-AVP was not set in the outgoing answer if the handle_request callback returned {answer_message, 5xxx}. It is now set with the AVP from the first pair with the specified Result-Code, if found. Note that {answer_message, 5xxx} doesn't handle all cases in which a 5xxx answer is required, only that in which the setting above is appropriate. If it isn't then handle_request should construct its answer and return {reply, Ans}.
2013-05-29Merge branch 'anders/diameter/watchdog_function_clause/OTP-11115' into maintAnders Svensson
* anders/diameter/watchdog_function_clause/OTP-11115: Fix watchdog function_clause
2013-05-29Merge branch 'anders/diameter/missed_5001/OTP-11087' into maintAnders Svensson
* anders/diameter/missed_5001/OTP-11087: Remove redundant integer type specifiers from binaries Fix recognition of 5001 on mandatory AVP's
2013-05-29Merge branch 'anders/diameter/avp_decode/OTP-11007' into maintAnders Svensson
* anders/diameter/avp_decode/OTP-11007: Detect all 5005 (MISSING_AVP) errors and don't reverse errors Adapt Failed-AVP setting to RFC 6733 Add spec to diameter_codec Add spec to diameter_gen Fix recognition of 5014 (INVALID_AVP_LENGTH) errors Ensure setting Failed-AVP is appropriate Correct AVP Length error testcases
2013-05-29Merge branch 'anders/diameter/avp_length_failure/OTP-11026' into maintAnders Svensson
* anders/diameter/avp_length_failure/OTP-11026: Fix decode failure when AVP Length < 8
2013-05-29Merge branch 'md/httpc-stream-once-fix/OTP-11122' into maintFredrik Gustafsson
* md/httpc-stream-once-fix/OTP-11122: Remove http_chunk:decode/4 as it is no longer used Fix {stream, {self, once}} in httpc
2013-05-29Remove redundant integer type specifiers from binariesAnders Svensson
2013-05-29Fix recognition of 5001 on mandatory AVP'sAnders Svensson
An AVP setting the M-bit was not regarded as erroneous if it was defined in the dictionary in question and its container (message or Grouped AVP) had an 'AVP' field. It's now regarded as a 5001 error (AVP_UNSUPPORTED), as in the case that the AVP is not defined.
2013-05-29Merge branch 'bjorn/stdlib/improve-ls/OTP-11108' into maintBjörn Gustavsson
* bjorn/stdlib/improve-ls/OTP-11108: Teach c:ls/1 to show non-directory files
2013-05-29Merge branch 'anders/diameter/timetraps/OTP-10914' into maintAnders Svensson
* anders/diameter/timetraps/OTP-10914: Add examples testcase to help identify timetrap failures Minor traffic suite fix Add gen_tcp suite Lighten up on suite timetraps Add more information to traffic suite timeout failures
2013-05-28Merge branch 'avi/fix-os-cmd-win/OTP-11104' into maintFredrik Gustafsson
* avi/fix-os-cmd-win/OTP-11104: Add testcase to exported Added primary bootstrap for os.beam kernel: redefined deep_list_command test Remove unnecessary whitespaces in os.erl and os_SUITE.erl Fix deep list argument error under Windows in os:cmd/1
2013-05-28Merge branch 'ia/ssl/public_key/crypto/elliptic_curve/OTP-11009' into maintIngela Anderton Andin
* ia/ssl/public_key/crypto/elliptic_curve/OTP-11009: (21 commits) ssl: Do not advertise EC ciphers if crypto support is insufficient crypto: Ctify tests and test new API crypto: Allow integer as srp_private arguments according to docs ssl: Remove unused `srp_parameters` type spec crypto, public_key & ssl: Make more functions accept integer keys snmp: Remove use of deprecated crypto functions crypto,ssh, netconf, inets: binary_to_integer -> bytes_to_integer netconf: Remove use of deprecated crypto functions crypto: Documentation fixes from review crypto: Change argument order of crypto:next_iv/3 crypto,public_key,ssl: Change return value of crypto:generate_key(ecdh,..) ssl, public_key, crypto: crypto:algorithms/0 -> crypto:supports/0 ssl, public_key & inets: Remove use of deprecated crypto functions from test code ssl: Remove use of deprecated crypto functions public_key: Remove use of deprecated crypto functions dialyzer: Remove use of deprecated crypto functions ssh & crypto: Remove use of deprecated crypto functions from ssh Update primary bootstrap common_test: Replace use of deprecated crypto functions beam_lib, compile: Replace use of deprecated crypto functions ...
2013-05-28ssl: Do not advertise EC ciphers if crypto support is insufficientIngela Anderton Andin
2013-05-27Fix watchdog function_clauseAnders Svensson
Commit 0b7c87dc caused diameter_watchdog:restart/2 to start returning 'stop', so that a watchdog process for a listening transport that allowed multiple connections to the same peer would die one watchdog timeout after losing a connection. The new return value was supposed to be passed up to transition/2, but was instead passed to set_watchdog/1, resulting in a function_clause error. The resulting crash was harmless but unseemly. Not detected by dialyzer. Thanks to Aleksander Nycz.
2013-05-27crypto: Ctify tests and test new APIIngela Anderton Andin
Also fix bugs found by new tests
2013-05-27Merge branch 'siri/ct_telnet/no-more-after-timetrap/OTP-10648' into maintSiri Hansen
* siri/ct_telnet/no-more-after-timetrap/OTP-10648: [common_test] Unregister connection if killed
2013-05-24crypto: Allow integer as srp_private arguments according to docsSverker Eriksson
2013-05-24ssl: Remove unused `srp_parameters` type specKlaus Trainer
As the file 'lib/ssl/src/ssl_srp_primes.hrl' only contains a specification of a `srp_parameters` type that isn't exported and also isn't referenced anywhere (neither in the code nor in the documentation), the type specification (and hence the file as well) can be removed.
2013-05-24crypto, public_key & ssl: Make more functions accept integer keysSverker Eriksson
2013-05-24snmp: Remove use of deprecated crypto functionsIngela Anderton Andin
2013-05-24[common_test] Unregister connection if killedSiri Hansen
The symptom of this bug was that a (named) telnet connection which was open and hanging during a timetrap timeout could no longer be opened again in subsequent test cases. Since the connection was hanging, ct_telnet:close/1 which was called during end_per_testcase would fail (timeout) and cause common_test to brutally kill the connection. The bug was that the connection was not unregistered at this point. When trying to open the connection again in the next testcase, common_test attempted to reuse the same connection since it had not been unregistered. This failed since the connection in fact was dead.
2013-05-24Merge branch 'nox/fix-silent-rules/OTP-11111' into maintFredrik Gustafsson
* nox/fix-silent-rules/OTP-11111: Fix some Makefile rules that didn't support silent rules
2013-05-22Teach c:ls/1 to show non-directory filesBjörn Gustavsson
In an email to erlang-questions, Bengt Kleberg wrote: When I use c:ls/1 it reminds me so much of Unix "ls" that I expect c:ls("filename") to work. The resulting error surprises me every time (not the same day). While teaching c:ls/1 to show non-directory files, update the error handling to make use of the POSIX error codes from file:list_dir/1 and file:format_error/1 (which had not been invented when the c module was first implemented). Suggested-by: Bengt Kleberg Test-suite-by: Bengt Kleberg
2013-05-22crypto,ssh, netconf, inets: binary_to_integer -> bytes_to_integerIngela Anderton Andin
2013-05-21Merge branch 'siri/ct/no_prompt_check/OTP-11095' into maintSiri Hansen
* siri/ct/no_prompt_check/OTP-11095: [common_test] Refactor ct_telnet_SUITE.erl [common_test] Add new option 'no_prompt_check' to ct_telnet:expect/3. [common_test] Add debug printouts in ct_telnet_client [common_test] Backed out wait_for_linebreak option from ct_telnet [common_test] Add test for ct_telnet using own telnet server [common_test] Add telnet server to use for testing
2013-05-20Merge branch 'maint-r16' into maintMicael Karlberg
2013-05-20Remove http_chunk:decode/4 as it is no longer usedMasatake Daimon
http_chunk:decode/4, the side-effecting chunk decoder, was only used by httpc_handler:handle_http_body/2 but now it's completely unused.
2013-05-20Fix {stream, {self, once}} in httpcMasatake Daimon
Previously the only difference between {stream, self} and {stream, {self, once}} was an extra Pid in the stream_start message due to a bug in httpc_handler. It was immediately sending a bunch of messages till the end instead of waiting for httpc:stream_next/1 being called.
2013-05-20netconf: Remove use of deprecated crypto functionsIngela Anderton Andin
2013-05-20crypto: Documentation fixes from reviewIngela Anderton Andin
Conflicts: lib/crypto/doc/src/crypto.xml Conflicts: lib/crypto/doc/src/crypto.xml
2013-05-20crypto: Change argument order of crypto:next_iv/3Sverker Eriksson
to harmonize with next_iv/2
2013-05-20crypto,public_key,ssl: Change return value of crypto:generate_key(ecdh,..)Sverker Eriksson
to conform with the return value of the other types.
2013-05-20ssl, public_key, crypto: crypto:algorithms/0 -> crypto:supports/0Ingela Anderton Andin
2013-05-20ssl, public_key & inets: Remove use of deprecated crypto functions fromIngela Anderton Andin
test code
2013-05-20ssl: Remove use of deprecated crypto functionsIngela Anderton Andin
2013-05-20public_key: Remove use of deprecated crypto functionsIngela Anderton Andin
2013-05-20dialyzer: Remove use of deprecated crypto functionsIngela Anderton Andin
2013-05-20ssh & crypto: Remove use of deprecated crypto functions from sshIngela Anderton Andin
2013-05-20common_test: Replace use of deprecated crypto functionsBjörn Gustavsson
2013-05-20beam_lib, compile: Replace use of deprecated crypto functionsBjörn Gustavsson
Since both the STDLIB and compiler applications turn warnings into errors, we must stop using the old deprecated crypto functions. While we are at it, generalize the format of the key tuple returned by beam_lib:make_crypto_key/2 to facilitate introducing new crypto methods in the future. Change the format to: {Type,Key,IV,BlockSize} where Type, Key, and IV are the first three arguments for either crypto:block_encrypt4/ or crypto:block_decrypt/4, and BlockSize is the block size for the crypto algorithm (it is needed to properly pad the plaintext blocks before encryption).
2013-05-20crypto: Correct deprecated informationIngela Anderton Andin
2013-05-17Detect all 5005 (MISSING_AVP) errors and don't reverse errorsAnders Svensson
The previous commit ensures that only one will be reported in an answer message when diameter itself sets Result-Code/Failed-AVP. The order of errors in #diameter_packet.errors is that in which they're detected, not the reverse as previously.
2013-05-17Adapt Failed-AVP setting to RFC 6733Anders Svensson
When setting these from an #diameter_packet.errors list, select one Result-Code or {Result-Code, Failed-AVP}, instead of accumulating all AVP's from the 2-tuples in the list. This is more in keeping with RFC 6733: 7.5. Failed-AVP AVP The Failed-AVP AVP (AVP Code 279) is of type Grouped and provides debugging information in cases where a request is rejected or not fully processed due to erroneous information in a specific AVP. The value of the Result-Code AVP will provide information on the reason for the Failed-AVP AVP. A Diameter answer message SHOULD contain an instance of the Failed-AVP AVP that corresponds to the error indicated by the Result-Code AVP. For practical purposes, this Failed-AVP would typically refer to the first AVP processing error that a Diameter node encounters. The text of RFC 3588 was less specific, not including the last two sentences. Note that an improper AVP Length will result in both 5014 and 5005 being detected for the same AVP. Without this commit, Failed-AVP would be populated with two AVP's for the same error.
2013-05-17Add spec to diameter_codecAnders Svensson
2013-05-17Add spec to diameter_genAnders Svensson
2013-05-17Fix recognition of 5014 (INVALID_AVP_LENGTH) errorsAnders Svensson
Invalid lengths come in two flavours: ones that correctly point at the end of an AVP's payload but don't agree with its type, and ones that point elsewhere. The former are relatively harmless but the latter leave no way to recover AVP boundaries, which typically results in failure to decode subsequent AVP's in the message in question. In the case that AVP Length points past the end of the message, diameter incorrectly regarded the error as 5009, INVALID_AVP_BITS: not right since the error has nothing to do with AVP Flags. Ditto if the length was less than 8, a minimal header length. Only in the remaining case was the detected error 5014, INVALID_AVP_LENGTH. However, in this case it slavishly followed RFC 3588 in suggesting the undecodable AVP as Failed-AVP, thereby passing the woeful payload back to the sender to have equal difficulty decoding. Now follow RFC 6733 and suggest an AVP with a zero-filled payload.
2013-05-17Merge branch 'siri/cuddle-with-tests' into maintSiri Hansen
* siri/cuddle-with-tests: Fix gen_server_SUITE:call_with_huge_message_queue Fix zip_SUITE:borderline test
2013-05-17[common_test] Refactor ct_telnet_SUITE.erlSiri Hansen
2013-05-17[common_test] Add new option 'no_prompt_check' to ct_telnet:expect/3.Siri Hansen
If this option is used, ct_telnet will not search for a prompt before attempting to match the given pattern. This is useful if, for instance, the Pattern itself matches the prompt or if the telnet session starts interactive programs which do not display the normal prompt.
2013-05-17Merge branch 'nm/mnesia_idx_insert_speedup/OTP-11103' into maintFredrik Gustafsson
* nm/mnesia_idx_insert_speedup/OTP-11103: Fix missing case clause for ordered_set tables Optimize index creation for Mnesia set tables