Age | Commit message (Collapse) | Author |
|
The decode of an incoming request in a non-relay application results in
a deep list of diameter_avp records. Encoding such a list resulted in a
function_clause error in diameter_codec:pack_avp/1, which expected a
flat list. The list is only flat in the relay case, or in the absence of
AVPs of type Grouped.
This is also related to code that exists but isn't documented. It's
documented that a diameter_app(3) handle_request callback can return
{relay, Opts} to relay a request received in the relay application.
What's not documented is that it can also return {proxy|resend, Opts} in
a non-relay application, but this leads to encode failure when there are
Grouped AVPs. This shouldn't be interpreted as meaning that proxy|resend
are now supported: they aren't. The two extra terms are a historical
relic that should probably be removed. Neither are generally usable
since, for example, a proxy agent may want to modify a request before
resending it. A specific handle_request return is not needed to
implement a proxy agent. Even {relay, Opts} isn't strictly necessary.
|
|
|
|
The decode of a Grouped AVP ignored the case that extracting component
AVPs with diameter_codec:collect_avps/1 returned a tuple, in the case of
a truncated AVP header.
|
|
The AVPs of an incoming Diameter message diameter_codec:decode/2,3 are
decoded into a diameter_packet record in two ways: as a message-specific
record in the 'msg' field and as a deep list of diameter_avp records in
the 'avps' field. The record decode came first; the diameter_avp decode
came later to support the Diameter relay application, but can also be
convenient for non-relay applications. The diameter_avp representation
can be used with outgoing messages, but what exactly is supported for
isn't clearly documented.
In the diameter_avp list representation, it's AVPs of type Grouped that
lead to nesting: instead of a diameter_avp record, a Grouped AVP is
represented by a diameter_avp list whose head is the Grouped AVP itself,
and whose tail is the list of component AVPs.
The diameter_avp decode was broken in the case of decode errors: the
Grouped AVP was represented as a bare diameter_avp, and the component
records were lost. The decode now produces the intended list. Note that
component AVPs that could not be decoded will have 'undefined' in their
data field.
|
|
Decode can span multiple codec modules, so written entries cannot be
tagged on ?MODULE.
|
|
|
|
|
|
|
|
|
|
* dgud/debugger/still-invoked-gs-functions/OTP-12357:
debugger: Do not use the old removed gs functionality
|
|
|
|
* rickard/appup-files/OTP-12358:
Add .appup file
|
|
|
|
* rickard/autoconf/OTP-12348:
Update megaco.appup.src
|
|
|
|
dbg_ui_trace module was invoked even though the module had been removed.
|
|
This reverts commit d086394ebd3595d431835af80709977a6c1c7c89.
|
|
* rickard/autoconf/OTP-12348:
Distribute autoconf helpers
|
|
* raimo/netns-opt-gen_udp/OTP-12314:
Text netns option at socket open
Fix handling netns option in gen_udp
|
|
|
|
Distribute aclocal.m4, install-sh, config.guess, and config.sub
to applications at build time instead of having multiple identical
copies committed in the repository.
|
|
|
|
* egil/fix-dialyzer-map-key-coalescing/OTP-12347:
dialyzer: Test recoalesced map keys
compiler: Coalesce map keys in dialyzer mode
|
|
* anders/diameter/17.4_release/OTP-12343:
vsn -> 1.8
Update appup for 17.4
|
|
* siri/ct_netconfc/subsystem-timeout/OTP-12334:
[ct_netconfc] Handle timeout failure in ssh
|
|
* siri/ct_telnet/unstable-tests/OTP-12329:
[ct_telnet] Fix test case 'server_speaks'
[ct_telnet] Improve debug printouts and logging
[ct_telnet] Add timestamp to telnet_server debug printout
[ct_telnet] Extend timeout in test from 1 to 2 sek
[ct_telnet] Don't send extra newline after password
|
|
* hans/ssh/appup:
ssh: Fixes wrong version in appup file
|
|
|
|
* tuncer/doc-fixes:
dict(3): fix typo reported by Rabbe Fogelholm
Fix minor eprof and fprof doc issues
|
|
* ia/inets/prep-for-release:
inets: Prepare for release
|
|
* ia/ssl/dialyzer/OTP-12341:
ssl: Prepare for release
ssl: Change code to reflect that state data may be secret
|
|
|
|
into maint
* raimo/snmp/compiler/allow_refinement_of_opaque/17/OTP-12066:
[snmp/compiler] Refinement of type Opaque was not allowed MIB constructs such as "SYNTAX Opaque (SIZE(0..65535))" was previously not allowed, this has now been fixed. See the standard ALARM-MIB for eaxmple.
|
|
|
|
OTP-12196 remote request table leak
OTP-12233 3xxx result code without E-bit
OTP-12281 ignored connect_timer
OTP-12308 filter ordering
|
|
|
|
|
|
|
|
* hans/ssh/appup:
ssh: prepares appup file for release
|
|
|
|
|
|
This fixes a regression introduced in commit 805f9c89fc01220bc1bb0f27e1b68fd4eca688ba
The problem occured with map keys compiled with dialyzer option turned on.
In OTP 17, map keys needs to be literals.
|
|
* anders/diameter/filters/OTP-12308:
Order peers in pick_peer callbacks
|
|
* anders/diameter/connect_timer/OTP-12281:
Tweak reason in closed event
Fix ignored connect timer
Check {connect,watchdog}_timer distinction in event testcases
Rename reconnect_timer to connect_timer in examples and suites
|
|
* anders/diameter/3xxx/OTP-12233:
Fix handling of 3xxx Result-Code without E-bit
|
|
* anders/diameter/request_leak/OTP-12196:
Fix remote diameter_request table leak
|
|
* raimo/snmp/dev:
Try to increase test case timeouts
Honor bind_to for manager net_if family inet
|
|
MIB constructs such as "SYNTAX Opaque (SIZE(0..65535))" was
previously not allowed, this has now been fixed.
See the standard ALARM-MIB for eaxmple.
|
|
|
|
|