diff --git a/src/iec61850/server/mms_mapping/reporting.c b/src/iec61850/server/mms_mapping/reporting.c index 22c58420..74398794 100644 --- a/src/iec61850/server/mms_mapping/reporting.c +++ b/src/iec61850/server/mms_mapping/reporting.c @@ -1627,8 +1627,6 @@ Reporting_RCBWriteAccessHandler(MmsMapping* self, ReportControl* rc, char* eleme { MmsDataAccessError retVal = DATA_ACCESS_ERROR_SUCCESS; - ReportControl_lockNotify(rc); - bool resvTmsAccess = false; /* check reservation timeout for buffered RCBs */ @@ -1676,6 +1674,8 @@ Reporting_RCBWriteAccessHandler(MmsMapping* self, ReportControl* rc, char* eleme } } + ReportControl_lockNotify(rc); + if ((rc->reserved) && (rc->clientConnection != connection)) { retVal = DATA_ACCESS_ERROR_TEMPORARILY_UNAVAILABLE; goto exit_function;