aboutsummaryrefslogtreecommitdiffstats
path: root/lib/diameter/src
AgeCommit message (Collapse)Author
2011-12-20Merge branch 'anders/diameter/testsuites/OTP-9829' into maintAnders Svensson
* anders/diameter/testsuites/OTP-9829: (21 commits) Install example dictionaries Move example code to examples/code Move example dictionaries to examples/dict Set name/prefix at compilation, not in dictionaries Add RFC 4004 (MIP) dictionary Add RFC 4740 (SIP) dictionary Add RFC 4072 (EAP) dictionary Add RFC 4006 (CC) dictionary Add RFC 4005 (NAS) dictionary Add standards testcase to compiler suite Remove {init,end}_per_group workaround Use new syntax for specifying ct group properties Increase timetrap in compiler suite Minor capx suite tweaks Minor makefile tweak Remove trailing whitespace Update skip condition in gen_sctp suite Reintroduce gen_sctp suite Remove delay from connect in transport suite Add codec testcase for decode of unknown AVPs ...
2011-12-20Merge branch 'anders/diameter/compilation_options/OTP-9826' into maintAnders Svensson
* anders/diameter/compilation_options/OTP-9826: Allow module name mapping at dictionary compilation Fix blunder that broke name/prefix compilation options
2011-12-16Install example dictionariesAnders Svensson
2011-12-16Move example code to examples/codeAnders Svensson
2011-12-16Allow module name mapping at dictionary compilationAnders Svensson
This is to make the 'inherits' option usable with dictionaries that inherit specific AVPs. Something like "diameterc -inherts from/to" effectively replaces "@inherits from" in the source dictionary with "@inherits to".
2011-12-16Fix blunder that broke name/prefix compilation optionsAnders Svensson
2011-12-16Ensure capabilities exchange can't fail too earlyAnders Svensson
In particular, not before the service process has a monitor on the watchdog since the watchdog's exit reason is meaningful.
2011-12-09Merge branch 'anders/diameter/suites_and_dialyzer/OTP-9781'Anders Svensson
* anders/diameter/suites_and_dialyzer/OTP-9781: Tell dialyzer not to warn about unused functions Add compiler testcases for generation and compilation to beam Fix semantic checks on AVP qualifiers Minor codegen/debug fix Deal with crypto:start() failure in TLS suite Don't assume empty sndrcvinfo in diameter_sctp
2011-12-08Tell dialyzer not to warn about unused functionsAnders Svensson
Depending on the dictionary, generated dictionary modules may contain unused functions included from diameter_gen.hrl. There may still be warnings however since even used functions can contain code that isn't reached for a given dictionary. It would be useful for diameter to generate spec attributes for a dictionary's generated records but the format of these is currently undocumented.
2011-12-08Fix semantic checks on AVP qualifiersAnders Svensson
Didn't quite interpret '*' as RFC 3588 dictates. In particular, the interpretation depends on what's being qualified, a required, optional or fixed AVP.
2011-12-08Minor codegen/debug fixAnders Svensson
Writing a dictionary to file failed.
2011-12-07Merge branch 'anders/diameter/suites_and_dialyzer/OTP-9781'Anders Svensson
* anders/diameter/suites_and_dialyzer/OTP-9781: Minor diameter_dict_scanner fix Skip sctp tests on {error, esocktnosupport} Ensure that TLS will be available in TLS suite
2011-12-07Merge branch 'anders/diameter/callback_redirection/OTP-9777'Anders Svensson
* anders/diameter/callback_redirection/OTP-9777: Update documentation Use diameter_callback in relay and tls suites Use diameter_callback in failover suite Update app suite Smarter diameter_callback
2011-12-07Merge branch 'anders/diameter/dict_error_identification/OTP-9639'Anders Svensson
* anders/diameter/dict_error_identification/OTP-9639: (27 commits) Update documentation Improve base_rfc3588.dia formatting Make typo fix backwards compatible Fix base_rfc3588.dia typo Check compiler dependencies in app suite Move type definitions into diameter.erl Fix interpretation of vendor id in @grouped Add range checks on dictionary integers Don't explicitly load inherited modules Tweak diameter_make interface Add format testcase to compiler suite Add diameter_dict_util:format/1 for reconstructing a dictionary file Make diameter_types usable with @codecs Minor codegen tweaks Remove unnecessary includes Add compiler suite Update app suite Update codec suite Vendor id fixes No longer inherit common dictionary in relay dictionary ...
2011-12-07Don't assume empty sndrcvinfo in diameter_sctpAnders Svensson
It isn't always the case. The information isn't currently used in any case.
2011-12-06Minor diameter_dict_scanner fixAnders Svensson
Spec was wrong. Scanning a file that ended with $' or contained an empty $'-delimited string would have failed.
2011-12-06Smarter diameter_callbackAnders Svensson
The module was originally just intended as a minimal callback implementation that could be used as a template. Being able to order just a subset of callbacks (with reasonable defaults) makes for simpler code in many cases however so ready support for this can be useful.
2011-12-05Improve base_rfc3588.dia formattingAnders Svensson
2011-12-05Make typo fix backwards compatibleAnders Svensson
Also, add better definitions for Termination-Cause so as to avoid grotesquely long macro names in the generated hrl, and for consistency with other enums. That said, the names are still too long to be very practical.
2011-12-05Fix base_rfc3588.dia typoAnders Svensson
2011-12-05Move type definitions into diameter.erlAnders Svensson
2011-12-05Fix interpretation of vendor id in @groupedAnders Svensson
A value is required to be the same as any specified with @avp_vendor_id but otherwise the two locations are equivalent. Both possibilities are allowed since @avp_vendor_id is required for AVPs of types other than Grouped (modulo it not really needing to exist at all: see commit 943266c9) and since the grammar parsed in @grouped (from RFC 3588) allows it.
2011-12-05Add range checks on dictionary integersAnders Svensson
Check that values that should be Unsigned32 actually are.
2011-12-04Don't explicitly load inherited modulesAnders Svensson
Just use include options to add to the code path and expect that dependent modules will either already have been loaded or will be loaded dynamically, thereby avoiding having a module being left as both current and old code when compiling concurrently. Not a problem for a human user interactively compiling one module at a time but the compiler test suite for one will compile concurrently. In any case, leaving behind old code is probably not what someone would expect while relying on the code path probably is.
2011-12-04Tweak diameter_make interfaceAnders Svensson
2011-12-04Add diameter_dict_util:format/1 for reconstructing a dictionary fileAnders Svensson
2011-12-04Make diameter_types usable with @codecsAnders Svensson
2011-12-04Minor codegen tweaksAnders Svensson
2011-12-02Vendor id fixesAnders Svensson
@vendor is only required if the id is actually needed. That is, if there is a locally defined AVP whose V flag is set and which does not have a vendor id set by @avp_vendor_id. Also, in the case of an inherited AVP, fix avp_name/2 in a generated dictionary module defaulting vendor id from @vendor in the inheriting dictionary but avp_header/1 defaulting it from the inherited dictionary. In both cases the vendor id now defaults from @vendor in the inherited dictionary. Note that @avp_vendor_id from the inherited dictionary is ignored: any changes from @vendor have to be explicit in the inheriting dictionary. A better alternative to @avp_vendor_id is to simply inherit from dictionaries setting the appropriate @vendor but this was previously somewhat broken so @avp_vendor_id was needed to set the id of an AVP whose definition was copied from another source into a dictionary that only inherited from the common dictionary (which doesn't set V on any AVPs).
2011-12-02No longer inherit common dictionary in relay dictionaryAnders Svensson
Base AVPs used for relaying and statistics are always taken from the common dictionary. This is consistent with the way that Route-Record is handled for one, and statistics should not rely on the dictionary of any specific application.
2011-12-02Adapt diameter_makeAnders Svensson
2011-12-02Always modify code with diameter_exprecsAnders Svensson
A dictionary need define neither messages nor grouped AVPs, in which case no record definitions are generated. However, the generated module still includes diameter_gen.hrl and this requires some functions diameter_exprecs would otherwise insert, even if the code that uses these will not be called.
2011-12-02Adapt diameter_codegenAnders Svensson
2011-12-02diameter_spec_util -> diameter_dict_util and adapt to parserAnders Svensson
Errors are now detected after the parse with format_error/1 providing understandable error messages, pointing to the offending line number(s) in the dictionary source.
2011-12-02Replace dictionary file parserAnders Svensson
The previous parse was very adhoc and simply crashed on any kind of input error, providing no identification of the objectionable input that caused the parse to fail. The new parser is generated from a yecc grammar, making it easier both to understand what it is that's being parsed and to provide useful diagnostics to the user in case of error.
2011-11-29Fix transport restart bugAnders Svensson
This caused transport processes to be restarted even though diameter:remove_transport/2 had removed their configuration from table.
2011-11-15Version -> 0.11, update appup, minor app suite fixAnders Svensson
2011-11-10Accept any 2xxx result code in CEAAnders Svensson
2011-11-10Rename some functions plus comment tweakAnders Svensson
In diameter_service: make_packet -> make_request_packet make_header -> make_request_header make_reply_packet -> make_answer_packet
2011-11-10Send events for connection establishment failureAnders Svensson
If a peer fsm process exits then the exit reason is received by the service process in a 'DOWN' message. If the reason is the one generated by diameter_peer_fsm:close/2, which is called to signal a non-transport failure before the completion of capabilities exchange (eg. receiving an unsuccessful CEA), then an event is sent to any subscribers. Also, tweak capabilities_cb return values for more informative event data.
2011-11-10Add capabilities_cb transport optionAnders Svensson
Value is a function that's applied to the transport reference and capabilities record after capabilities exchange. If a callback returns anything but 'ok' then the connection is closed. In the case of an incoming CER, the callback can return a result code with which to answer. Multiple callbacks can be specified and are applied until either all return 'ok' or one doesn't. Also, include Origin-State-Id in answers where it was previously omitted.
2011-11-10Minor tls_ack simplificationAnders Svensson
We're already monitoring the transport process, no need to do so again.
2011-11-10Fix comment typoAnders Svensson
2011-11-09Minor dependency fixAnders Svensson
2011-10-19Dumb down release target to Solaris /usr/ucb/installAnders Svensson
2011-10-19Dumb down opt/release targets to make 3.80Anders Svensson
2011-10-19Minor tweaks and cleanupAnders Svensson
Tweak some comments and variable names, move things around a bit (default src target is now opt, not debug), only clean what's built, use +warn_export_vars.
2011-10-18Need absolute -pa for bootstrap buildAnders Svensson
Otherwise include_lib will fail.
2011-10-18Simpler release targets for src subdirectoriesAnders Svensson
2011-10-17Use secondary expansion for src subdirectory rulesAnders Svensson
Makes for a quieter rule with no recursion.