|
@@ -1365,13 +1365,20 @@ static UA_StatusCode register_server_with_discovery_server(UA_Server *server, co
|
|
|
UA_Client_delete(client);
|
|
|
return UA_STATUSCODE_BADOUTOFMEMORY;
|
|
|
}
|
|
|
+
|
|
|
for (size_t i = 0; i<server->config.applicationDescription.discoveryUrlsSize; i++) {
|
|
|
retval |= UA_String_copy(&server->config.applicationDescription.discoveryUrls[i], &request.server.discoveryUrls[i]);
|
|
|
}
|
|
|
+ if(retval != UA_STATUSCODE_GOOD) {
|
|
|
+ UA_RegisteredServer_deleteMembers(&request.server);
|
|
|
+ UA_Client_disconnect(client);
|
|
|
+ UA_Client_delete(client);
|
|
|
+ return UA_STATUSCODE_BADOUTOFMEMORY;
|
|
|
+ }
|
|
|
|
|
|
/* add the discoveryUrls from the networklayers */
|
|
|
- UA_String *disc = UA_realloc(request.server.discoveryUrls, sizeof(UA_String) *
|
|
|
- (request.server.discoveryUrlsSize + server->config.networkLayersSize));
|
|
|
+ UA_String *disc = UA_realloc(request.server.discoveryUrls,
|
|
|
+ sizeof(UA_String) * (request.server.discoveryUrlsSize + server->config.networkLayersSize));
|
|
|
if(!disc) {
|
|
|
UA_RegisteredServer_deleteMembers(&request.server);
|
|
|
UA_Client_disconnect(client);
|