Commit Graph

791 Commits (fcefc746fea286aeaa40d2f62240216da81c85e5)

Author SHA1 Message Date
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
Michael Zillgith ee4da06690 - IEC 61850 server: fixed problem with test case sRp4 - RCB RptID attribute is not empty after writing empty string 5 years ago
Michael Zillgith cbd5c0b36f - GOOSE/SV publisher: remove internal header file from API header 5 years ago
Michael Zillgith 504c260667 - fixed program crash when normal mode parameers are missing in presentation layer (#252) 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 805d73b86f - GOOSE: added GOOSE observer feature (GooseSubscriber listening to all GOOSE messages) and GOOSE observer example 5 years ago
Michael Zillgith 9ac8192bae - IED Server: fixed service tracking object references for RCB and GoCB service tracking 5 years ago
Michael Zillgith 3e83cd6194 - GOOSE receiver: improvements in GOOSE receiver 5 years ago
Michael Zillgith 34647c6876 - GOOSE publisher: Added doxygen comments and functions GoosePublisher_publishAndDump, GoosePublisher_setStNum, GoosePublisher_setSqNum 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
Michael Zillgith 88acbd49c4 - COTP: fixed possible heap buffer overflow when handling message with invalid (zero) value in length field (#250) 5 years ago
Michael Zillgith 0129032f08 - IEC 61850 server: fixed - cancel command for time activated control returns object-access-denied even in case of success 5 years ago
Michael Zillgith cc22c69fb1 Merge branch 'v1.5' of https://github.com/mz-automation/libiec61850 into v1.5 5 years ago
Michael Zillgith 24a380c845 - IEC 61850 server: added updating of missing attributes for control
service tracking
5 years ago
Michael Zillgith 8bc7b75e11 - IEC 61850 server: fixed crash in control service tracking when application doesn't register control handler 5 years ago
Michael Zillgith 2467457b5b - IEC 61850 server: fixed problem with wrong service-type for service
tracking when writing URCBs (SetBRCBValues instead of SetURCBValues)
5 years ago
Michael Zillgith 80d11fbf78 - IEC 61850 server: started to implement control service tracking
(implemented support for SpcTrk)
5 years ago
Michael Zillgith 4ee5891388 - fixed debug output in iso_server.c 5 years ago
Michael Zillgith 2f5817e0ac - IEC 61850 server: implemented service tracking for BRCBs and URCBs 5 years ago
Michael Zillgith 920eabe31f - IEC 61850 client: ReasonForInclusion type is now int to be compatible
with C++
5 years ago
Michael Zillgith 004789cf39 - fixed error in API documentation 5 years ago
Michael Zillgith 4a3702112e - MMS client: fixed potential problem in multi-variable write response parsing 5 years ago
Michael Zillgith 27ae0a5c0f - removed outdated comment 5 years ago
Michael Zillgith 69d93f398c - IEC 61850 client: fixed bug - IedConnection_setRCBValuesAsync always return 0 instead of invoke-ID 5 years ago
Michael Zillgith de6886c6f3 - MMS: fixed problem in handling of indefinite length encoded BER elements 5 years ago
Michael Zillgith 02f03aea2f - GOOSE subscriber: added optional destination address check for GOOSE messages 5 years ago
Michael Zillgith 092d8786ac - IEC 61850 server: control model - fixed bug in handling of check flags 5 years ago
Michael Zillgith 538b9698bc - COTP: fixed bug in sendBuffer loop 5 years ago
Michael Zillgith c4de14eb45 - MmsValue: fixed unaligned memory access problems for MMS_FLOAT variables 5 years ago
Michael Zillgith d38e590c99 - IEC 61850/MMS server: control - allow WaitForExecutionHandler to trigger LastApplError message 5 years ago
Michael Zillgith 5f02ea1661 - IEC 61850 server: control module return AddCause command-already-in-execution when second operate is received while command is executed 5 years ago
Michael Zillgith d85b7ac777 - IEC 61850 client: reporting - support data set entries with multiple reasons for inclusion 5 years ago
Michael Zillgith b3c5ecdcf2 - IEC 61850 server: report service - combine quality and value change of a FCDO in the same report when model is locked (send data set entry with multiple reason-for-inclusion) 5 years ago
Michael Zillgith 3bf0e9a689 - MMS client: fixed potential problem in handling of next invoke ID 5 years ago
Michael Zillgith 9ca6d696c3 - MMS client: added additional check when parsing read response 5 years ago
Michael Zillgith 83e8e14603 - .NET API: fixed bug in DataSet destructor 5 years ago
Michael Zillgith b6b94b0438 - fixed VS compilation problems 5 years ago
Michael Zillgith e1eb09d55b - MmsValue: added NULL checks for all memory allocations
- MmsValue: buffer for float/double data is now part of the MmsValue structure and not allocated separately
5 years ago
Michael Zillgith d55afdfb92 - IEC 61850 server: added support to listen on multiple IP addresses and ports (new function IedServer_addAccessPoint) 5 years ago
Michael Zillgith 12d703e453 - IEC 61850 server: Added ControlAction_setError function - with this function the user application can control the error code used in LastApplError and CommandTermination messages 5 years ago
Michael Zillgith 94dcbb0119 - removed unused variable 5 years ago
Michael Zillgith b0fbf9f3a3 - IEC 61850 server: fixed - Configuration option CONFIG_MAXIMUM_TCP_CLIENT_CONNECTIONS = -1 doesn't work (#231) 5 years ago
Michael Zillgith d42f96ee97 - IEC 61850 server: fixed - control model - peer connection is not always available when control handlers are called (#232) 5 years ago
Michael Zillgith 8e95e7dbb8 - MMS: also update bitstring value when source bit string is of smaller size than the bitstring to be updated 5 years ago
Michael Zillgith c4a5fd2f27 - IEC 61850 client: fixed memory leak in async select function 5 years ago
Michael Zillgith 73f1a98b4a Merge branch 'v1.4' into v1.5 5 years ago
Michael Zillgith 994eea4b9a - GOOSE subscriber: fixed crash when GOOSE messages misses time stamp 5 years ago
Michael Zillgith cdf371e92e - fixed: MmsValue_printToBuffer fails with empty MMS_OCTET_STRING (#227) 5 years ago
Michael Zillgith cc08420e50 - IEC 61850 server: fixed problem with logging when log data set contains FCDO (#225) 5 years ago
Michael Zillgith 97e65d5743 - fixed problem encoding OID with arc values 0 5 years ago
Michael Zillgith 1744616866 - IEC 61850 server: RCB - fixed problem that other client can "steal" reservation 5 years ago
Michael Zillgith 4871989658 - MMS client: fixed bug in log entry parsing (#224) 5 years ago
Michael Zillgith 95f751ef63 - IEC 61850 server: fixed potential null pointer dereference in multi
thread mode when server is stopped
5 years ago
Michael Zillgith 6a2db3fe46 - IEC 61850 server: fixed bug in single threaded mode (windows) 5 years ago