- added LISTOBEJCTS access control to server_example_access_control (LIB61850-417)

v1.6_develop_417_rbac2
Michael Zillgith 2 years ago
parent efec5194a2
commit 98c04dfeda

@ -146,6 +146,20 @@ readAccessHandler(LogicalDevice* ld, LogicalNode* ln, DataObject* dataObject, Fu
return DATA_ACCESS_ERROR_SUCCESS;
}
static bool
listObjectsAccessHandler(void* parameter, ClientConnection connection, LogicalDevice* ld, LogicalNode* ln, DataObject* dataObject, FunctionalConstraint fc)
{
printf("list objects access to %s/%s.%s[%s]\n", ld->name, ln->name, dataObject ? dataObject->name : "-", FunctionalConstraint_toString(fc));
if (!strcmp(ln->name, "GGIO1")) {
if (dataObject && !strcmp(dataObject->name, "AnIn1")) {
return false;
}
}
return true;
}
static bool
directoryAccessHandler(void* parameter, ClientConnection connection, IedServer_DirectoryCategory category, LogicalDevice* logicalDevice)
{
@ -258,6 +272,9 @@ main(int argc, char** argv)
IedServer_setDirectoryAccessHandler(iedServer, directoryAccessHandler, NULL);
/* control visibility of data objects in directory (get-name-list) and variable description (get-variable-access-attributes) services */
IedServer_setListObjectsAccessHandler(iedServer, listObjectsAccessHandler, NULL);
/* MMS server will be instructed to start listening for client connections. */
IedServer_start(iedServer, tcpPort);

Loading…
Cancel
Save