diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index 81ac3cbc..a063a4d4 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -3266,18 +3266,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, '$'); @@ -3310,6 +3308,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); + } } } }