aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2015-08-04Replace calls to module inet_parse to equivalents in inetAnders Svensson
Commits b563c796 (R16B) and 0fad6449 (R16B02) added parse_address/1 and ntoa/1 to module inet, providing documented alternatives to address/1 and ntoa/1 in the undocumented (save comments in inet(3)) inet_parse.
2015-08-04Don't compute AVP list length unnecessarily at AVP decodeAnders Svensson
This has had a hugely negative impact on performance when decoding messages containing many AVP: each decode of an AVP having variable arity computed the length of the list of previously decoded AVPs when checking that the allowed arity was not exceeded, even if the allowed arity was infinite, making for O(n^2) cost. Here are some execution times, for diameter_codec:decode/2 on a representative message with n integer AVPs in the Common application (on the host at hand): Before After ------- --------- n = 1K 5 ms 2 ms n = 10K 500 ms 25 ms n = 100K 75 sec 225 ms n = 1M 2.6 sec Note the nearly linear increase following the change. Remove the dire documentation warning for incoming_maxlen as a consequence. It can still be useful to set, but not doing so won't have the same consequences as previously.
2015-08-04Don't traverse errors list unnecessarily when detecting missing AVPsAnders Svensson
Since the list can potentially be long.
2015-08-04Don't flag AVP as missing as a consequence of decode errorAnders Svensson
The decode of an incoming Diameter message uses the record representation to determine whether or not an AVP has been received with the expected arity, the number of AVPs in each field following decode being compared with the arity specified in the message grammar. The problem with this is that decode failure isn't reflected in the record representation, so that an AVP can be appended to the errors field of a diameter_packet record despite an entry for the same AVP already existing. This isn't a fault as much as a misleading error indication, but now only append AVPs that aren't already represented.
2015-08-04Correct inaccurate docAnders Svensson
The warning report was removed in commit 00584303.
2015-08-04Truncate potentially large terms passed to diameter_lib:log/4Anders Svensson
Last visited in commit 00584303.
2015-08-04Merge branch 'maint'Hans Nilsson
* maint: ssh: added more groups for gex ssh: rm ssh_math and use crypto:compute_key instead ssh: filter algs unknown to crypto (except pk) ssh: add test group ssh: Add experimental 'diffie-hellman-group-exchange-sha256 support ssh: Repair/add experimental diffie-hellman-group-exchange-sha1 support
2015-08-04Set ets {write_concurrency, true} on diameter_statsAnders Svensson
lcnt:inspect/1 recently showed this: lock id #tries collisions [%] time [us] ----- --- ------- --------------- ---------- db_tab diameter_stats 932920 92.9326 330332554
2015-08-03ssh: added more groups for gexHans Nilsson
2015-08-03ssh: rm ssh_math and use crypto:compute_key insteadHans Nilsson
2015-08-03ssh: filter algs unknown to crypto (except pk)Hans Nilsson
2015-08-03ssh: add test groupHans Nilsson
2015-08-03ssh: Add experimental 'diffie-hellman-group-exchange-sha256 supportHans Nilsson
DO NOT USE IN PRODUCTION!!! It is not enabled by default, but may be enabled with the option {preferred_algorithms, [{kex, ['diffie-hellman-group-exchange-sha256']}]}
2015-08-03ssh: Repair/add experimental diffie-hellman-group-exchange-sha1 supportHans Nilsson
DO NOT USE IN PRODUCTION!!! This is a bug fixing of the previously partly impelmented kex algorithm. There are more things to do, for example genrate/select better g,p pair obeying the min||n||max request. It is not enabled by default, but may be enabled with the option {preferred_algorithms, [{kex, ['diffie-hellman-group-exchange-sha1']}]}
2015-07-31Merge branch 'maint'Zandra Hird
* maint: inets: cancel for handler with no requests
2015-07-30ssl: Do not crash on proprietary hash_sign algorithmsIngela Anderton Andin
TLS hash_sign algorithms may have proprietary values see http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml We should add callbacks to let applications handle them. But for now we do not want to crash if they are present and let other algorithms be negotiated.
2015-07-30Merge branch 'emacstheviking/maint'Zandra Hird
* emacstheviking/maint: Increased left-nav width for readability
2015-07-19Don't start watchdog timers unnecessarilyAnders Svensson
In particular, restart the timer with each incoming Diameter message, only when the previous timer has expired. Doing so has been seen to result in high lock contention at load, as in the example below: (diameter@test)9> lcnt:conflicts([{print, [name, tries, ratio, time]}]). lock #tries collisions [%] time [us] ----- ------- --------------- ---------- bif_timers 7844528 99.4729 1394434884 db_tab 17240988 1.7947 6286664 timeofday 7358692 5.6729 1399624 proc_link 4814938 2.2736 482985 drv_ev_state 2324012 0.5951 98920 run_queue 21768213 0.2091 63516 pollset 1190174 1.7170 42499 pix_lock 1956 2.5562 39770 make_ref 4697067 0.3669 20211 proc_msgq 9475944 0.0295 5200 timer_wheel 5325966 0.0568 2654 proc_main 10005332 2.8190 1079 pollset_rm_list 59768 1.7752 480
2015-07-19Remove unnecessary erlang:monitor/2 qualificationAnders Svensson
The function has been auto-exported since R14B.
2015-07-19Add missing watchdog suite clauseAnders Svensson
The suite pretends to be gen_tcp-ish in configuring itself to diameter_tcp. The function close/1 can be called as a result.
2015-07-16Erlang shell: Support keys Del, Home and EndTom Szilagyi
Add support for the Delete, Home and End keys in the Erlang shell. These keys are ubiquitous on modern keyboards. Having them working as expected adds to the convenience of working in the shell, since they are much easier to use than the corresponding Ctrl-{D,A,E} keys. The implementation is in line with the existing framework of the line editor and is thus a natural (and minimal) extension.
2015-07-16Increased left-nav width for readabilitySean Charles
It just makes it easier to read stuff. For example, gen_server functions are now totally visible, no more guessing.
2015-07-16inets: cancel for handler with no requestsKirilll Zaborsky
httpc_handler should react properly to cancel requests even when the request to be cancelled was already finished but httpc_manager did not get notified about that yet
2015-07-15yecc: fix file/2 error tuple docTuncer Ayaz
2015-07-15leex: fix file/2 error tuple doc (Reported-by: Leo Liu)Tuncer Ayaz
2015-07-14Fix function reference (no first/2 in ets)Attila Gulyas
2015-07-14Merge branch 'lukas/ose/remove/OTP-12573'Lukas Larsson
* lukas/ose/remove/OTP-12573: Remove OSE from erl_interface ose: Remove all code related to the OSE port
2015-07-11Teach Dialyzer arity of funs with literal arityLuca Favatella
Re-insert logic for `erlang:make_fun/3` in `erl_bif_types`. It had been removed in bd941f5 while type spec-ing `erlang.erl`. Type spec in `erlang.erl` cannot express arity of returned fun based on value of argument hence re-introducing logic in `erl_bif_types`. Re-definition of logic in `erl_bif_types` follows approach in 9d870a0.
2015-07-10Remove OSE from erl_interfaceLukas Larsson
2015-07-10ose: Remove all code related to the OSE portLukas Larsson
The OSE port is no longer supported and this commit removed it and any changes related to it. The things that were general improvements have been left in the code.
2015-07-09Merge branch 'maint'Zandra Hird
2015-07-09Fix small typoConstantin Rack
2015-07-09Merge branch 'maint'Zandra Hird
2015-07-09Merge branch 'redvers/public_key_docfix' into maintZandra Hird
* redvers/public_key_docfix: Updated documentation to match implementation
2015-07-08Merge branch 'maint'Rickard Green
* maint: Updated OTP version Prepare release Fix calculation of end time Prefer monotonic time that stop during suspend Avoid unnecessary copying of data when retrieving corrected monotonic time Add the --enable-gettimeofday-as-os-system-time configure switch Conflicts: OTP_VERSION erts/vsn.mk
2015-07-08Merge branch 'maint-18' into maintRickard Green
* maint-18: Updated OTP version Prepare release Fix calculation of end time Prefer monotonic time that stop during suspend Avoid unnecessary copying of data when retrieving corrected monotonic time Add the --enable-gettimeofday-as-os-system-time configure switch
2015-07-08Prepare releaseErlang/OTP
2015-07-08Merge branch 'rickard/trace-file-eintr-bug/OTP-12890' into maint-18Erlang/OTP
* rickard/trace-file-eintr-bug/OTP-12890: Handle EINTR in trace_file_drv
2015-07-08Merge branch 'maint'Dan Gudmundsson
* maint: wx: Add event callback fastpath wx: Event callbacks could hang wx application temporary wx: Make wxLANGUAGE_ variable wx: Send wxWdigets assert to error logger wx: Add mouse_capture_lost event wx: Fix code generator
2015-07-08Merge branch 'dgud/wx/send-asserts-to-erl' into maintDan Gudmundsson
* dgud/wx/send-asserts-to-erl: wx: Add event callback fastpath wx: Event callbacks could hang wx application temporary wx: Make wxLANGUAGE_ variable wx: Send wxWdigets assert to error logger wx: Add mouse_capture_lost event wx: Fix code generator
2015-07-07Merge branch 'maint'Zandra Hird
2015-07-07Merge branch 'maint-17' into maintZandra Hird
Conflicts: OTP_VERSION erts/doc/src/notes.xml erts/vsn.mk lib/runtime_tools/doc/src/notes.xml lib/runtime_tools/vsn.mk otp_versions.table
2015-07-07Export shell:catch_exception/1 as documentedLeo Liu
2015-07-07wx: Add event callback fastpathDan Gudmundsson
Avoids spawn but can deadlock
2015-07-06Prepare releaseErlang/OTP
2015-07-06Handle EINTR in trace_file_drvRickard Green
2015-07-05Merge branch 'maint'Hans Nilsson
* maint: ssh: be more generous about disconnect expects ssh: add disjunction to ssh_trpt_test_lib:match
2015-07-04ssh: be more generous about disconnect expectsHans Nilsson
2015-07-04ssh: add disjunction to ssh_trpt_test_lib:matchHans Nilsson
2015-07-03Merge branch 'maint'Björn-Egil Dahlberg