Browse Source

Fix build on VS2008 and support C++ compilation

Stefan Profanter 7 years ago
parent
commit
aed40a3ea1

+ 2 - 2
plugins/ua_network_tcp.c

@@ -470,8 +470,8 @@ static size_t
 ServerNetworkLayerTCP_getJobs(UA_ServerNetworkLayer *nl, UA_Job **jobs,
                               UA_UInt16 timeout) {
     /* Every open socket can generate two jobs */
-    ServerNetworkLayerTCP *layer = nl->handle;
-    UA_Job *js = malloc(sizeof(UA_Job) * (size_t)((layer->mappingsSize * 2)));
+    ServerNetworkLayerTCP *layer = (ServerNetworkLayerTCP *)nl->handle;
+    UA_Job *js = (UA_Job *)malloc(sizeof(UA_Job) * (size_t)((layer->mappingsSize * 2)));
     if(!js)
         return UA_STATUSCODE_BADOUTOFMEMORY;
 

+ 19 - 8
src/server/ua_server_ns0.c

@@ -204,7 +204,7 @@ addObjectTypeNode(UA_Server *server, char* name, UA_UInt32 objecttypeid,
 
 static void
 addObjectNode(UA_Server *server, char* name, UA_UInt32 objectid,
-              UA_UInt32 parentid, UA_UInt32 referenceid, UA_UInt32 typeid) {
+              UA_UInt32 parentid, UA_UInt32 referenceid, UA_UInt32 type_id) {
     UA_ObjectAttributes object_attr;
     UA_ObjectAttributes_init(&object_attr);
     object_attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
@@ -212,7 +212,7 @@ addObjectNode(UA_Server *server, char* name, UA_UInt32 objectid,
                             UA_NODEID_NUMERIC(0, parentid),
                             UA_NODEID_NUMERIC(0, referenceid),
                             UA_QUALIFIEDNAME(0, name),
-                            UA_NODEID_NUMERIC(0, typeid),
+                            UA_NODEID_NUMERIC(0, type_id),
                             object_attr, NULL, NULL);
 
 }
@@ -255,7 +255,7 @@ addVariableTypeNode(UA_Server *server, char* name, UA_UInt32 variabletypeid,
 static void
 addVariableNode(UA_Server *server, UA_UInt32 nodeid, char* name, UA_Int32 valueRank,
                 const UA_NodeId *dataType, UA_Variant *value, UA_UInt32 parentid,
-                UA_UInt32 referenceid, UA_UInt32 typeid) {
+                UA_UInt32 referenceid, UA_UInt32 type_id) {
     UA_VariableAttributes attr;
     UA_VariableAttributes_init(&attr);
     attr.displayName = UA_LOCALIZEDTEXT("en_US", name);
@@ -265,7 +265,7 @@ addVariableNode(UA_Server *server, UA_UInt32 nodeid, char* name, UA_Int32 valueR
         attr.value = *value;
     UA_Server_addVariableNode(server, UA_NODEID_NUMERIC(0, nodeid), UA_NODEID_NUMERIC(0, parentid),
                               UA_NODEID_NUMERIC(0, referenceid), UA_QUALIFIEDNAME(0, name),
-                              UA_NODEID_NUMERIC(0, typeid), attr, NULL, NULL);
+                              UA_NODEID_NUMERIC(0, type_id), attr, NULL, NULL);
 }
 
 /**********************/
@@ -531,8 +531,11 @@ void UA_Server_createNS0(UA_Server *server) {
     nsarray_attr.accessLevel = UA_ACCESSLEVELMASK_READ | UA_ACCESSLEVELMASK_WRITE;
     UA_Server_addVariableNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_NAMESPACEARRAY),
                                     UA_QUALIFIEDNAME(0, "NamespaceArray"), nsarray_attr, NULL);
-    UA_DataSource nsarray_datasource =  {.handle = server, .read = readNamespaces,
-                                         .write = writeNamespaces};
+    UA_DataSource nsarray_datasource =  {
+        server, //handle
+        readNamespaces, //read
+        writeNamespaces //write
+    };
     UA_Server_setVariableNode_dataSource(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_NAMESPACEARRAY),
                                          nsarray_datasource);
     UA_Server_addNode_finish(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_NAMESPACEARRAY),
@@ -643,7 +646,11 @@ void UA_Server_createNS0(UA_Server *server) {
     serverstatus_attr.dataType = UA_NODEID_NUMERIC(0, UA_NS0ID_SERVERSTATUSDATATYPE);
     UA_Server_addVariableNode_begin(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS),
                                     UA_QUALIFIEDNAME(0, "ServerStatus"), serverstatus_attr, NULL);
-    UA_DataSource statusDS = {.handle = server, .read = readStatus, .write = NULL};
+    UA_DataSource statusDS = {
+        server, //handle
+        readStatus, //read
+        NULL //write
+    };
     UA_Server_setVariableNode_dataSource(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS),
                                          statusDS);
     UA_Server_addNode_finish(server, UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS),
