summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* erts: Initialize links when reading file infolukas/erts/win32-read_file_info-linksLukas Larsson2014-09-221-1/+3
|
* Merge branch 'lukas/docfixes-17.3/OTP-12152' into maintLukas Larsson2014-09-104-10/+10
|\ | | | | | | | | * lukas/docfixes-17.3/OTP-12152: Fix some spelling misstakes
| * Fix some spelling misstakesLukas Larsson2014-08-044-10/+10
| |
* | Merge branch 'ia/inets/appup' into maintIngela Anderton Andin2014-09-101-0/+8
|\ \
| * | inets: Soft upgradeIngela Anderton Andin2014-09-081-0/+8
| | |
* | | Merge branch 'anders/diameter/17.3_release/OTP-12093' into maintAnders Svensson2014-09-092-3/+21
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | * anders/diameter/17.3_release/OTP-12093: vsn -> 1.7.1 Update appup for OTP-12094 Update appup for OTP-12080 Update appup for OTP-12069
| * | | vsn -> 1.7.1Anders Svensson2014-09-081-1/+1
| | | |
| * | | Update appup for OTP-12094Anders Svensson2014-09-081-0/+12
| | | | | | | | | | | | | | | | diameter_codec must be loaded before diameter_traffic.
| * | | Update appup for OTP-12080Anders Svensson2014-09-081-2/+6
| | | |
| * | | Update appup for OTP-12069Anders Svensson2014-09-081-2/+4
| | | |
* | | | Merge branch 'anders/diameter/5014/OTP-12074' into maintAnders Svensson2014-09-091-1/+16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * anders/diameter/5014/OTP-12074: Don't leave extra bit in decoded AVP data
| * | | | Don't leave extra bit in decoded AVP dataAnders Svensson2014-09-081-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The bit is added in diameter_codec to induce a decode error in the case of 5014 errors, but was not removed before returning the decoded result. Code examining the binary data in a diameter_avp record would then see the extra bit.
* | | | | Merge branch 'anders/diameter/Failed-AVP/OTP-12094' into maintAnders Svensson2014-09-093-25/+80
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | * anders/diameter/Failed-AVP/OTP-12094: Fix best effort decode of Failed-AVP Fix decode of Failed-AVP in RFC 3588 answer-message
| * | | | Fix best effort decode of Failed-AVPAnders Svensson2014-09-083-13/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit c2c00fdd didn't get it quite right: it only decoded failed AVPs in the common dictionary since it's this dictionary an answer-message is decoded in. An extra dictionary isn't something that's easily passed through the decode without rewriting dictionary compilation however, and that's no small job, so continue with the use/abuse of the process dictionary by storing the dictionary module for the decode to retrieve. This is one step worse than previous uses since the dictionary is put in one module (diameter_codec) and got in another (the dictionary module), but it's the lesser of two evils.
| * | | | Fix decode of Failed-AVP in RFC 3588 answer-messageAnders Svensson2014-09-081-12/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 066544fa had the unintended consequence of breaking the decode of Failed-AVP in answer-message as defined in the RFC 3588, since the grammar doesn't list Failed-AVP as an explicit component AVP, in contrast to the RFC 6733 grammar, which does. Handle this case explicitly, as an exception, just as with Failed-AVP as parent AVP.
* | | | | Merge branch 'anders/diameter/counters/OTP-12080' into maintAnders Svensson2014-09-092-30/+63
|\ \ \ \ \ | |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * anders/diameter/counters/OTP-12080: Fix counters for answer-message Count relayed messages on {relay, Rbit} Count request retransmissions Fix counting of outgoing requests
| * | | | Fix counters for answer-messageAnders Svensson2014-09-081-26/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An answer message that sets the E-bit is encoded/decoded with Diameter common dictionary, using the answer-message grammar specified in the RFC. However, the dictionary of the application in question is the one that knows the command code of the message. Commit df19c272 didn't make this distinction when incrementing counters for an answer-message, using the common dictionary for both purposes, causing the message to be counted as unknown. This commit remedies that.
| * | | | Count relayed messages on {relay, Rbit}Anders Svensson2014-08-051-4/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of grouping them with 'unknown'. These messages were keyed on {ApplicationId, CommandCode, Rbit} prior to commit df19c272, but distinguishing between the relay application and others is probably more useful. The only reason for not including the R-bit in the unknown key is that the key is also used elsewhere, and relay is an expected case while unknown isn't.
| * | | | Count request retransmissionsAnders Svensson2014-08-051-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mentioned in the parent commit. The {Id, send, retransmission} key is of the same form as the {Id, send|recv, error} key used for encode/decode errors.
| * | | | Fix counting of outgoing requestsAnders Svensson2014-08-052-0/+3
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit df19c272 broke this in avoiding counting on arbitrary keys. It didn't break it sufficiently for the only counters usage in the test suites to fail however: watchdog counters worked as intended, but no others, not even CER and DPR. More testcases are needed. This commit does change/fix the previous semantics somewhat: - Retransmissions are no longer counted. This previously made it impossible to distinguish between these and unanswered requests, since both counted as an outgoing request. There should probably be a retransmission counter but it should be distinct from the sent request counter. - The counting is always on the node from which diameter:call/4 is invoked, not the node on which the transport resides, as was previously the case. (Although they're typically one and the same.) Note that none of these semantics are documented as yet, so we're not changing a documented interface.
* | | | Merge branch 'anders/diameter/info/OTP-12069' into maintAnders Svensson2014-09-092-21/+82
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * anders/diameter/info/OTP-12069: Map binary process info to a reference/byte count Add info item for diameter:service_info/2 Add (process) info tuple to diameter:service_info/2 Add diameter_dbg:sizes/0 Tweak comments
| * | | | Map binary process info to a reference/byte countAnders Svensson2014-08-051-1/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That is, instead of including the list in a diameter:service_info/2 info tuple, only include the number of references and the number of bytes referenced. The list itself can be quite large and typically isn't that interesting, at least not to a diameter user.
| * | | | Add info item for diameter:service_info/2Anders Svensson2014-07-211-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To extract only process info from connections info, which can be useful to reduce the amount of information returned. Choose 'info' for the item since process_info is more than one word: all others are one. Don't choose memory since it's too specific: might want to use it for more.
| * | | | Add (process) info tuple to diameter:service_info/2Anders Svensson2014-07-211-6/+33
| | | | | | | | | | | | | | | | | | | | | | | | | To show process_info of interest. This is not yet documented since it may well change.
| * | | | Add diameter_dbg:sizes/0Anders Svensson2014-07-211-1/+11
| | | | | | | | | | | | | | | | | | | | To return sizes of named ets tables.
| * | | | Tweak commentsAnders Svensson2014-07-211-13/+13
| |/ / /
* | | | Merge branch 'sverk/crypto-check-version/OTP-12146' into maintSverker Eriksson2014-09-091-0/+22
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * sverk/crypto-check-version/OTP-12146: crypto: Verify OpenSSL library major version at load
| * | | | crypto: Verify OpenSSL library major version at loadSverker Eriksson2014-09-081-0/+22
| | |/ / | |/| | | | | | | | | | | | | | to prevent strange memory corruption crashes due to mismatch between header and library versions.
* | | | Merge branch 'fishcakez/dialyzer_beam_opts' into maintHenrik Nord2014-09-093-4/+89
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | * fishcakez/dialyzer_beam_opts: Use compile options when dialyzing beam files
| * | | | Use compile options when dialyzing beam filesJames Fish2014-07-163-4/+89
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fetch the compile options from beam files, and use them when creating core from the abstract code. Previously the options were ignored. Test by Henrik Nordh
* | | | | Merge branch 'hans/common_test/prop_test' into maintHans Nilsson2014-09-094-11/+36
|\ \ \ \ \ | |_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | * hans/common_test/prop_test: ssh: update for triq tests common_test: ct_property_test call correct Triq function. ct_property_test: add Triq support
| * | | | ssh: update for triq testsHans Nilsson2014-09-093-4/+23
| | | | |
| * | | | common_test: ct_property_test call correct Triq function.Hans Nilsson2014-09-091-1/+5
| | | | |
| * | | | ct_property_test: add Triq supportTuncer Ayaz2014-09-091-7/+9
|/ / / / | | | | | | | | | | | | Also, ensure that the right module's counterexample/0 is called.
* | | | Merge branch 'bjorn/asn1/misc-bug-fixes/OTP-12125' into maintBjörn Gustavsson2014-09-0811-230/+317
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bjorn/asn1/misc-bug-fixes/OTP-12125: Workaround for combining two object sets separated by extension Clean up and correct handling of parameters for parameterized types Check the formal parameter for parameterized type definitions Report errors also for unused parameterized types Remove unused code for ABSTRACT-SYNTAX and TYPE-IDENTIFIER Correct expansion of parameterized types Add the module name to the #classdef{} record Eliminate the use of #identifier{} outside the tokeniser and parser Fix problem with object identifiers in external modules Rewrite get_referenced_type/2 Teach the ASN.1 compiler to handle objects in field names Teach the ASN.1 compiler to understand "EXPORTS ALL" Teach the ASN.1 compiler the parse option
| * | | | Workaround for combining two object sets separated by extensionBjörn Gustavsson2014-09-013-1/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The following type of code would crash the compiler: OSET SOME-CLASS ::= {OSET1, ..., OSET2}
| * | | | Clean up and correct handling of parameters for parameterized typesBjörn Gustavsson2014-09-011-74/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous code looked at the actual parameters supplied when instantiating the type to determine the type of the argument; the correct way is to determine the type by looking at the governor and case of the formal parameter.
| * | | | Check the formal parameter for parameterized type definitionsBjörn Gustavsson2014-09-012-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check the formal parameters for a parameterized type definition. If the governor for a formal parameter is absent, the formal parameter must be in upper case.
| * | | | Report errors also for unused parameterized typesBjörn Gustavsson2014-09-011-5/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Definitions for parameterized types are verified once very early, and one more time when they are instantiated. Errors found during the first check were ignored, so errors for unused parameterized types were not reported.
| * | | | Remove unused code for ABSTRACT-SYNTAX and TYPE-IDENTIFIERBjörn Gustavsson2014-09-013-12/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before classes were fully implemented, there was support for ABSTRACT-SYNTAX and TYPE-IDENTIFIER. Some of that code is still there and is no longer used. Get rid of it and correct comments.
| * | | | Correct expansion of parameterized typesBjörn Gustavsson2014-09-014-46/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Attempting to compile: SomeType{SOME-CLASS-NAME, SOME-CLASS-NAME:SomeSet} ::= ... SEQUENCE { something SOME-CLASS-NAME.&id({SomeSet}) } would crash the compiler, because the actual parameter for SOME-CLASS-NAME was not substituted into the governor for the SomeSet parameter. While we are at it, combine the functionality of is_class/2 and get_class_def/2 (eliminating is_class/2). Most callers call both function.
| * | | | Add the module name to the #classdef{} recordBjörn Gustavsson2014-09-013-3/+4
| | | | | | | | | | | | | | | | | | | | | | | | | If we want construct an #'Externaltypereference'{} from a #classdef{} record, we will need the module name.
| * | | | Eliminate the use of #identifier{} outside the tokeniser and parserBjörn Gustavsson2014-09-013-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The only remaining use of #identifier{} in asn1ct_check was in a temporary packaging of a value that would be ultimately be put into #valuedef{}. Therefore we can eliminate that last usage but putting the value directly into a #valuedef{} and we can move the record definition into asn1ct_parser2.
| * | | | Fix problem with object identifiers in external modulesBjörn Gustavsson2014-09-013-25/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When parsing ASN.1, certain constructs can only be understood in the full context of the entire ASN.1 module. For instance, the value following ID in this simplified excerpt from MTSAbstractService88: administration-88 PORT ::= { ID {id-pt-administration 88} } the value following "ID" can be interpreted either as value for: SEQUENCE { id-pt-administration INTEGER } or as an OBJECT IDENTIFIER. Our ASN.1 parser assumes that a SEQUENCE is meant, and if that later turns out to be wrong, the SEQUENCE value is rewritten to an OBJECT IDENTIFIER. The problem is that at the time of the rewrite, we no longer know in which ASN.1 module id-pt-administration was defined in, and we have to use the module name in the state{} record. Unfortunately, the module name in the state{} record may not always be correct. While there are attempts in the code to keep the module name up-to-date when checking imported types, it is not done consistently, and it seems to be a difficult and error-prone task to attempt to make it consistent. A safer and less error-prone approach is to make sure that we don't lose the module name while parsing. To make it clear what we are doing, we will introduce a new #seqtag{} record that are used for tags in SEQUENCE values. The name is based on its primary use. The record also contains the module in case it happens to be an OBJECT IDENTIFIER.
| * | | | Rewrite get_referenced_type/2Björn Gustavsson2014-09-011-48/+38
| | | | | | | | | | | | | | | | | | | | | | | | | Make sure that we continue to follow external references until we find a real type.
| * | | | Teach the ASN.1 compiler to handle objects in field namesBjörn Gustavsson2014-09-011-4/+19
| | | | |
| * | | | Teach the ASN.1 compiler to understand "EXPORTS ALL"Björn Gustavsson2014-09-011-0/+3
| | | | | | | | | | | | | | | | | | | | EXPORTS ALL is the same as leaving out the EXPORTS statement.
| * | | | Teach the ASN.1 compiler the parse optionBjörn Gustavsson2014-09-011-2/+17
| | | | |
* | | | | Merge branch 'bjorn/asn1/decoding-robustness/OTP-12145' into maintBjörn Gustavsson2014-09-083-22/+86
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * bjorn/asn1/decoding-robustness/OTP-12145: BER decoding: Improve error checking for indefinite length BER: Test decoding of indefinite lengths
| * | | | | BER decoding: Improve error checking for indefinite lengthBjörn Gustavsson2014-08-112-22/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When an indefinite length was given, the decoder could look beyond the end of the buffer for the 0,0 that signals the end of the value.