- IED server: fixed bug - logs (journals) are added to all logical devices instead of just the parents

pull/309/head
Michael Zillgith 5 years ago
parent 9e064ab709
commit db1671587e

@ -1811,26 +1811,29 @@ createMmsDomainFromIedDevice(MmsMapping* self, LogicalDevice* logicalDevice)
/* add logs (journals) */ /* add logs (journals) */
Log* log = self->model->logs; Log* log = self->model->logs;
while (log != NULL) { while (log) {
char journalName[65]; /* Check if log belongs to this logical device */
if (log->parent->parent == (ModelNode*)logicalDevice) {
char journalName[65];
int nameLength = strlen(log->parent->name) + strlen(log->name); int nameLength = strlen(log->parent->name) + strlen(log->name);
if (nameLength > 63) { if (nameLength > 63) {
if (DEBUG_IED_SERVER) if (DEBUG_IED_SERVER)
printf("IED_SERVER: Log name %s invalid! Resulting journal name too long! Skip log\n", log->name); printf("IED_SERVER: Log name %s invalid! Resulting journal name too long! Skip log\n", log->name);
} }
else { else {
strcpy(journalName, log->parent->name); strcpy(journalName, log->parent->name);
strcat(journalName, "$"); strcat(journalName, "$");
strcat(journalName, log->name); strcat(journalName, log->name);
MmsDomain_addJournal(domain, journalName); MmsDomain_addJournal(domain, journalName);
LogInstance* logInstance = LogInstance_create(log->parent, log->name); LogInstance* logInstance = LogInstance_create(log->parent, log->name);
LinkedList_add(self->logInstances, (void*) logInstance); LinkedList_add(self->logInstances, (void*) logInstance);
}
} }
log = log->sibling; log = log->sibling;

@ -84,7 +84,6 @@ MmsDomain_addJournal(MmsDomain* self, const char* name)
LinkedList_add(self->journals, (void*) journal); LinkedList_add(self->journals, (void*) journal);
} }
MmsJournal MmsJournal
MmsDomain_getJournal(MmsDomain* self, const char* name) MmsDomain_getJournal(MmsDomain* self, const char* name)
{ {

Loading…
Cancel
Save