aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2015-06-22Merge branch 'anders/diameter/grouped_errors/OTP-12721'Anders Svensson
* anders/diameter/grouped_errors/OTP-12721: Fix decode of Grouped AVPs containing errors Simplify logic Simplify logic
2015-06-18dialyzer: Expand opaque types before other typesHans Bolinder
Opaque types need to be expanded before record field types, otherwise any() could be used for opaque types.
2015-06-18Fix decode of Grouped AVPs containing errorsAnders Svensson
RFC 6733 says this of Failed-AVP in 7.5: In the case where the offending AVP is embedded within a Grouped AVP, the Failed-AVP MAY contain the grouped AVP, which in turn contains the single offending AVP. The same method MAY be employed if the grouped AVP itself is embedded in yet another grouped AVP and so on. In this case, the Failed-AVP MAY contain the grouped AVP hierarchy up to the single offending AVP. This enables the recipient to detect the location of the offending AVP when embedded in a group. It says this of DIAMETER_INVALID_AVP_LENGTH in 7.1.5: The request contained an AVP with an invalid length. A Diameter message indicating this error MUST include the offending AVPs within a Failed-AVP AVP. In cases where the erroneous AVP length value exceeds the message length or is less than the minimum AVP header length, it is sufficient to include the offending AVP header and a zero filled payload of the minimum required length for the payloads data type. If the AVP is a Grouped AVP, the Grouped AVP header with an empty payload would be sufficient to indicate the offending AVP. In the case where the offending AVP header cannot be fully decoded when the AVP length is less than the minimum AVP header length, it is sufficient to include an offending AVP header that is formulated by padding the incomplete AVP header with zero up to the minimum AVP header length. The AVPs placed in the errors field of a diameter_packet record are intended to be appropriate for inclusion in a Failed-AVP, but neither of the above paragraphs has been followed in the Grouped case: the entire faulty AVP (non-faulty components and all) has been included. This made it impossible to identify the actual faulty AVP in all but simple case. This commit adapts the decode to the RFC, and implements the suggested single faulty AVP, nested in as many Grouped containers as required. The best-effort decode of Failed-AVP in answer messages, initially implemented in commit 0f9cdbaf, is also applied.
2015-06-17Simplify logicAnders Svensson
Testing is_failed() is unnecessary since put/2 a second time will return a previously put 'true'.
2015-06-17Simplify logicAnders Svensson
Failed == undefined implies is_failed() == true. This was true even when the code was written, in commit c2c00fdd.
2015-06-17Merge branch 'egil/cuddle-tests'Björn-Egil Dahlberg
* egil/cuddle-tests: kernel: Remove ?line macros in inet_SUITE:t_gethostbyaddr/1 erts: Tweak statistics_SUITE:scheduler_wall_time/1
2015-06-17Merge branch 'egil/license-compliance/OTP-12848'Björn-Egil Dahlberg
* egil/license-compliance/OTP-12848: Revert "lcnt: Let runq locks reflect actual call location" Revert "Demote rare debug slogan of message discarding to debug build" Revert "Add missing error string to syslog logging in epmd" Revert "Add run queue index to process dump info" Revert "Add thread index to allocator enomem dump slogan" Revert "Add number of entries to mnesia copy debug message"
2015-06-17Merge branch 'legoscia/dbg-doc'Henrik Nord
* legoscia/dbg-doc: Fix markup in dbg.xml
2015-06-17Fix markup in dbg.xmlMagnus Henoch
Put the name of the functions linked to inside the seealso tag, not the word "see".
2015-06-17Merge branch 'egil/fix-compiler-beam_bool/OTP-12844'Björn-Egil Dahlberg
* egil/fix-compiler-beam_bool/OTP-12844: compiler: Add regressions_SUITE compiler: Fix beam_bool pass for get_map_elements
2015-06-17compiler: Add regressions_SUITEBjörn-Egil Dahlberg
regressions_SUITE will have code snippets which previously crashed the compiler. This commits includes a test for Maps crash in beam_bool.
2015-06-17compiler: Fix beam_bool pass for get_map_elementsBjörn-Egil Dahlberg
Before beam_split the get_map_elements instruction is still in blocks and the helper function in beam_jump did not reflect this. Reported-by: Quviq twitter account
2015-06-17Merge branch 'nybek/fix_so_linger_zero__simple'Raimo Niskanen
* nybek/fix_so_linger_zero__simple: Update prim_inet.beam Fix socket option {linger, {true, 0}} to abort TCP connections Apply 'show_econnreset' socket option to send errors as well Add 'show_econnreset' TCP socket option
2015-06-16Merge branch 'ia/ssl/test-cuddle'Ingela Anderton Andin
* ia/ssl/test-cuddle: ssl: Remove unnecessary suite callback
2015-06-16Fix typo in commentYuki Ito
2015-06-16Merge branch 'nybek/fix_supervisor_get_childspec'Zandra Hird
* nybek/fix_supervisor_get_childspec: Fix supervisor:get_childspec/2 for simple_one_for_one OTP-12841
2015-06-16Merge branch 'ia/ssh/doc/message-types'Ingela Anderton Andin
* ia/ssh/doc/message-types: ssh: Modernize type definitions
2015-06-16ssh: Modernize type definitionsIngela Anderton Andin
2015-06-16Merge branch 'mhssler/doc-os-unsetenv-unicode'Henrik Nord
* mhssler/doc-os-unsetenv-unicode: stdlib: Document os:unsetenv Unicode support
2015-06-16Revert "Add number of entries to mnesia copy debug message"Björn-Egil Dahlberg
This reverts commit baad9722c84ecb41d2278ac9912d30e42c3b4409.
2015-06-16Merge branch 'ia/inets/deprecate'Ingela Anderton Andin
* ia/inets/deprecate: inets: Fix race condition in httpc inets: Remove use of httpd_conf:clean/1 and httpd_conf:custom_clean/3 inets: Remove use of httpd_conf:make_integer/1 inets: Deprecate functions in util module httpd_conf.erl
2015-06-16inets: Fix race condition in httpcIngela Anderton Andin
If the socket is closed by the peer do not try to close it again. Solves OTP-11845
2015-06-16inets: Remove use of httpd_conf:clean/1 and httpd_conf:custom_clean/3Ingela Anderton Andin
Internal use of the function white_space_clean/1 could probably be done in a much better way using re-module and removing a lot of legacy code. But we will have to do this later, due to lack of time, we want to make this commit as little work as possible.
2015-06-16Remove void() type in documentationPeter Andersson
2015-06-16Merge branch 'peppe/common_test/ct_run_start_and_help'Peter Andersson
* peppe/common_test/ct_run_start_and_help: Change default start actions and update documentation OTP-12684
2015-06-15inets: Remove use of httpd_conf:make_integer/1Ingela Anderton Andin
2015-06-15inets: Deprecate functions in util module httpd_conf.erlIngela Anderton Andin
These functions should not be used, there exists better functions in the standard libraries.
2015-06-15ssl: Remove unnecessary suite callbackIngela Anderton Andin
The test cases does not use any hooks and including the ts_install_cth trips up the test case setup on some platforms cuasing the test cases to fail with {error, enoent}
2015-06-15Merge branch 'sverk/ets-file2tab-preserve-opts/OTP-12814'Sverker Eriksson
* sverk/ets-file2tab-preserve-opts/OTP-12814: stdlib: Make ets:file2tab preserve read/write_concurrency stdlib: Fix ets_SUITE:tabfile_ext4
2015-06-15Merge branch 'ia/ssl/test-fips'Ingela Anderton Andin
* ia/ssl/test-fips: ssl: Filter suites for openssl FIPS if necessary
2015-06-15dialyzer: Fix a minor bug concerning opaque typesHans Bolinder
The test t_is_none() does not check for opaque types (and this is most likely how it should be), why t_opaque() should never be called with none().
2015-06-15dialyzer: Modify warning for comparison of opaque typesHans Bolinder
Comparing two operands for (in)equality is allowed if both operands are of the same unknown opaque type. Since OTP 17, there is a warning if the types of the operands have nothing in common (this cannot happen before OTP 17). However, the warning says there is a test between opaque types, which is wrong. The warning now states that the comparison cannot evaluate to 'true', which is more consistent.
2015-06-15dialyzer: Modify the handling of parametrized opaque typesHans Bolinder
In OTP 17 it is possible to mix types such as dict:dict() and dict:dict(_, _) outside of the dict module (and similarly for some other opaque types in STDLIB), but the results are unfortunately possibly invalid warnings in users' code. In OTP 18 parameterized opaque types with the same name but with different number of parameters are no longer compatible when seen from outside of the module where the types are declared. The types in STDLIB have been updated accordingly; for instance -opaque dict() :: dict(_, _). has been replaced by -type dict() :: dict(_, _).
2015-06-15Merge branch 'ia/ssl/unknown-hash/OTP-12829'Ingela Anderton Andin
* ia/ssl/unknown-hash/OTP-12829: ssl: Add unassigned values ssl: Do not crash on proprietary hash_sign algorithms
2015-06-15Merge branch 'hans/ssh/cuddle_tests'Hans Nilsson
* hans/ssh/cuddle_tests: ssh: fix bad ssh_basic_SUITE dir_options group ssh: add test case + corr for ssh_info:print/1
2015-06-15ssh: fix bad ssh_basic_SUITE dir_options groupHans Nilsson
2015-06-15ssh: add test case + corr for ssh_info:print/1Hans Nilsson
Conflicts: lib/ssh/test/ssh_basic_SUITE.erl
2015-06-15Merge branch 'gomoripeti/tools/cover-no-beam/OTP-12806'Björn Gustavsson
* gomoripeti/tools/cover-no-beam/OTP-12806: cover: handle undefined module when analysing to file
2015-06-15Merge branch 'bjorn/mnesia/doc'Björn Gustavsson
* bjorn/mnesia/doc: Update asn1 documentation
2015-06-15stdlib: Make ets:file2tab preserve read/write_concurrencySverker Eriksson
2015-06-15dialyzer: Simplify some codeHans Bolinder
Remove what it seems redundant checks.
2015-06-15dialyzer: Fix a bug in the expansion of formsHans Bolinder
The check that a modified type of a field is a subtype of the declared type has been moved outside of the expansion of forms to avoid loops.
2015-06-15Merge branch 'dgud/emacs/bifs'Dan Gudmundsson
* dgud/emacs/bifs: tools: Add new bifs to emacs highlighter
2015-06-12edoc: Add parentheses to Erlang types and specs when neededHans Bolinder
Before OTP 18, parentheses are kept by the Erlang Parser, and converted by EDoc ('paren_type' to #t_paren{}). As of OTP 18, the parser no longer keeps parentheses, why EDoc needs to insert them when converting Erlang types and specs to EDoc types and specs. As it seems, it is only annotations that sometimes require parentheses.
2015-06-12stdlib: Introduce precedence for operators in typesHans Bolinder
Add new functions erl_parse:type_inop_prec() and erl_parse:type_preop_prec(). Get rid of paren_type used for parentheses in types.
2015-06-10ssl: Filter suites for openssl FIPS if necessaryIngela Anderton Andin
2015-06-10Merge branch 'rickard/timer-improvement/OTP-12650'Rickard Green
* rickard/timer-improvement/OTP-12650: Callback timer Disable accessor timer option Aux work flag descriptions Fix test cases
2015-06-10Merge branch 'scrapinghub/proxy_addr_for_keeped_alive_request'Zandra Hird
* scrapinghub/proxy_addr_for_keeped_alive_request: inets: set proxy address for requests from keep-alive queue OTP-12822
2015-06-10Merge branch 'gomoripeti/observer_tv_no_refresh'Henrik Nord
* gomoripeti/observer_tv_no_refresh: Don't refresh observer table view if there was no change OTP-12819
2015-06-10Merge branch 'egil/fix-cover-error_logger/OTP-12818'Björn-Egil Dahlberg
* egil/fix-cover-error_logger/OTP-12818: cover: Unstick modules before loading remote kernel: Add module name to sticky_dir error message kernel: Remove ?line macros in error_logger_warn_SUITE