Age | Commit message (Collapse) | Author |
|
By examining which modules *use* runtime and compiler modules instead of
which modules compiler modules call. Note that the semantics are changed
somewhat: we will now fail if diameter modules are called from an
application which diameter.app lists as a start dependency, which wasn't
the case previously.
|
|
In particular, that modules listed in the 'modules' tuple only call
modules in other applications listed in the 'runtime_dependencies'
tuple.
|
|
To avoid having to specify applications more than once.
|
|
The former is used by the dictionary compiler, the latter by some
unfinished code in diameter_dbg. None of the corresponding modules are
included in the app file since they typically aren't needed/wanted on a
target system.
|
|
* anders/diameter/17.0_release/OTP-11605:
Move info modules into own subdirectory
Include compiler and info modules in app file
Remove unused diameter_dbg:log/4
Remove case expecting a pre-R16B return value from os:type/1
Fix doc typo: required -> requires
Remove release note unrelated to functionality
|
|
Possibly overkill for two modules but it mirrors their different
treatment by the makefile.
|
|
Albeit as comments. This is just to make it more obvious that these
aren't include in the modules list, since they typically aren't
needed/wanted on a target system. Also add comments for the
corresponding dependencies on syntax_tools and runtime_tools, as well as
the optional runtime dependency on ssl.
|
|
It was intended to replace diameter_lib:log/4 at some point but that was
a bad idea since diameter_dbg isn't included in the app file.
|
|
The documented return value changed in commit c37a9761.
|
|
|
|
|
|
Most dependencies introduced are exactly the dependencies to other
applications found by xref. That is, there might be real dependencies
missing. There might also be pure debug dependencies listed that
probably should be removed. Each application has to be manually
inspected in order to ensure that all real dependencies are listed.
All dependencies introduced are to application versions used in
OTP 17.0. This since the previously used version scheme wasn't
designed for this, and in order to minimize the work of introducing
the dependencies.
|
|
UTF-8 is now the default encoding and should no longer be
specified. These have probably been merged from maint earlier and the
coding statement was missed.
lib/dialyzer/test/opaque_SUITE_data/src/modules/opaque_erl_scan.erl
lib/diameter/test/diameter_codec_test.erl
lib/ssh/test/ssh_unicode_SUITE.erl
|
|
* anders/diameter/grouped_decode/OTP-11675:
Be lenient with the M-bit in Grouped AVPs
|
|
RFC 6733 says this, in 4.4:
Receivers of a Grouped AVP that does not have the 'M' (mandatory) bit
set and one or more of the encapsulated AVPs within the group has the
'M' (mandatory) bit set MAY simply be ignored if the Grouped AVP itself
is unrecognized. The rule applies even if the encapsulated AVP with its
'M' (mandatory) bit set is further encapsulated within other sub-groups,
i.e., other Grouped AVPs embedded within the Grouped AVP.
The first sentence is mangled but take it to mean this:
An unrecognized AVP of type Grouped that does not set the 'M' bit MAY
be ignored even if one of its encapsulated AVPs sets the 'M' bit.
This is a bit of a non-statement since if the AVP is unrecognized then
its type is unknown. We therefore don't know that its data bytes contain
encapsulated AVPs, so can't but ignore any of those that set the M-bit.
Doing anything else when the type *is* known would be inconsistent.
OTP-11087 (commit 066544fa) caused the M-bit on any unrecognized AVP to
be regarded as an error, unrecognized being taken to mean "not
explicitly defined as a member of its container". (That is, an AVP that
can't be packed into a dedicated record field, which is slightly
stronger than "not defined".) This fixed the original intention for
top-level AVPs but broke the required leniency for Grouped AVPs whose
type is known. This commit restores the leniency.
Note that dictionary files need to be recompiled for the commit to have
effect.
Thanks to Rory McKeown for reporting the problem.
|
|
OTP-10229 (commit c4592b69) added these function to give access to all
addresses on a multihomed endpoint, their singular siblings not
returning anything useful in this case.
This fixes {accept, Match} config, which matches peer addresses against
configured addresses or regexps to decide whether or not a newly
established association should be retained. The functionality was added
in OTP-10893 (commit 9bbf27eb) but predated OTP-10229 by a few months.
It also fixes the addresses shown for SCTP associations in
diameter:service_info/2 output.
|
|
* anders/diameter/doc/OTP-11583:
Correct doc on the setting of Origin-State-Id
|
|
It was incorrectly stated that the AVP would be set in an outgoing
DPR/DPA.
|
|
* anders/diameter/17.0_release/OTP-11605:
vsn -> 1.6
Remove upgrade-related code
Update appup for 17.0
Avoid type gen_sctp:open_option() until it actually exists
|
|
|
|
No longer needed to update code in runtime since the emulator is
restarted at a major release.
|
|
Plan to make use of the emulator restart implied by a major release to
clean out some upgrade-related code.
|
|
The type's existence is the subject of OTP-11139, which has been
gathering dust since R16B.
http://erlang.org/pipermail/erlang-bugs/2013-September/003765.html
|
|
* anders/diameter/sctp_streams/OTP-11593:
Change interface for communicating outbound stream id to diameter_sctp
|
|
* anders/diameter/undefined_group/OTP-11561:
Ensure that Grouped AVP's are fully defined in dictionaries
Don't format diameter_make:codec/2 errors
Compiler suite fix
|
|
The module uses the transport_data field of record diameter_packet to
communicate the stream on which the an incoming message is received and
on which an outgoing message should be sent, the previous interface
being that both are communicated as a tuple of the form {stream, Id}.
However, since diameter retains the value of an incoming request's
transport_data unless the corresponding answer message specifies
otherwise, the behaviour in this case is to send an answer on the
outbound stream with the same identifier as the that of the inbound
stream on which the request was received. If the inbound stream id is
greater than or equal to the number of outbound streams then this is
guaranteed to fail, causing the transport process in question to
terminate. There is no relationship between inbound and outbound stream
identifiers so diameter_sctp's imposition of one is simply wrong.
Outbound stream ids are now communicated with a different tuple:
{outstream, Id}, interpreted modulo the number of outbound streams.
Thus, retention of an inbound request's transport_data has no effect on
the selection of an outbound stream.
The change in interface is not strictly backwards compatible because of
the new atom for the outbound stream. However, as there is currently no
documented way of obtaining the available number of outbound streams for
a peer connection, there is no way for a client to have known the range
of ids from which it could reliably have chosen with the previous
interface, so any setting of the outbound stream has probably been
unintentional. Not explicitly specifying an outbound stream now results
in a round-robin selection.
|
|
The case in which an AVP was defined as having type Grouped in
@avp_types without a corresponding specification in @grouped was
missing.
|
|
Instead, add diameter_make:format_error/1 to allow the caller to format
if desired, which is what applications like compiler and yecc do. Use
this to check that the expected error is the one actually generated in
the compiler suite.
|
|
An error when expecting success wasn't regarded as failure when
compiling dictionaries.
|
|
The R16B03 release
Conflicts:
lib/sasl/vsn.mk
|
|
|
|
|
|
|
|
|
|
|
|
|
|
* 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.
|
|
For R16B03.
|
|
|
|
|
|
|
|
|