- IED server: fixed issue - read access to SGCB is not possible when read access handler is installed

pull/265/head
Michael Zillgith 5 years ago
parent 3e1a23a6d0
commit 0b58716ea3

@ -95,6 +95,15 @@ editSgConfirmedHandler(void* parameter, SettingGroupControlBlock* sgcb,
}
}
static MmsDataAccessError
readAccessHandler(LogicalDevice* ld, LogicalNode* ln, DataObject* dataObject, FunctionalConstraint fc, ClientConnection connection, void* parameter)
{
void* securityToken = ClientConnection_getSecurityToken(connection);
printf("Read access to %s/%s.%s\n", ld->name, ln->name, dataObject->name);
return DATA_ACCESS_ERROR_SUCCESS;
}
int
main(int argc, char** argv)
@ -111,6 +120,8 @@ main(int argc, char** argv)
IedServer_setEditSettingGroupChangedHandler(iedServer, sgcb, editSgChangedHandler, NULL);
IedServer_setEditSettingGroupConfirmationHandler(iedServer, sgcb, editSgConfirmedHandler, NULL);
IedServer_setReadAccessHandler(iedServer, readAccessHandler, NULL);
/* MMS server will be instructed to start listening to client connections. */
IedServer_start(iedServer, 102);

@ -3097,6 +3097,11 @@ mmsReadAccessHandler (void* parameter, MmsDomain* domain, char* variableId, MmsS
StringUtils_createStringFromBufferInBuffer(str, (uint8_t*) (doStart + 1), doEnd - doStart);
}
if (fc == IEC61850_FC_SP) {
if (!strcmp(str, "SGCB"))
return DATA_ACCESS_ERROR_SUCCESS;
}
ModelNode* dobj = ModelNode_getChild((ModelNode*) ln, str);
if (dobj != NULL) {

Loading…
Cancel
Save