From 020b1e8ac3a9c571bf3286c5a24bfa552c01c8f3 Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Thu, 17 Nov 2022 22:02:33 +0000 Subject: [PATCH] - fixed - servers sends object-access-unsupported on GetAllData when ReadAccessHandler is installed (LIB61850-370) --- src/iec61850/server/mms_mapping/mms_mapping.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index 3247d4b1..3a716a27 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -3317,18 +3317,16 @@ mmsReadAccessHandler (void* parameter, MmsDomain* domain, char* variableId, MmsS { return DATA_ACCESS_ERROR_SUCCESS; } - else { - + else + { StringUtils_createStringFromBufferInBuffer(str, (uint8_t*) variableId, separator - variableId); LogicalNode* ln = LogicalDevice_getLogicalNode(ld, str); - if (ln != NULL) { - - + if (ln != NULL) + { char* doStart = strchr(separator + 1, '$'); - if (doStart != NULL) { char* doEnd = strchr(doStart + 1, '$'); @@ -3361,6 +3359,13 @@ mmsReadAccessHandler (void* parameter, MmsDomain* domain, char* variableId, MmsS } } } + else { + ClientConnection clientConnection = private_IedServer_getClientConnectionByHandle(self->iedServer, + connection); + + return self->readAccessHandler(ld, ln, NULL, fc, clientConnection, + self->readAccessHandlerParameter); + } } } }