|
@@ -59,6 +59,17 @@ static void UA_ExternalNamespace_deleteMembers(UA_ExternalNamespace *ens) {
|
|
ens->externalNodeStore.destroy(ens->externalNodeStore.ensHandle);
|
|
ens->externalNodeStore.destroy(ens->externalNodeStore.ensHandle);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void UA_Server_deleteExternalNamespaces(UA_Server *server){
|
|
|
|
+ for(UA_UInt32 i = 0; i < server->externalNamespacesSize; i++){
|
|
|
|
+ UA_ExternalNamespace_deleteMembers(&(server->externalNamespaces[i]));
|
|
|
|
+ }
|
|
|
|
+ if(server->externalNamespacesSize > 0){
|
|
|
|
+ UA_free(server->externalNamespaces);
|
|
|
|
+ server->externalNamespaces = UA_NULL;
|
|
|
|
+ server->externalNamespacesSize = 0;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
UA_StatusCode UA_EXPORT UA_Server_addExternalNamespace(UA_Server *server, UA_UInt16 namespaceIndex,
|
|
UA_StatusCode UA_EXPORT UA_Server_addExternalNamespace(UA_Server *server, UA_UInt16 namespaceIndex,
|
|
const UA_String *url, UA_ExternalNodeStore *nodeStore) {
|
|
const UA_String *url, UA_ExternalNodeStore *nodeStore) {
|
|
if(nodeStore == UA_NULL)
|
|
if(nodeStore == UA_NULL)
|
|
@@ -146,6 +157,9 @@ void UA_Server_delete(UA_Server *server) {
|
|
UA_SecureChannelManager_deleteMembers(&server->secureChannelManager);
|
|
UA_SecureChannelManager_deleteMembers(&server->secureChannelManager);
|
|
UA_SessionManager_deleteMembers(&server->sessionManager);
|
|
UA_SessionManager_deleteMembers(&server->sessionManager);
|
|
UA_NodeStore_delete(server->nodestore);
|
|
UA_NodeStore_delete(server->nodestore);
|
|
|
|
+#ifdef UA_EXTERNAL_NAMESPACES
|
|
|
|
+ UA_Server_deleteExternalNamespaces(server);
|
|
|
|
+#endif
|
|
UA_ByteString_deleteMembers(&server->serverCertificate);
|
|
UA_ByteString_deleteMembers(&server->serverCertificate);
|
|
UA_Array_delete(server->namespaces, &UA_TYPES[UA_TYPES_STRING], server->namespacesSize);
|
|
UA_Array_delete(server->namespaces, &UA_TYPES[UA_TYPES_STRING], server->namespacesSize);
|
|
UA_Array_delete(server->endpointDescriptions, &UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION],
|
|
UA_Array_delete(server->endpointDescriptions, &UA_TYPES[UA_TYPES_ENDPOINTDESCRIPTION],
|