- fixed - IEC 61580 server: dataset is not released when RCB.Datset is set to empty string by client (LIB61850-425)

pull/494/head
Michael Zillgith 2 years ago
parent b695192e56
commit 9817d41d1a

@ -724,9 +724,23 @@ updateReportDataset(MmsMapping* mapping, ReportControl* rc, MmsValue* newDatSet,
success = true;
dataSetValue = NULL;
if (rc->buffered) {
rc->isBuffering = false;
purgeBuf(rc);
if (rc->dataSet) {
if (rc->buffered) {
rc->isBuffering = false;
purgeBuf(rc);
}
/* delete pending events */
deleteDataSetValuesShadowBuffer(rc);
if (isUsedDataSetDynamic) {
if (rc->dataSet) {
MmsMapping_freeDynamicallyCreatedDataSet(rc->dataSet);
}
}
/* release used data set */
rc->dataSet = NULL;
}
}
else
@ -739,7 +753,6 @@ updateReportDataset(MmsMapping* mapping, ReportControl* rc, MmsValue* newDatSet,
/* check if old and new data sets are the same */
if (rc->dataSet && dataSetValue) {
const char* dataSetLdName = rc->dataSet->logicalDeviceName;
const char* dataSetName = rc->dataSet->name;
const char* newDataSetName = MmsValue_toString(dataSetValue);
@ -790,7 +803,8 @@ updateReportDataset(MmsMapping* mapping, ReportControl* rc, MmsValue* newDatSet,
}
}
if (dataSetValue) {
if (dataSetValue)
{
const char* dataSetName = MmsValue_toString(dataSetValue);
DataSet* dataSet = IedModel_lookupDataSet(mapping->model, dataSetName);

Loading…
Cancel
Save