aboutsummaryrefslogtreecommitdiffstats
path: root/lib
AgeCommit message (Collapse)Author
2017-08-03Don't exercise client/server encoding independently in traffic suiteAnders Svensson
To reduce the number of config combinations that are tested. The encoding is the format in which messages are provided to diameter for encode (to binary), and if there is any difference in the end result then the peer will detect this at decode, independently of its encoding format.
2017-08-03Add decode_format record_from_mapAnders Svensson
Undocumented, for transforming a map decode to record. The record decode becomes more expensive the larger the number of AVPs in the message definition in question, since the record is recreated each time an AVP value is set in it. The map decode can potentially do better.
2017-08-03Rename record_decode -> decode_formatAnders Svensson
{record_decode, map} is a bit too quirky.
2017-08-03Create fewer client connections in traffic suiteAnders Svensson
One for each server decoding/encoding/container combination is overkill. Just want a few from which one can be chosen in the pick_peer callback.
2017-08-03Test record_decode in traffic suiteAnders Svensson
2017-08-03Map answers to maps in traffic suiteAnders Svensson
Instead of to lists, to simplify matching.
2017-08-03Test map encoding in traffic suiteAnders Svensson
2017-08-03Let messages and grouped AVPs be decoded to listsAnders Svensson
That is, decode to the same format that encode already accepts. Only a message has its name at the head of the list since AVPs are already name/value pairs.
2017-08-03Let messages and grouped AVPs be encoded/decoded from/to mapsAnders Svensson
With {record_decode, map}. The option name is arguably a bit misleading now, but not too objectionable given that the encode/decode in question has historically only been of records. One advantage of the map decode is that the map only contains values for those AVPs existing in the message or grouped AVP in question. The name of the message or grouped AVP is stored in with key ':name', the leading colon ensuring that the key isn't a diameter-name. Decoding to maps makes the hrl files generated from dictionary files largely irrelevant. There are value defines generated into these, but they're typically so long as to be unusable.
2017-08-03Add service_opt() record_decodeAnders Svensson
To control whether or not messages and grouped AVPs are decoded to records, in #diameter_packet.msg and #diameter_avp.value respectively. The decode became unnecessary for diameter's needs in parent commit, which decoupled it from the checking of AVP arities.
2017-08-03Count AVP arities during decodeAnders Svensson
Instead of after, during the check that AVPs have sufficient arity. This makes the arity checks independent of the record decode, which will allow the latter to be made optional.
2017-08-03Fix obsolete diameter_gen.hrl commentsAnders Svensson
Most of the contents were moved to module diameter_gen in commit 205521d3.
2017-08-03Fix message_cb in traffic suiteAnders Svensson
Matched a byte instead of a bit, and increment/decrement wasn't symmetric. Allow more requests since some requests timeout. Bungled in commit 09089872.
2017-07-10Exercise example RFC 4005 dictionary in traffic suiteAnders Svensson
Only exercising the standard dictionaries has missed some problems in the past.
2017-06-21Prepare releaseErlang/OTP
2017-06-19Update copyright yearHans Nilsson
2017-06-16[sasl] Improve handling of unicode in rbSiri Hansen
2017-06-16[ttb] Handle unicode atoms in trace data and config filesSiri Hansen
2017-06-16[dbg] Update default trace handler to print unicode atoms correctlySiri Hansen
2017-06-16[etop] Fix handling of unicode atomsSiri Hansen
Print function names and registered names with ~tw. Open dump file with encoding utf8.
2017-06-16[stdlib] Open sys debug logs as utf8Siri Hansen
This allows the use of ~ts/~tp/~tw in the formatting fun to sys:handle_debug/4.
2017-06-16[stdlib] Open error log file as utf8Siri Hansen
This allows the use of ~ts/~tp/~tw in calls to error_logger:format/2, error_logger:error_msg/2 and error_logger:info_msg/2.
2017-06-16[sasl] Improve handling of unicode atomsSiri Hansen
2017-06-16[ct] Print unicode atoms and strings correctly in common_test logsSiri Hansen
And use correct encoding when printing to files.
2017-06-15Merge branch 'hans/otp/update_copyright'Hans Nilsson
2017-06-14Update documentation of ERL_MAX_ETS_TABLESRickard Green
2017-06-14Merge branch 'anders/diameter/transport/ERL-332'Anders Svensson
* anders/diameter/transport/ERL-332: Fix sctp check in examples suite
2017-06-14Fix sctp check in examples suiteAnders Svensson
To partake of the change in commit 69c5a741.
2017-06-14Merge branch 'rickard/t2b-latin1-atom'Rickard Green
OTP-14337 * rickard/t2b-latin1-atom: Update primary bootstrap Update preloaded modules Fix erl_interface tests Introduce minor vsn 2 in term_to_binary/2 Revert "kernel: Try mend disk_log whitebox tests" Revert "erts: Do not generate atoms on old latin1 external format"
2017-06-14Update copyright yearHans Nilsson
2017-06-14Merge remote-tracking branch 'ingela/ingela/dtls/client-hello-verify/ERL-434'Hans Nilsson
2017-06-14Merge pull request #1486 from willemdj/patch-1Hans Nilsson
Fix typo on line 872
2017-06-14Fix erl_interface testsRickard Green
2017-06-14Merge remote-tracking branch 'ingela/ingela/dtls-epoch-next-record'Hans Nilsson
2017-06-14Merge branch 'anders/diameter/20.0/OTP-14398'Anders Svensson
* anders/diameter/20.0/OTP-14398: vsn -> 2.0 Update appup for 20.0
2017-06-14Merge branch 'anders/diameter/capx_vs_dpr/OTP-14338'Anders Svensson
* anders/diameter/capx_vs_dpr/OTP-14338: Let candidate peers be passed to diameter:call/4 Comment on RFC ambiguity regarding application identifiers Remove trailing whitespace
2017-06-14Merge branch 'anders/diameter/performance/OTP-14343'Anders Svensson
* anders/diameter/performance/OTP-14343: (50 commits) Let spawn_opt config replace erlang:spawn_opt/2 for request processes Move (most of) diameter_gen.hrl to diameter_gen.erl Change signature associated with dictionary @custom_type/@codecs Avoid sending answer terms between processes unnecessarily Refactor handling of incoming requests Restore diameter_codec:decode/2, update diameter_codec(3) Add diameter_codec option ordered_encode Restore undocumented Failed-AVP setting convenience Fix/simplify setting of one Failed-AVP Avoid recreating records Avoid recreating records Avoid recreating records Avoid recreating records Adapt test suites to modified encode/decode Simplify diameter_caps construction Don't compute URI defaults unnecessarily Don't deconstruct {TPid, Caps} unnecessarily Remove use of process dictionary in decode Remove minor diameter_config bloat Fix maximum AVP arity check ...
2017-06-14Merge branch 'anders/diameter/transport/ERL-332'Anders Svensson
* anders/diameter/transport/ERL-332: (35 commits) Capitulate on SCTP vs sparc-sun-solaris2.10 Remove obsolete traffic testcase Fix dialyzer warnings Remove client/server string decode from traffic suite Add diameter_sctp option packet Add diameter_sctp send/recv callbacks Let diameter_tcp send/recv callbacks deal in diameter_packet Randomly select traffic testcases Exercise diameter_tcp message callbacks in traffic suite Exercise diameter_{tcp,sctp} sender in traffic suite Remove upgrade from diameter_traffic Add diameter_tcp send/recv callbacks Make diameter_{tcp,sctp} sender configurable Remove upgrade from diameter_sctp; tweak diameter_tcp to match Fix incomprehensible dialyzer warning Simplify acks to transport processes Strip throttling callbacks from diameter_tcp Deal with (another) SCTP association id quirk on Solaris Use binary:copy/2 when generating largish data in test suites Deal with SCTP association id quirk on Solaris ...
2017-06-14Merge branch 'hasse/dialyzer/opt/OTP-14218'Hans Bolinder
* hasse/dialyzer/opt/OTP-14218: dialyzer: Run more of analyses in subprocess dialyzer: Do not use two records for PLTs dialyzer: Improve compression of an ETS table dialyzer: Minor optimizations hipe: Remove 'undefined' from a record field's type dialyzer: Warn about unused unknown types hipe: Remove use of 'catch' dialyzer: Correct a mistake dialyzer: Rearrange some code to save memory dialyzer: Optimize by avoiding some table lookups hipe: Optimize contract decoration somewhat hipe: Correct a typespec
2017-06-14Merge branch 'bjorn/compiler/fix-invalid-orddict'Björn Gustavsson
* bjorn/compiler/fix-invalid-orddict: v3_kernel: Keep orddicts sorted sys_core_fold: Ensure that orddict keys are unique
2017-06-14Merge branch 'bjorn/cuddle-with-tests'Björn Gustavsson
* bjorn/cuddle-with-tests: Eliminate warnings for unused variables Remove unused functions in test emulator test suites process_SUITE: Don't leave processes running trace_port_SUITE: Don't leave processes running tracer_SUITE: Don't leave processes running trace_nif_SUITE: Don't leave processes running trace_bif_SUITE: Don't leave processes running trace_SUITE: Don't leave processes running message_queue_data_SUITE: Don't leave processes running Add informational test case z_SUITE:leaked_processes/1 busy_port_SUITE: Ensure that all created procesesses are killed busy_port_SUITE: Eliminate warnings for unused variables busy_port_SUITE: Eliminate 'export_all' after_SUITE: Don't leave a process running beam_type_SUITE: Add a test case for an already fixed bug
2017-06-13dtls: Make HelloVerifyRequest version adhere to RFCIngela Anderton Andin
ERL-434 RFC6347 says about hello_verify_request version field as follow https://tools.ietf.org/html/rfc6347#page-16 The server_version field has the same syntax as in TLS. However, in order to avoid the requirement to do version negotiation in the initial handshake, DTLS 1.2 server implementations SHOULD use DTLS version 1.0 regardless of the version of TLS that is expected to be negotiated. But current DTLS server responses DTLS1.2 instead of DTLS1.0.
2017-06-13ssl: Correct epoch handlingIngela Anderton Andin
Consideration of which Epoch a message belongs to is needed in the dtls_connection:next_record function too.
2017-06-13vsn -> 2.0Anders Svensson
2017-06-13Update appup for 20.0Anders Svensson
2017-06-13Revert "kernel: Try mend disk_log whitebox tests"Rickard Green
This reverts commit 5d9bb41114544c9205a8b8f26642bad8231e8d4e.
2017-06-13Let spawn_opt config replace erlang:spawn_opt/2 for request processesAnders Svensson
By accepting an MFA that is applied to the fun that is otherwise spawned for each incoming request, to allow handler processes to be reused. This is not yet documented and may change, but the motivation is to let spawn be replaced by process pool, from which the MFA selects. A list-valued spawn_opt is equivalent to {erlang, spawn_opt, [Opts]}.
2017-06-13Let candidate peers be passed to diameter:call/4Anders Svensson
To solve the problem of being able to send messages to a peer that hasn't advertised support for the application in question, as discussed in the parent commit. diameter:call/4 can be passed 'peer' options to identify candidates, and the only requirement is that an appropriate dictionary be configured for encode. Filters are applied as if candidates had been selected by advertised application.
2017-06-13Comment on RFC ambiguity regarding application identifiersAnders Svensson
It is tempting to regard remote support for the common application as implicit, but that leads to the problems noted, and a node could never then expect non-intersecting application support to result in 5010. It probably can't anyway given the different ways the RFC's intent can be interpreted, but it's not unreasonable that a node should be able to advertise a single Diameter application and get 5010 if the peer doesn't support it. The problem we have currently is that peer selection is based on the support advertised by the peer. The application id of an outgoing request is used to lookup peers that have advertised support, so if the peer hasn't advertised support for Diameter common messages then the user won't be able to send DPR and more: diameter:call/4 will just return {error, no_connection}. This commit doesn't solve the problem.
2017-06-13Remove trailing whitespaceAnders Svensson