Commit Graph

137 Commits (9fa68a9d9395fabeb4716f870a1c1c6f1c5869fb)

Author SHA1 Message Date
Michael Zillgith a3a6f2c77f - IED Server: added function to set time quality for internally updated times (LIB61850-372) 3 years ago
Michael Zillgith 17a705d8c0 - fixed - servers sends object-access-unsupported on GetAllData when ReadAccessHandler is installed (LIB61850-370) 3 years ago
Michael Zillgith ad78b9de26 - removed redundant declarations (LIB61850-359) 3 years ago
Michael Zillgith e02b85f147 - fixed data set handling problem when using functional naming (ldName) (LIB61850-160) 3 years ago
Michael Zillgith 6b23f87b23 - fixed code to support arrays of complex data attributes 3 years ago
Michael Zillgith 82e52881f9 - fixed problem with write access to data attribute of type array (LIB61850-336) 3 years ago
Michael Zillgith 30f10f6c6d Merge branch 'v1.5_develop' into v1.6_develop 3 years ago
Michael Zillgith 8addfc2095 - replaced most str(n)cpy/str(n)cat calls (LIB61850-333) 3 years ago
Michael Zillgith 7099535a39 Merge branch 'v1.5_develop' into v1.6_develop 3 years ago
Michael Zillgith 3fe0effcda Merge branch 'v1.5_develop_323' into v1.5_develop 3 years ago
Michael Zillgith a4fdf089bb - fixed locking mechanism in logging.c (LIB61850-327) 3 years ago
Michael Zillgith b3868a2f9f - removed some cppcheck warnings 3 years ago
Michael Zillgith 35ac479430 - fixed strncpy usage 3 years ago
Michael Zillgith c76b5dd2da - server reporting: added code to prevent race condition with
RCBEventHandler
3 years ago
Michael Zillgith 9d9f03585f - IED server: improved control state machine performance (LIB61850-312) 4 years ago
Michael Zillgith a7362928f4 - added semaphore for server side RCB value access 4 years ago
Michael Zillgith b27681f408 - implemented GET_PARAMETER event for IedServer_RCBEventHandler
- implemented additional access functions for ReportControlBlock to allow access to runtime values
4 years ago
Michael Zillgith 93d8dfc856 - reporting.c: fixed report entry counter and assert problems
- IED server: disactivate all RCB instances when stopping the server
4 years ago
Michael Zillgith 659dd49338 - reworked server side array handling (-> incompatible data model structure changes!) 4 years ago
Michael Zillgith 25394b11e1 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.6 4 years ago
Michael Zillgith 9a2fd3e23e - started to implement functional naming for LDs 4 years ago
Michael Zillgith 4ffed8de11 - IED server: fixed crash when IEDName+LDInst is too long 4 years ago
Michael Zillgith de3aba0cb6 - .NET API: added support for server integrated GOOSE publisher
- IED server: fixed bug in GoCBEventHandler
4 years ago
Michael Zillgith 1bb76893a2 - fixed compilation problem when compiling without GOOSE support (#325) 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 4 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 842bc271cd - IED server: added new function IedServer_handleWriteAccessForComplexAttribute. Changed WriteAccessHandler behavior when ACCESS_POLICY_ALLOW. 5 years ago
Michael Zillgith 60d66e5ba4 - some code beautification 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 db1671587e - IED server: fixed bug - logs (journals) are added to all logical devices instead of just the parents 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 d08f5a67ac - IED server: fixed problem with client connection handling of setting groups 5 years ago
Michael Zillgith 4793e298ff - IED server: fixed problem that BL FC is not writable (#287) 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 e4fcb923a0 - fixed problems in control service tracking 5 years ago
Michael Zillgith 42802db6f1 - added -Wextra to Makefile and changed code to avoid resulting warnings 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
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 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 0b58716ea3 - IED server: fixed issue - read access to SGCB is not possible when read access handler is installed 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 9ab37e9836 - IED Server/GOOSE: Don't send GOOSE message with new event while data model is locked 5 years ago
Michael Zillgith 649db2b3d6 - IEC 61850 server: extended control service tracking
- IEC 61850 server: partially implemented setting group service tracking
- IEC 61850 server: partially implemented GoCB service tracking
5 years ago