|
@@ -93,7 +93,7 @@ static const UA_NodeId nodeIdNonHierarchicalReferences = {
|
|
/* Namespace Handling */
|
|
/* Namespace Handling */
|
|
/**********************/
|
|
/**********************/
|
|
|
|
|
|
-#ifdef UA_ENABLE_EXTERNAL_NAMESPACES
|
|
|
|
|
|
+//#ifdef UA_ENABLE_EXTERNAL_NAMESPACES
|
|
static void UA_ExternalNamespace_init(UA_ExternalNamespace *ens) {
|
|
static void UA_ExternalNamespace_init(UA_ExternalNamespace *ens) {
|
|
ens->index = 0;
|
|
ens->index = 0;
|
|
UA_String_init(&ens->url);
|
|
UA_String_init(&ens->url);
|
|
@@ -116,25 +116,22 @@ static void UA_Server_deleteExternalNamespaces(UA_Server *server) {
|
|
}
|
|
}
|
|
|
|
|
|
UA_StatusCode UA_EXPORT
|
|
UA_StatusCode UA_EXPORT
|
|
-UA_Server_addExternalNamespace(UA_Server *server, UA_UInt16 namespaceIndex,
|
|
|
|
- const UA_String *url, UA_ExternalNodeStore *nodeStore) {
|
|
|
|
|
|
+UA_Server_addExternalNamespace(UA_Server *server,
|
|
|
|
+ const UA_String *url, UA_ExternalNodeStore *nodeStore,UA_UInt16 *assignedNamespaceIndex) {
|
|
if (nodeStore == NULL)
|
|
if (nodeStore == NULL)
|
|
return UA_STATUSCODE_BADARGUMENTSMISSING;
|
|
return UA_STATUSCODE_BADARGUMENTSMISSING;
|
|
- //only allow externalnamespace index equal to next namespaceindex
|
|
|
|
- if (namespaceIndex != server->namespacesSize) {
|
|
|
|
- return UA_STATUSCODE_BADINDEXRANGEINVALID;
|
|
|
|
- }
|
|
|
|
UA_UInt32 size = server->externalNamespacesSize;
|
|
UA_UInt32 size = server->externalNamespacesSize;
|
|
server->externalNamespaces =
|
|
server->externalNamespaces =
|
|
UA_realloc(server->externalNamespaces, sizeof(UA_ExternalNamespace) * (size + 1));
|
|
UA_realloc(server->externalNamespaces, sizeof(UA_ExternalNamespace) * (size + 1));
|
|
server->externalNamespaces[size].externalNodeStore = *nodeStore;
|
|
server->externalNamespaces[size].externalNodeStore = *nodeStore;
|
|
- server->externalNamespaces[size].index = namespaceIndex;
|
|
|
|
|
|
+ server->externalNamespaces[size].index = server->namespacesSize;
|
|
|
|
+ *assignedNamespaceIndex = server->namespacesSize;
|
|
UA_String_copy(url, &server->externalNamespaces[size].url);
|
|
UA_String_copy(url, &server->externalNamespaces[size].url);
|
|
server->externalNamespacesSize++;
|
|
server->externalNamespacesSize++;
|
|
UA_Server_addNamespace(server, url);
|
|
UA_Server_addNamespace(server, url);
|
|
return UA_STATUSCODE_GOOD;
|
|
return UA_STATUSCODE_GOOD;
|
|
}
|
|
}
|
|
-#endif /* UA_ENABLE_EXTERNAL_NAMESPACES*/
|
|
|
|
|
|
+//#endif /* UA_ENABLE_EXTERNAL_NAMESPACES*/
|
|
|
|
|
|
static UA_UInt16 addNamespaceInternal(UA_Server *server, UA_String *name) {
|
|
static UA_UInt16 addNamespaceInternal(UA_Server *server, UA_String *name) {
|
|
server->namespaces = UA_realloc(server->namespaces,
|
|
server->namespaces = UA_realloc(server->namespaces,
|