|
@@ -133,7 +133,16 @@ void Service_FindServers(UA_Server *server, UA_Session *session,
|
|
|
registeredServer_list_entry* current;
|
|
|
LIST_FOREACH(current, &server->registeredServers, pointers) {
|
|
|
if(UA_String_equal(¤t->registeredServer.serverUri, &request->serverUris[i])) {
|
|
|
- foundServerFilteredPointer[foundServersSize++] = ¤t->registeredServer;
|
|
|
+ // check if entry already in list:
|
|
|
+ UA_Boolean existing = false;
|
|
|
+ for (size_t j=0; j<foundServersSize; j++) {
|
|
|
+ if (UA_String_equal(&foundServerFilteredPointer[j]->serverUri, &request->serverUris[i])) {
|
|
|
+ existing = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (!existing)
|
|
|
+ foundServerFilteredPointer[foundServersSize++] = ¤t->registeredServer;
|
|
|
break;
|
|
|
}
|
|
|
}
|