aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
AgeCommit message (Collapse)Author
2018-03-05Merge branch 'anders/diameter/terminate/ERIERL-124' into maintAnders Svensson
* anders/diameter/terminate/ERIERL-124: Fix handling of SUSPECT connections at service termination
2018-03-05Merge branch 'anders/diameter/reg/OTP-14839' into maintAnders Svensson
* anders/diameter/reg/OTP-14839: Fix diameter_reg:subscribe/2 remove notification
2018-02-01Fix handling of SUSPECT connections at service terminationAnders Svensson
A peer connection in watchdog state SUSPECT is represented by a peer table entry in diameter_service, but not by a request table entry in diameter_peer, so diameter_service:terminate/2 could result in failures like this: exception error: no match of right hand side value [] in function diameter_traffic:peer_down/1 (base/diameter_traffic.erl, line 141) in call from lists:foldl/3 (lists.erl, line 1263) in call from ets:do_foldl/4 (ets.erl, line 611) in call from ets:foldl/3 (ets.erl, line 600) in call from diameter_service:terminate/2 (base/diameter_service.erl, line 557) in call from gen_server:try_terminate/3 (gen_server.erl, line 648) in call from gen_server:terminate/10 (gen_server.erl, line 833) in call from gen_server:handle_msg/6 (gen_server.erl, line 679)
2017-12-15Fix diameter_reg:subscribe/2 remove notificationAnders Svensson
Commit fae8ca0c broke notification by removing table elements before matching for them, causing diameter_tcp/sctp listening processes to live on after diameter:remove_transport/2. Commit 58091992 added diameter_reg:subscribe/2, and commit 5ca5fb71 started using it for listener exit.
2017-12-08Update release notesErlang/OTP
2017-12-04vsn -> 2.1.3Anders Svensson
2017-12-04Update appup for 20.2Anders Svensson
Only change is doc.
2017-12-04Fix doc typoAnders Svensson
2017-10-25Update release notesErlang/OTP
2017-10-25Merge branch 'anders/diameter/decode/OTP-14684' into maint-20Erlang/OTP
* anders/diameter/decode/OTP-14684: vsn -> 2.1.2 Update appup for ERIERL-14684
2017-10-14Fix error handling when decoding an AVP with an alternate dictionaryAnders Svensson
The options map wasn't updated after the AVP was identified, with the resulting consequences for M-bit interpretation.
2017-10-13Remove unused function argumentsAnders Svensson
Which may have been used in the past, but aren't now.
2017-10-13Fix faulty recursionAnders Svensson
The wrong variable was passed into the decode recursion, causing the options map to be contaminated by strict_mbit and failed_avp modifications that should only apply to component AVPs in the Grouped case. Decode errors and M-bits could be ignored as a result.
2017-10-13vsn -> 2.1.2Anders Svensson
2017-10-13Update appup for ERIERL-14684Anders Svensson
2017-10-09Update release notesErlang/OTP
2017-10-05vsn -> 2.1.1Anders Svensson
2017-10-05Update appup and code_change for ERIERL-83Anders Svensson
2017-10-05Fix missing monitor in diameter_regAnders Svensson
Commit fae8ca0c inadvertently removed the monitor at add/1 and add_new/1. As a result, process death did not remove associations, causing table diameter_reg to leak entries and stop/start of a service to fail. Add a testcase to detect the problem, which existing testcases miss.
2017-09-22Update release notesErlang/OTP
2017-09-21Merge branch 'anders/diameter/doc/OTP-14561' into maintAnders Svensson
* anders/diameter/doc/OTP-14561: Document new(ish) options in diameter_tcp/sctp
2017-09-21Merge branch 'anders/diameter/SoC/OTP-10927' into maintAnders Svensson
* anders/diameter/SoC/OTP-10927: Simplify/complete Standards Compliance doc
2017-09-20Simplify/complete Standards Compliance docAnders Svensson
With a table. Probably no one wants to read a commented RFC, it's been unfinished for some time, and it's difficult to get an overview from it.
2017-09-20Document new(ish) options in diameter_tcp/sctpAnders Svensson
See commits d3829525 (unordered), c591056b (packet), eadf4efc (sender), 636a7199 (tcp message_cb), 373cd07c (sctp message_cb)
2017-09-18Merge branch 'anders/diameter/20.1/OTP-14561' into maintAnders Svensson
* anders/diameter/20.1/OTP-14561: Update appup and version for 20.1
2017-09-18Merge branch 'anders/diameter/sctp/OTP-10889' into maintAnders Svensson
* anders/diameter/sctp/OTP-10889: Make unordered delivery configurable
2017-09-18Merge branch 'anders/diameter/performance/OTP-14521' into maintAnders Svensson
* anders/diameter/performance/OTP-14521: Fix append of Route-Record AVPs
2017-09-17Make unordered delivery configurableAnders Svensson
Changing the default in the parent commit is possibly a bit dangerous, even if the motivation still holds. Take a step back and make unordered delivery a matter of configuration, without changing the default: configuration is {unordered, boolean() | pos_integer()}, with false the default, and N equivalent to OS =< N, where OS is the number of outbound streams negotiated on the association in question. A user can mess with this by configuring an sctp_default_send_param of their own, but unordered sending is them from start, not only after the second message reception.
2017-09-15Fix append of Route-Record AVPsAnders Svensson
Commit b3d9e0c0 did away with the reordering of diameter_avp lists, so prepending the AVP to the list means prepending it in the message, which is not what the RFC requires. Appending to a list isn't ideal, but right now there's no better way.
2017-09-15Update appup and version for 20.1Anders Svensson
2017-09-13Merge branch 'anders/diameter/grouped_decode/OTP-14607' into maintAnders Svensson
* anders/diameter/grouped_decode/OTP-14607: Fix diameter_packet.avps decode of Grouped AVP errors in Failed-AVP
2017-09-13Merge branch 'anders/diameter/DOIC/OTP-14588' into maintAnders Svensson
* anders/diameter/DOIC/OTP-14588: Fix avp_dictionaries decode with {decode_format, none}
2017-09-11Fix diameter_packet.avps decode of Grouped AVP errors in Failed-AVPAnders Svensson
The decode didn't respect the format as a list of diameter_avp records, so information about faulty component AVPs was lost.
2017-09-11Merge branch 'anders/diameter/DOIC/OTP-14588' into ↵Anders Svensson
anders/diameter/grouped_decode/OTP-14607 * anders/diameter/DOIC/OTP-14588: Fix avp_dictionaries decode with {decode_format, none}
2017-09-11Fix avp_dictionaries decode with {decode_format, none}Anders Svensson
Decode is only a no-op when the AVP is Grouped, and then only on the Grouped AVP itself, not its components.
2017-09-09Merge branch 'anders/diameter/config_consistency/OTP-14555' into maintAnders Svensson
* anders/diameter/config_consistency/OTP-14555: Fix type spec Fix strict_arities blunder
2017-09-09Merge branch 'anders/diameter/performance/OTP-14521' into maintAnders Svensson
* anders/diameter/performance/OTP-14521: Simplify implementation in diameter_reg (take 2)
2017-09-08Fix type specAnders Svensson
Map key was not retained when the spec was added in commit 66bb5251.
2017-09-08Fix strict_arities blunderAnders Svensson
The watchdog process retained the configuration, causing DWR/DWA encode to fail on a string-valued Origin-Host/Realm if the encode arity was relaxed. Bungled in commit 5f3becad.
2017-09-07Simplify implementation in diameter_reg (take 2)Anders Svensson
Simplify the simplification. The order of sending is changed, but the order isn't significant.
2017-09-07Merge branch 'anders/diameter/performance/OTP-14521' into maintAnders Svensson
* anders/diameter/performance/OTP-14521: Simplify implementation in diameter_reg Fix type spec Fix minor monitor blunder in diameter_reg
2017-09-06Simplify implementation in diameter_regAnders Svensson
Use maps instead of dict for traceability more than performance.
2017-09-06Fix type specAnders Svensson
That dialyzer hasn't noticed is wrong.
2017-09-05Merge branch 'anders/diameter/answer-message_decode/OTP-14596' into maintAnders Svensson
* anders/diameter/answer-message_decode/OTP-14596: Exercise answer-message/AVP decode in traffic suite Exercise answer-message/Failed-AVP decode in traffic suite
2017-09-05Merge branch 'anders/diameter/DOIC/OTP-14588' into maintAnders Svensson
* anders/diameter/DOIC/OTP-14588: Exercise avp_dictionaries in traffic suite Let generic AVPs be encoded/decoded in alternate dictionaries Rename field in codec map: dictionary -> app_dictionary Add RFC 7683 Diameter Overload Indicator Conveyance text and dictionary Fix decode undef Fix dictionary compilation error message
2017-09-05Fix minor monitor blunder in diameter_regAnders Svensson
Commit 58091992 discarded a new monitor reference, so didn't avoid multiple monitors as was the intention. The blunder was harmless since all but the first DOWN message resulted in notifications.
2017-09-04Exercise answer-message/AVP decode in traffic suiteAnders Svensson
In particular, that arbitrary application AVPs are decoded in an answer setting the E-bit.
2017-09-04Exercise answer-message/Failed-AVP decode in traffic suiteAnders Svensson
In particular, that application AVPs in Failed-AVP are decoded in an answer setting the E-bit.
2017-09-04Exercise avp_dictionaries in traffic suiteAnders Svensson
As introduced in the parent commit.
2017-09-04Let generic AVPs be encoded/decoded in alternate dictionariesAnders Svensson
To support specifications like RFC 7683 DOIC, that only define AVPs, not applications. AVPs that aren't known to the application dictionary in question could previously not be decoded. Configuring alternate dictionaries with the new transport/service option avp_dictionaries changes this, so that AVPs like DOIC's Grouped OC-OLR can presented in their fully decoded glory. Encode is also extended, allowing things like the following to be encoded in an outgoing message: 'AVP' => [{'OC-OLR', #{'OC-Sequence-Number' => 1, 'OC-Report-Type' => 0, 'OC-Reduction-Percentage' => [25]}}] A diameter_gen_doic_rfc7683 dictionary is installed, but avp_dictionaries isn't specific to DOIC. This commit also solves the problem demonstrated a few commits back, that application AVPs aren't decoded in answers setting the E-bit. Test coverage will come in a subsequent commit.