Commit Graph

844 Commits (a7362928f4093a773de17ec7abcd9e69067c5110)

Author SHA1 Message Date
Michael Zillgith 8578344e85 - GOOSE subscriber: restore old behavior when data set array is provided by user 4 years ago
Michael Zillgith 1b2d194694 - IED server: For SBOes check test flag match when accepting operate (sSBOes8) 4 years ago
Michael Zillgith f866132e84 - IED server: Reject Cancel/SBOw in WaitForChange state - fixed problem with test case sCtl26 4 years ago
Michael Zillgith 9e6e3487da - removed compiler warnings 4 years ago
Michael Zillgith cb3f460fcf - .NET API: added functions to access DataAttribute properties 4 years ago
Michael Zillgith f6110c1158 - updated API documentation for command termination handler 4 years ago
Michael Zillgith 7540b6a8d7 - Fixed problem with installed headers - application code does not compile only with installed headers 4 years ago
Michael Zillgith abd26eedca - IED client: fixed memory leak when reusing IedConnection 4 years ago
Michael Zillgith 3532623319 - IED server: Goose publisher - set NdsCom when data set not configured or GoEna fails because of large data set 5 years ago
Michael Zillgith c4dcd37449 - added new function DataAttribute_setValue 5 years ago
Michael Zillgith 2b1104c0d3 - IED server - control model - send AddCause with operate- for DOes, SBOes control models 5 years ago
Michael Zillgith bd4bd0fab6 - IED server: GoCB has invalid data set reference when datSet="" in SCL file 5 years ago
Michael Zillgith 4e15343f5b - IED server: integrated GOOSE publisher - lock data model during GOOSE retransmission to avoid corrupted GOOSE data 5 years ago
Michael Zillgith ea268b46a7 - IED server: make presence of RCB.Owner configurable at runtime with function IedServerConfig_enableOwnerForRCB (B1502/S1634) 5 years ago
Michael Zillgith fd3847dcc5 - IED server: make presence of BRCB.ResvTms configurable at runtime with function IedServerConfig_enableResvTmsForBRCB (F1558) 5 years ago
Michael Zillgith d546ebac6f - restrict maximum recursion depth in BerDecoder_decodeLength when indefinite length encoding is used to avoid stack overflow when receiving malformed messages 5 years ago
Michael Zillgith ed810fde0f - MmsValue_equalTypes: check parameters for NULL to avoid dereferencing NULL pointer 5 years ago
Michael Zillgith e04e424b02 - fixed oss-fuzz issues 31399, 31340, 31341, 31344, 31346 5 years ago
Michael Zillgith dc22dc76ec - IED server: fixed bug in log service - old-entry and old-entry-time not updated 5 years ago
Michael Zillgith 842bc271cd - IED server: added new function IedServer_handleWriteAccessForComplexAttribute. Changed WriteAccessHandler behavior when ACCESS_POLICY_ALLOW. 5 years ago
Michael Zillgith cc905b5013 - IED server/model: Added additional functions for ModelNode access 5 years ago
Michael Zillgith 9e27ed5a77 - MMS server: add compile time configuration options to enable/disable fileDelete and fileRename services (fileRename is now disabled by default) 5 years ago
Michael Zillgith 4dc971ba56 - MMS server: better data model lock handling for performance improvements 5 years ago
Michael Zillgith 60d66e5ba4 - some code beautification 5 years ago
Michael Zillgith 5afa1310f3 - IED server: Add function ModelNode_getObjectReferenceEx 5 years ago
Michael Zillgith 5e39c94cf3 - IED server: allow IedServer_setServerIdentity with some parameters set to NULL 5 years ago
Michael Zillgith cdd00da057 - .NET API: Added IDisposable interface to IedServer and IedModel classes
- .NET API: Added method IedModel.SetIedName
5 years ago
Michael Zillgith fe39cc9b24 - IED server: control models - fixed bug that only one control is unselected when connection closes 5 years ago
Michael Zillgith b0fb3259e5 - IedConnection/common: fixed new bug in code to separate elements of object reference 5 years ago
Michael Zillgith 4f0667b597 - removed some warnings and code cleanup 5 years ago
Michael Zillgith de2ce1d008 - removed some compiler warnings (when compiling with clang) 5 years ago
Michael Zillgith db1671587e - IED server: fixed bug - logs (journals) are added to all logical devices instead of just the parents 5 years ago
Michael Zillgith 9e064ab709 - IED Server: prevent integrated GOOSE publisher to crash when ethernet socket cannot be created 5 years ago
Michael Zillgith 23a3b3a371 - IED server: make compatible with tissue 1178 5 years ago
Michael Zillgith 6c2b9ad473 - IED server: reporting - implemented behavior according to tissue 1432 5 years ago
Michael Zillgith 74a227bdf2 - IED server: WriteAccessHandler can tell the stack not to update the
value when returning DATA_ACCESS_ERROR_SUCCESS_NO_UPDATE
5 years ago
Michael Zillgith 5f2e14f712 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 945fe080f3 - removed some compiler warnings 5 years ago
Michael Zillgith 176de25ca0 - IEC 61850 client: IedConnection - list of client control objects is protected by a lock 5 years ago
Michael Zillgith bc29a0b048 - IEC 61850 client: avoid double free when operate and select-with-value on APC fails 5 years ago
Michael Zillgith d08f5a67ac - IED server: fixed problem with client connection handling of setting groups 5 years ago
Michael Zillgith 474a482766 IED server: fixed problem with CONFIG_IEC61850_RCB_ALLOW_ONLY_PRECONFIGURED_CLIENT configuration option enabled 5 years ago
Cédric Boudinet bf27774a86 Svsub latency (#288)
* Changing svReceiverLoop to reduce latency

* adding EthernetHandleSet_destroy to svReceiverLoop
5 years ago
Michael Zillgith 40f8b76ad7 - IED server: handle BRCB.Owner correctly when client uses pre-assigned RCB instance 5 years ago
Michael Zillgith 4793e298ff - IED server: fixed problem that BL FC is not writable (#287) 5 years ago
Michael Zillgith ae4f940753 - .NET API: Added support for SelectStateChangedHandler
- .NET API: Added ModelNode.GetObjectReference
5 years ago
Michael Zillgith c02e99a022 - IEC 61850 client: fixed dead lock in IedConnection_getFileAsync when fileRead times out (#285) 5 years ago
Michael Zillgith 3e98fdfa90 - Client: fixed - IedConnection_getRCBValues doesn't check type of server response (#283) 5 years ago
Michael Zillgith 4deca9a4c0 - IED server: fixed potential deadlock in report module when service tracking is enabled 5 years ago
Michael Zillgith 5d704b8026 - GOOSE subscriber: fixed message validity check 5 years ago
Michael Zillgith a606848a8b - GOOSE subscriber: changed maximum GoID size according to tissue 770 (129 bytes) 5 years ago
Michael Zillgith 7b671f3a01 - GOOSE subscriber: accept GOOSE messages with the correct maximum size of DatSet and GoID 5 years ago
Michael Zillgith b88c4216c8 - IED server: send AddCause for invalid origin also in case of direct control models 5 years ago
Michael Zillgith 8ac9a732df - added function GooseSubscriber_getParserError 5 years ago
Michael Zillgith 146dbb9057 - GOOSE subscriber: improved code to detect invalid GOOSE messages 5 years ago
Michael Zillgith 0c9d1b16f8 - fixed struct initialization problem with Visual Studio 5 years ago
Michael Zillgith 8a55ef47bf - IED server: ControlPerformCheckHandler has same parameters when called again in state WAITING_FOR_SELECT 5 years ago
Michael Zillgith 14f4f1ccf0 - IED server: added ControlSelectStateChangedHandler callback for control model 5 years ago
Michael Zillgith fb5ed11001 - IED server: also respect user provided error and addCause from ControlPerformCheckHandler when the handler is called multiple times in waiting-for-select state 5 years ago
Michael Zillgith a5bcd3c251 - IED server: fixed problem - control not unselected after connection is closed for sboClass "operate-many" 5 years ago
Michael Zillgith 9348683462 - IED server: fixed bug in cdc.c (wrong type for tOpOk data attribute) 5 years ago
Michael Zillgith cc80bffa69 - IED server: support for configuration of EditSG service and online visibility of SGCB.ResvTms at runtime 5 years ago
Michael Zillgith 53d8a2f715 - IED server: changed types TrkOps and OptFlds to variable length bit strings 5 years ago
Michael Zillgith 23da9ba28e - IED server: control service tracking - fixed problem with missing attributes for SBOw tracking 5 years ago
Michael Zillgith 981c2dd5f3 - fix problem: TLS does not work with HandleSet 5 years ago
Michael Zillgith e59aa5521e - fixed memory leak in ISO server 5 years ago
Michael Zillgith 767bc887de - IED server: fixed problems in control service tracking 5 years ago
Michael Zillgith 49cc901263 - fixed problem in control service tracking 5 years ago
Michael Zillgith a165d1698d - MMS: changed handling of variable sized bit strings (now also accepts bit strings of larger size, ignoring the bits that exceed the specified size) 5 years ago
Michael Zillgith 3f42387ed7 - IED server: fixed dupd trigger handling 5 years ago
Michael Zillgith e4fcb923a0 - fixed problems in control service tracking 5 years ago
Michael Zillgith 00a821e67e Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 543d7802f5 - MMS client: add handling of initiate error PDU 5 years ago
Michael Zillgith b27e363372 - IED server: add support for correct CBB handling (required for test case sAss4) and initiate error PDU 5 years ago
Michael Zillgith 42802db6f1 - added -Wextra to Makefile and changed code to avoid resulting warnings 5 years ago
Michael Zillgith 036f60e4f1 - fixed compiler warning 5 years ago
Michael Zillgith 07525b598f Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 1f56110d32 - removed some compiler warnings 5 years ago
Michael Zillgith fb9fc7b88b
Merge pull request #265 from mbourhis/v1.5-fix_GooseEthernetInterfaceId_allocation
IED Server/Goose: Fix the 'Goose Ethernet Interface Id' allocation
5 years ago
Michael Zillgith 7ee278cead - IEC 61850 client: using poll/select to reduce CPU consumption 5 years ago
Mikael Bourhis a095c16139 IED Server/Goose: Fix the 'Goose Ethernet Interface Id' allocation
Issue:
In the case of 'GooseInterfaceId' initialization for all GOOSE
publishers (API function: IedServer_setGooseInterfaceId()), only the pointer of
the character string is saved and used for the next operations.
If the corresponding memory is cleared or overwritten in the
application program, a segfault may occurred in libiec61850.

Proof:
In the 'server_example_goose.c' example, if we used a temporary
allocated memory to store the 'ethernetIfcId', the bug will occur:

        /* set GOOSE interface for all GOOSE publishers (GCBs) */
    +   unsigned int ethernet_interface_id_length = strnlen(ethernetIfcID, 32);
    +   char * tmp_ethernet_interface_id = calloc(sizeof(char), ethernet_interface_id_length + 1);
    +   memcpy(tmp_ethernet_interface_id, ethernetIfcID, ethernet_interface_id_length);
    +
        IedServer_setGooseInterfaceId(iedServer, tmp_ethernet_interface_id);
    +
    +   explicit_bzero(tmp_ethernet_interface_id, ethernet_interface_id_length);
    +   free(tmp_ethernet_interface_id);

(This issue was discovered during the rewriting of 'server_example_goose'
in Python, with the Swig wrapper: the allocated memory for
'ethernetIfcID' parameter in the Swig wrapper is automatically reused)

Fix:
The 'gooseInterfaceId' attribute of 'MmsMapping' in libiec61850 must be a new
allocated memory (with the use of 'StringUtils_copyString()') and deallocated
in the 'MmsMapping_destroy()' function.
5 years ago
Michael Zillgith ec5ccb62a0 - IED server: RCB and LCB service tracking replaced $ with . characters in object references 5 years ago
Michael Zillgith 5e520f21b5 - IED server: added missing data set update in GoCB service tracking object 5 years ago
Michael Zillgith 7e1c2ef18f - IED server: added GoCB event callback
- IED server: added configuration option to use GoCB block handling without the integrated GOOSE publisher (IedServerConfig_useIntegratedGoosePublisher)
5 years ago
Michael Zillgith e1ab323c1b - IED server: added code for log service tracking 5 years ago
Michael Zillgith 3a2eea3611 - extended service tracking example for GoCB and SGCB service tracking 5 years ago
Michael Zillgith fcdb83bc2f - IED server: fixed memory leak in service tracking code
- IED server: fixed bug in GoCB service tracking (goID and dataSet not set)
5 years ago
Michael Zillgith bafe27a0e8 - IED server: add support for tissue 807 (owner attribute in RCB is only present when ReportSettings@owner attribute is true) 5 years ago
Michael Zillgith 9809582f96 - IED server: implemented tissue 1453 also for writing to "RptId"
(purgeBuf only executed when value changes)
5 years ago
Michael Zillgith 42013e1550 - MMS client: fixed bug in TLS connection handling 5 years ago
Michael Zillgith 0b58716ea3 - IED server: fixed issue - read access to SGCB is not possible when read access handler is installed 5 years ago
Michael Zillgith 3e1a23a6d0 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith aabe20031f - GOOSE subscriber: always copy GoID and DatSet from GOOSE message; always create new MmsValue instance for GOOSE data set when subscriber is observer 5 years ago
Michael Zillgith 69e359b03f - added new DataAttributeType value IEC61850_TYPE_UNKNOWN 5 years ago
Michael Zillgith a17e9603e0 - config file parser: fixed problem when compiling with visual
studio/C++
5 years ago
Michael Zillgith 2bc47a6a6c - IED server: added configuration file support for data set entries with array elements or array element components 5 years ago
Michael Zillgith 131fcf5236 * IEC 61850 client: added missing check in ClientReportControlBlock_getConfRev 5 years ago
Michael Zillgith ed8c8b3ac7 - IEC 61850 server: fixed some variable initialization issues caused by recent changes 5 years ago
Michael Zillgith e4b2849894 - fixed problems in handling array elements and array element components 5 years ago
Michael Zillgith 6a3c66eafa - fixed bug in MmsConnection_readMultipleVariables: send invaid messsage and memory access errors when too many items are passed to the function exhausting MMS payload size 5 years ago