aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter
AgeCommit message (Collapse)Author
2013-04-22Fix decode failure when AVP Length < 8Anders Svensson
Such a length caused decode of a message with valid (24-bit) length to fail. Note that the error detected is wrong: it should be 5014 (INVALID_AVP_LENGTH), not 3009 (INVALID_AVP_BITS). This will be dealt with by OTP-11007.
2013-04-18Fix mkdir raceAnders Svensson
Creating examples/code and examples/dict in parallel can fail when examples doesn't exists. This has been seen on FreeBSD.
2013-04-12Merge branch 'anders/diameter/watchdog_leak/OTP-11019' into maintAnders Svensson
* anders/diameter/watchdog_leak/OTP-11019: Minor doc fix Add testcase to exercise reconnect behaviour Fix watchdog table leak
2013-04-11Minor doc fixAnders Svensson
2013-04-11Add testcase to exercise reconnect behaviourAnders Svensson
2013-04-11Comment fixAnders Svensson
2013-04-11More robust listening port lookup in test suitesAnders Svensson
In particular, remove timing dependence by using diameter_reg:wait/1 to wait on the term registered by diameter_{tcp,sctp} when opening a listening socket.
2013-04-11Update example client to allow default local addressAnders Svensson
Note that the semantics of client:connect/1 have changed slightly: the second element in an argument 3-tuple is a remote address, the local address being the transport module's default. Previously it was interpreted as a common local/remote address.
2013-04-11Make explicit local address to diameter_tcp:start/3 optionalAnders Svensson
Use the default address address (as selected by gen_tcp) if none is configured, passing it in the new 'connected' message introduced by the previous commit. The corresponding update to diameter_sctp has to wait until problems with inet:sockname/1 are resolved: the function currently only returns one address, and sometimes {0,0,0,0}. See OTP-11018.
2013-04-11Add transport interface 'connected' message with local address listAnders Svensson
A transport module can return a local address list from its start/3 function in order to specify addresses to be used as Host-IP-Address during capabilities exchange. Now allow addresses to be communicated in a 'connected' message in the case of a connecting transport, so that diameter_tcp (in particular) can make local address configuration optional, communicating the gen_tcp default after connection establishment instead.
2013-04-10Fix watchdog table leakAnders Svensson
A service process maintains a table keyed on watchdog process pids. When a watchdog process dies the corresponding entry should be removed but this was broken in commit f115a9f7, causing entries with watchdog state DOWN to accumulate. Watchdog processes die as a result of diameter:remove_transport/2, or when a peer reestablishes a connection in the listening case. Neither is typically a frequent occurrence. The fault manifests itself in the return value of diameter:service_info(SvcName, transport), which displays entries for watchdog processes that are no longer alive.
2013-04-08Merge branch 'anders/diameter/service_config/OTP-11017' into maintAnders Svensson
* anders/diameter/service_config/OTP-11017: Fix handling of unknown options to diameter:start_service/2
2013-04-06Fix faulty capitalization in generated release notesAnders Svensson
Diameter = the protocol diameter = the Erlang application
2013-04-06Fix handling of unknown options to diameter:start_service/2Anders Svensson
{error, Reason} is now returned, instead of the options being ignored. Note that diameter:add_transport/2 purposely ignores unknown options and that the behaviour is documented. This is historic: some users depend on it in order to store their own options for identifying transport config, instead of using the reference returned by add_transport.
2013-03-27Merge branch 'anders/diameter/app_not_configured/OTP-10972' into maintAnders Svensson
* anders/diameter/app_not_configured/OTP-10972: Fix faulty sequence validation Add config suite Deal with config errors detected at transport start less brutally Move most transport_opt() validation into diameter_config Minor doc/spec fix Minor diameter_lib cleanup
2013-03-26Fix faulty sequence validationAnders Svensson
The validation of {sequence, {H,N}} incorrectly checked that H was an N-bit integer, instead of the intended 32-N.
2013-03-26Add config suiteAnders Svensson
To verify return values from diameter:start_service/2 and diameter:add_transport/2 when passing various config.
2013-03-26Deal with config errors detected at transport start less brutallyAnders Svensson
Crashing watchdog and peer_fsm processes was somewhat unseemly. Emit an error report and die silently instead.
2013-03-26Move most transport_opt() validation into diameter_configAnders Svensson
Faulty configuration was previously passed directly on to watchdog and peer_fsm processes, diameter:add_transport/2 happily returning ok and the error resulting on failure of watchdog and/or peer_fsm processes. Now check for errors before getting this far, returning {error, Reason} from diameter:add_transport/2 when one is detected. There are still some errors that can only be detected after transport start (eg. a misbehaving callback) but most will be caught early.
2013-03-26Minor doc/spec fixAnders Svensson
'infinity' is a valid transport_config timeout.
2013-03-25Minor diameter_lib cleanupAnders Svensson
Remove unused functions, add dialyzer specs, make wait/1 less fallible.
2013-03-24Compile example dictionaries against both RFC 3588 and 6733Anders Svensson
2013-03-24Compile example dicts from the repo when running locallyAnders Svensson
Instead of from the installation.
2013-03-24Documentation fixesAnders Svensson
Fix errors and omissions related to dictionary compilation.
2013-03-24Move example dict compilation to examples suiteAnders Svensson
From compiler suite.
2013-03-24Add examples suite for testing example codeAnders Svensson
That is, code installed under examples/code in an installation.
2013-03-24Minor tweaks and fixesAnders Svensson
Fix a broken include in example code, remove an inappropriate ct:pal/2 outside of a testcase, echo more info from test/Makefile.
2013-03-19Merge branch 'maint-r16' into maintAnders Svensson
2013-03-19Prepare releaseErlang/OTP
2013-03-19Minor capx suite fixAnders Svensson
2013-03-18Update appup, vsn -> 1.4.1.1Anders Svensson
2013-03-18Deal with RFC 6733 change to Vendor-Specific-Application-IdAnders Svensson
RFC 6733 has changed the arity of Vendor-Id in this Grouped AVP, from 1* in RFC 3588 to 1 in RFC 6773. This impacts the generated dictionary modules: Vendor-Id is expected to be list-valued in the 3588 dictionary, integer-valued in the 6733 dictionary. This, in turn, breaks the independence of capabilities configuration on a service or transport from the dictionary that will be used to encode an outgoing CER or CEA. This commit fixes this by massaging any Vendor-Specific-Application-Id config as appropriate when constructing CER or CEA for a given dictionary.
2013-03-18Update appupAnders Svensson
2013-03-17Specify timeouts to ct_slave:start/2Anders Svensson
2013-03-17More flexible distribution configAnders Svensson
Allow both share_peers and use_shared_peers to be a list of nodes, or a function that returns a list of nodes.
2013-03-17Add distribution suiteAnders Svensson
2013-03-17Document distribution configAnders Svensson
2013-03-17Distribution fixesAnders Svensson
This is the functionality that allows transports to be shared between identically-named services on different nodes, which has been neither documented nor tested (until now).
2013-03-12Tweak okay -> suspect configAnders Svensson
Make it just a number of timeouts, without a new DWR being sent.
2013-03-12Add testcases for watchdog_configAnders Svensson
2013-03-04Rework watchdog suite to remove most timing dependenciesAnders Svensson
Count watchdog messages instead when this is an alternative.
2013-03-04Rework stats to avoid concurrent read and writeAnders Svensson
Counters read by diameter:service_info(SvcName, transport) can be selected at the same time as the diameter_stats server is folding them into another key, possibly resulting in inaccurate values. Have diameter_stats select from the server process to avoid this and add diameter_stats:sum/1 to sum values from all contributors on a given term.
2013-03-04Minor spec fixAnders Svensson
2013-03-04Add transport_opt() watchdog_configAnders Svensson
To make the number of watchdogs sent before the transitions REOPEN -> OKAY and OKAY -> SUSPECT configurable. Using anything other then the default config is non-standard and should only be used for test.
2013-02-25Prepare releaseOTP_R16BErlang/OTP
2013-02-23Merge branch 'anders/diameter/SoC/OTP-10688'Anders Svensson
* anders/diameter/SoC/OTP-10688: Add RFC 6733 commentary to SoC chapter Add RFC 6737 Capabilities Update dictionary Remove cruft from doc Makefile
2013-02-22Add RFC 6733 commentary to SoC chapterAnders Svensson
The commentary is not yet complete. It currently stops at chapter 4 of the RFC.
2013-02-22Update copyright yearsBjörn-Egil Dahlberg
2013-02-20Add RFC 6737 Capabilities Update dictionaryAnders Svensson
Although it's neither built nor supported in code yet.
2013-02-20Remove cruft from doc MakefileAnders Svensson