diff --git a/CHANGELOG b/CHANGELOG index 054899dd..82130781 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,8 +1,9 @@ Changes to version 0.8.7 ------------------------ -- changed ControlObjectClient_create function: doesn't read "Oper" and uses GetVarSpec instead of GetNameList service +- server: only client that set EditSG can change EditSG and modify variables with FC=SE +- server: changed ControlObjectClient_create function: doesn't read "Oper" and uses GetVarSpec instead of GetNameList service - extended beoglebone demo (write access to GAPC settings, ...) -- File service: support for wildcard character ('*') in requests +- server: File service: support for wildcard character ('*') in requests - server: changed signature of WriteAccessHandler: Handler now return MmsDataAccessError instead of boolean value! - server: added function IedModel_setIedNameForDynamicModel diff --git a/src/iec61850/server/mms_mapping/mms_mapping.c b/src/iec61850/server/mms_mapping/mms_mapping.c index a18ed76e..57cbc572 100644 --- a/src/iec61850/server/mms_mapping/mms_mapping.c +++ b/src/iec61850/server/mms_mapping/mms_mapping.c @@ -1793,6 +1793,15 @@ mmsWriteHandler(void* parameter, MmsDomain* domain, FunctionalConstraint fc = getFunctionalConstraintForWritableNode(self, separator); +#if (CONFIG_IEC61850_SETTING_GROUPS == 1) + if (fc == IEC61850_FC_SE) { + SettingGroup* sg = getSettingGroupByMmsDomain(self, domain); + + if (sg->editingClient != connection) + return DATA_ACCESS_ERROR_OBJECT_ACCESS_DENIED; + } +#endif /* (CONFIG_IEC61850_SETTING_GROUPS == 1) */ + /* writable data model elements - SP, SV, CF, DC */ if (fc != IEC61850_FC_NONE) { MmsValue* cachedValue;