Age | Commit message (Collapse) | Author |
|
* anders/diameter/patch/OTP-13183:
vsn -> 1.5.1
Update appup for diameter 1.5.1
|
|
* anders/diameter/logging/OTP-13182:
Remove logging of faulty answer messages
|
|
Since excessive numbers of them can overload a node with logging.
Note that most log messages have been removed in OTP 17.1, and replaced
by counters. In particular, logging as a result of incoming traffic,
over which we have no control, is dangerous.
|
|
|
|
In the case of {call_mutates_state, true} configuration on the service
in question, any peer selection that failed to select a peer resulted in
a case clause failure in diameter_service:pick_peer/5, when the call to
the service process returned false. This was noticed in the case of a
peer failover in which an alternate peer wasn't available.
The explicit matching is intentional, to match exactly what's expected.
|
|
* anders/diameter/R16B03_release/OTP-11499:
vsn -> 1.5
Update appup for OTP-11168
Update appup for OTP-11361
Add makefile to build example dictionaries
Add recent Diameter-related RFCs
Generate diameterc.1, not diameter_compile.1
Fix documentation typos
Fix appup blunder
|
|
* anders/diameter/timer_confusion/OTP-11168:
Rename reconnect_timer -> connect_timer
|
|
* anders/diameter/dictionary_make/OTP-11348:
Return compilable forms instead of beam
Document diameter_make:format/1 and diameter_make:flatten/1
Fix diameter_make:flatten/1
Modify type that currently causes dialyzer woe
Simplify and extend diameter_make interface
Add diameter_make:flatten/1, remove reformat/1
Adapt compiler suite to diameter_make
Remove dead code from codec suite
Extend diameter_make:codec/2
Don't pollute process dictionary in diameter_codegen:from_dict/4
Make forms a separate output from diameter_codegen
Remove last remnants of "spec"
Write as last step in code generation
Change extensions for debug output: .spec/forms -> .D/F
|
|
That is, preprocessed forms that can be passed to compile:forms/1,2.
|
|
To set @avp_vendor_id, @codecs and @custom_types as required for
imported avps.
|
|
The intention was that the type would represent an improper list whose
head was an integer and whose tail was an orddict but that doesn't seem
to be dialyzer's interpretation anyway.
|
|
In particular, make codec/2 flexible as to what's generated, the formats
(erl, hrl, parse, forms and beam) being passed in the options list and
defaulting to [erl, hrl]. The 'parse' format is the internal format to
which dictionaries are parsed, which can be manipulated by flatten/1
before being passed back to codec/2 or format/1.
Remove the (undocumented) dict/1,2 since codec/2 now subsumes it with
the 'parse' option.
|
|
The latter is now unnecessary given that codec/2 can return a parse and
format/1 can return the dictionary format.
|
|
|
|
|
|
The former was misleading since the timer only applies to initial
connection attempts, reconnection attempts being governed by
watchdog_timer. The name is a historic remnant from a (dark, pre-OTP)
time in which RFC 3539 was followed less slavishly than it is now, and
the timer actually did apply to reconnection attempts.
Note that connect_timer corresponds to RFC 6733 Tc, while watchdog_timer
corresponds to RFC 3539 TwInit. The latter RFC makes clear that TwInit
should apply to reconnection attempts. It's less clear if only RFC 6733
is read.
Note also that reconnect_timer is still accepted for backwards
compatibility. It would be possible to add an option to make
reconnect_timer behave strictly as the name suggests (ie. ignore RFC 3539
and interpret RFC 6733 at face value; something that has some value for
testing at least) but no such option is implemented in this commit.
|
|
* anders/diameter/capx_dictionary/OTP-11361:
Don't hardcode diameter_base @prefix on common dictionary
|
|
Function can now take a literal dictionary as input, instead of a path,
and can return results instead of writing them to the filesystem.
|
|
Didn't matter before diameter_make since the module was only called from
diameterc(1).
|
|
Instead of being output as a consequence of a debug option.
|
|
|
|
In preparation for allowing return instead of write.
|
|
|
|
"spec" is an old term the internal representation of a dictionary. The
new extensions are in the style or those that compile(3) can generate.
|
|
Should have been part of commit af682258.
|
|
|
|
anders/diameter/patch_release/OTP-11459
* anders/diameter/5014_failure/OTP-11395:
Fix handling of 5014, DIAMETER_INVALID_AVP_LENGTH
|
|
The error was detected as 5004 (DIAMETER_INVALID_AVP_VALUE) for
stringish Diameter types, in which case an AVP length that pointed past
the end of a message resulted in encode failure of the suggested
Failed-AVP.
Should have been fixed in commit 4ce2d3a6.
|
|
Commit e762d7d1 broke outgoing DWA by setting new Hop-by-Hop and
End-to-End identifiers instead of those of the incoming DWR.
|
|
|
|
* anders/diameter/spawn_opt/OTP-11299:
Fix broken spawn_opt
|
|
* anders/diameter/failed_avp/OTP-11293:
Fix Failed-AVP construction for CEA/DWA/DPA
|
|
Send of Failed-AVP resulted in encode failure.
|
|
The option was morphed into a boolean() and then ignored.
|
|
By using binary comprehensions. Add string-valued addresses to codec
suite.
|
|
The original code predates that module but there's no reason not to use
it now.
|
|
To accept any nested list of codepoints and binaries. A list containing
a binary was previously misinterpreted and the documentation was
incomplete.
Also, rework codec suite slightly to be able to specify values for which
decode o encode is the identity map, for which encode should succeed,
and for which encode should fail.
|
|
Having the peer_fsm process answer DWR meant that watchdog timer expiry
could result in an outgoing DWR despite the fact that an incoming DWR
was just answered. Having the watchdog process answer avoids this.
diameter_peer_fsm must be loaded before diameter_watchdog. It's
possible for one incoming DWR to go unanswered but a subsequent DWR will
be answered so no harm is done.
|
|
Commit f0a36c79 broke the handling of such configuration, resulting in a
function clause error in diameter_capx if the list was not of length 3,
and faulty extraction of application id's otherwise. Only record-valued
config was properly interpreted.
|
|
* anders/diameter/release/R16B01/OTP-11120:
vsn -> 1.4.2
Update appup for R16B01
Trailing whitespace and copyright fixes
Minor macro simplification
Move app/appsrc from src/base into src
|
|
* anders/diameter/request_spawn/OTP-11060:
Make spawn options for request processes configurable
|
|
Tickets and corresponding runtime modules, in order merged:
OTP-9610 (distribution)
diameter
diameter_config
diameter_peer
diameter_service
diameter_traffic
diameter_service must precede diameter_peer.
OTP-10972 (app_not_configured)
diameter
diameter_config
diameter_lib
diameter_peer_fsm
diameter_watchdog
Load order is unimportant.
OTP-11017 (service_config)
diameter_config
OTP-10986 (address_config)
diameter_peer
diameter_peer_fsm
diameter_tcp
diameter_tcp must follow the others.
OTP-11019 (watchdog_leak)
diameter_service
OTP-11026 (avp_length_failure)
diameter_codec
OTP-11007 (avp_decode)
diameter_gen.hrl => diameter_gen_*
diameter_codec
diameter_traffic
diameter_traffic must precede diameter_gen_*.
OTP-11087 (missed_5001)
diameter_gen.hrl => diameter_gen_*
OTP-11115 (watchdog_function_clause)
diameter_watchdog
OTP-11050 (inband_security)
diameter_peer_fsm
diameter_capx
This order is required.
OTP-11045 (host_ip_address)
diameter_peer_fsm
OTP-11092 (5xxx_failed_avp)
diameter_traffic
OTP-11127 (one_failed_avp)
diameter_peer_fsm
OTP-10893 (peer_address_config)
diameter_peer
diameter_tcp
diameter_sctp
diameter_peer must precede the others.
OTP-11060 (request_spawn)
diameter_service
diameter_traffic
diameter_config
diameter
diameter_traffic should precede diameter_service, diameter_config
should follow.
Tickets without code:
OTP-10903 (examples_suite)
OTP-11014 (release_notes)
OTP-11051 (mkdir_race)
OTP-10914 (timetraps)
|
|
That is, for the process that's spawned for each incoming Diameter
request message.
|
|
Option 'accept' allows remote addresses to be configured as tuples or
regular expressions. The remote addresses for any incoming (aka
accepted) connection/association are matched against the configured
values, any non-matching address causing the connection/association to
be aborted.
|
|
The third argument to start/3 was just wrong.
|
|
|
|
|
|
|
|
|
|
* anders/diameter/one_failed_avp/OTP-11127:
Adapt CEA/DPA Failed-AVP to RFC 6733
|