@@ -665,7 +672,11 @@ void UA_Server_createNS0(UA_Server *server) {
     currenttime_attr.dataType = UA_TYPES[UA_TYPES_DATETIME].typeId;
     UA_Server_addVariableNode_begin(server, currentTimeId, UA_QUALIFIEDNAME(0, "CurrentTime"),
                                     currenttime_attr, NULL);
-    UA_DataSource currentDS = {.handle = NULL, .read = readCurrentTime, .write = NULL};
+    UA_DataSource currentDS = {
+        NULL, //handle
+        readCurrentTime, //read
+        NULL //write
+    };
     UA_Server_setVariableNode_dataSource(server, currentTimeId, currentDS);
     UA_Server_addNode_finish(server, currentTimeId,
                              UA_NODEID_NUMERIC(0, UA_NS0ID_SERVER_SERVERSTATUS),

+ 3 - 3
src/server/ua_services_nodemanagement.c

@@ -886,9 +886,9 @@ __UA_Server_addNode(UA_Server *server, const UA_NodeClass nodeClass,
     item.parentNodeId.nodeId = *parentNodeId;
     item.referenceTypeId = *referenceTypeId;
     item.typeDefinition.nodeId = *typeDefinition;
-    item.nodeAttributes = (UA_ExtensionObject) {
-        .encoding = UA_EXTENSIONOBJECT_DECODED_NODELETE,
-        .content.decoded = {attributeType, (void*)(uintptr_t)attr}};
+    item.nodeAttributes.encoding = UA_EXTENSIONOBJECT_DECODED_NODELETE;
+    item.nodeAttributes.content.decoded.type =attributeType;
+    item.nodeAttributes.content.decoded.data = (void*)(uintptr_t)attr;
 
     /* Call the normal addnodes service */
     UA_AddNodesResult result;

+ 4 - 4
src/server/ua_services_view.c

@@ -202,7 +202,7 @@ browseRelevantReferences(UA_Server *server, UA_BrowseResult *result, const UA_No
     /* No relevant references, return array of length zero */
     if(referencesCount == 0) {
         UA_free(result->references);
-        result->references = UA_EMPTY_ARRAY_SENTINEL;
+        result->references = (UA_ReferenceDescription *)UA_EMPTY_ARRAY_SENTINEL;
         result->referencesSize = 0;
     }
 
@@ -238,7 +238,7 @@ Service_Browse_single(UA_Server *server, UA_Session *session,
     if(!internal_cp) {
         /* If there is no continuation point, stack-allocate one. It gets copied
          * on the heap when this is required at a later point. */
-        internal_cp = UA_alloca(sizeof(struct ContinuationPointEntry));
+        internal_cp = (struct ContinuationPointEntry *)UA_alloca(sizeof(struct ContinuationPointEntry));
         memset(internal_cp, 0, sizeof(struct ContinuationPointEntry));
         internal_cp->maxReferences = maxrefs;
     } else {
@@ -473,7 +473,7 @@ walkBrowsePathElementNodeReference(UA_BrowsePathResult *result, size_t *targetsS
      * targets with the right path "depth" */
     if(reference->targetId.serverIndex != 0) {
         UA_BrowsePathTarget *tempTargets =
-            UA_realloc(result->targets, sizeof(UA_BrowsePathTarget) * (*targetsSize) * 2);
+            (UA_BrowsePathTarget *)UA_realloc(result->targets, sizeof(UA_BrowsePathTarget) * (*targetsSize) * 2);
         if(!tempTargets) {
             result->statusCode = UA_STATUSCODE_BADOUTOFMEMORY;
             return;
@@ -488,7 +488,7 @@ walkBrowsePathElementNodeReference(UA_BrowsePathResult *result, size_t *targetsS
 
     /* Add the node to the next array for the following path element */
     if(*nextSize <= *nextCount) {
-        UA_NodeId *tempNext = UA_realloc(*next, sizeof(UA_NodeId) * (*nextSize) * 2);
+        UA_NodeId *tempNext = (UA_NodeId *)UA_realloc(*next, sizeof(UA_NodeId) * (*nextSize) * 2);
         if(!tempNext) {
             result->statusCode = UA_STATUSCODE_BADOUTOFMEMORY;
             return;

+ 1 - 1
src/ua_timer.c

@@ -34,7 +34,7 @@ UA_RepeatedJobsList_init(UA_RepeatedJobsList *rjl,
 static void
 enqueueChange(UA_RepeatedJobsList *rjl, UA_RepeatedJob *rj) {
     rj->next.sle_next = NULL;
-    UA_RepeatedJob *prev = UA_atomic_xchg((void* volatile *)&rjl->changes_head, rj);
+    UA_RepeatedJob *prev = (UA_RepeatedJob *)UA_atomic_xchg((void* volatile *)&rjl->changes_head, rj);
     /* Nothing can be dequeued while the producer is blocked here */
     prev->next.sle_next = rj; /* Once this change is visible in the consumer,
                                * the node is dequeued in the following