Pārlūkot izejas kodu

Rename UA_NodeId.namespace to UA_NodeId.ns.
C++ compilers and syntax tools complain about variables called namespace.

Add WIN32 flag. Use MSVC flag for Visual Studio only code.
WIN32 code is also used by MinGW.

Julius Pfrommer 9 gadi atpakaļ
vecāks
revīzija
4dd7e06b8b

+ 3 - 0
CMakeLists.txt

@@ -17,6 +17,9 @@ add_definitions(-std=c99 -pedantic -pipe -fstack-protector -Wall -Wextra
                  -Wformat-nonliteral -Winit-self -Wuninitialized -Wno-deprecated
                  -Wformat-security -Werror -ffunction-sections -fdata-sections
                  -Wl,--gc-sections)
+	if(WIN32)
+	    add_definitions(-fno-stack-protector)
+	endif(WIN32)
 endif(CMAKE_COMPILER_IS_GNUCC)
 
 # multithreading

+ 1 - 1
src/ua_application.c

@@ -14,7 +14,7 @@ Application appMockup = {
 UA_Node* create_node_ns0(UA_Int32 class, UA_Int32 nodeClass, UA_Int32 const id, char const * qn, char const * dn, char const * desc) {
 	UA_Node* n; UA_.types[class].new((void **)&n);
 	n->nodeId.nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	n->nodeId.namespace = 0;
+	n->nodeId.ns = 0;
 	n->nodeId.identifier.numeric = id;
 	UA_String_copycstring(qn,&(n->browseName.name));
 	UA_String_copycstring(dn,&n->displayName.text);

+ 1 - 0
src/ua_config.h.in

@@ -1,6 +1,7 @@
 /* Definitions to be set by cmake. */
 #define UA_ENCODING_AMOUNT @UA_ENCODING_AMOUNT@
 #cmakedefine MSVC
+#cmakedefine WIN32
 
 #ifndef MSVC
 #define INLINE inline

+ 4 - 4
src/ua_services_attribute.c

@@ -38,12 +38,12 @@ static UA_DataValue service_read_node(Application *app, const UA_ReadValueId *id
 	UA_DataValue v;
 	UA_DataValue_init(&v);
 
-	DBG(printf("service_read_node - entered with ns=%d,id=%d,attr=%i\n", id->nodeId.namespace,
+	DBG(printf("service_read_node - entered with ns=%d,id=%d,attr=%i\n", id->nodeId.ns,
 	           id->nodeId.identifier.numeric, id->attributeId));
-	Namespace *ns = UA_indexedList_findValue(app->namespaces, id->nodeId.namespace);
+	Namespace *ns = UA_indexedList_findValue(app->namespaces, id->nodeId.ns);
 
 	if(ns == UA_NULL) {
-		DBG_VERBOSE(printf("service_read_node - unknown namespace %d\n", id->nodeId.namespace));
+		DBG_VERBOSE(printf("service_read_node - unknown namespace %d\n", id->nodeId.ns));
 		v.encodingMask = UA_DATAVALUE_ENCODINGMASK_STATUSCODE;
 		v.status       = UA_STATUSCODE_BADNODEIDUNKNOWN;
 		return v;
@@ -259,7 +259,7 @@ UA_Int32 Service_Read(UA_Session *session, const UA_ReadRequest *request,
 UA_Int32 Service_Write_writeNode(Application *app, UA_WriteValue *writeValue, UA_StatusCode *result)
 {
 	UA_Int32 retval = UA_SUCCESS;
-	Namespace *ns = UA_indexedList_findValue(app->namespaces, writeValue->nodeId.namespace);
+	Namespace *ns = UA_indexedList_findValue(app->namespaces, writeValue->nodeId.ns);
 	if(ns==UA_NULL)
 	{
 		*result = UA_STATUSCODE_BADNODEIDINVALID;

+ 3 - 3
src/ua_services_nodemanagement.c

@@ -14,7 +14,7 @@ static UA_AddNodesResult addSingleNode(Application *app, UA_AddNodesItem *item)
 	UA_AddNodesResult result;
 	UA_AddNodesResult_init(&result);
 
-	Namespace *parent_ns = UA_indexedList_findValue(app->namespaces, item->parentNodeId.nodeId.namespace);
+	Namespace *parent_ns = UA_indexedList_findValue(app->namespaces, item->parentNodeId.nodeId.ns);
 	// TODO: search for namespaceUris and not only ns-ids.
 	if(parent_ns == UA_NULL) {
 		result.statusCode = UA_STATUSCODE_BADPARENTNODEIDINVALID;
@@ -25,9 +25,9 @@ static UA_AddNodesResult addSingleNode(Application *app, UA_AddNodesItem *item)
 	UA_Boolean nodeid_isnull = UA_NodeId_isNull(&item->requestedNewNodeId.nodeId);
 
 	if(nodeid_isnull) ns = parent_ns;
-	else ns = UA_indexedList_findValue(app->namespaces, item->requestedNewNodeId.nodeId.namespace);
+	else ns = UA_indexedList_findValue(app->namespaces, item->requestedNewNodeId.nodeId.ns);
 
-	if(ns == UA_NULL || item->requestedNewNodeId.nodeId.namespace == 0) {
+	if(ns == UA_NULL || item->requestedNewNodeId.nodeId.ns == 0) {
 		result.statusCode = UA_STATUSCODE_BADNODEIDREJECTED;
 		return result;
 	}

+ 1 - 1
src/ua_services_view.c

@@ -204,7 +204,7 @@ UA_Int32 Service_Browse(UA_Session *session, const UA_BrowseRequest *request, UA
 
 	for(UA_Int32 i=0; i < request->nodesToBrowseSize; i++) {
 		Namespace *ns = UA_indexedList_findValue(application->namespaces,
-												 request->nodesToBrowse[i].nodeId.namespace);
+												 request->nodesToBrowse[i].nodeId.ns);
 		if(ns == UA_NULL) {
 			response->results[i].statusCode = UA_STATUSCODE_BADNODEIDUNKNOWN;
 			continue;

+ 1 - 1
src/ua_stack_session.c

@@ -35,7 +35,7 @@ UA_Int32 UA_Session_generateToken(UA_NodeId *newToken)
 	//retval |= UA_NodeId_new(newToken);
 
 	newToken->nodeIdType = UA_NODEIDTYPE_GUID;
-	newToken->namespace = 0; // where else?
+	newToken->ns = 0; // where else?
 	newToken->identifier.guid.data1 = rand();
 	r = rand();
 	newToken->identifier.guid.data2 = (UA_UInt16)((r>>16) );

+ 1 - 1
src/ua_stack_session_manager.c

@@ -24,7 +24,7 @@ static UA_SessionManager *sessionManager;
 UA_Int32 UA_SessionManager_generateSessionId(UA_NodeId *sessionId)
 {
 	sessionId->nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	sessionId->namespace = 0;
+	sessionId->ns = 0;
 	sessionId->identifier.numeric = sessionManager->lastSessionId++;
 	return UA_SUCCESS;
 }

+ 2 - 2
src/ua_transport_binary_secure.c

@@ -25,7 +25,7 @@ static UA_Int32 SL_Send(SL_Channel *channel,
 	UA_AsymmetricAlgorithmSecurityHeader *asymAlgSettings = UA_NULL;
 
 	resp_nodeid.nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	resp_nodeid.namespace = 0;
+	resp_nodeid.ns = 0;
 	resp_nodeid.identifier.numeric = type + 2; // binary encoding
 
 	const UA_ByteString *response_gather[2]; // securechannel_header, seq_header, security_encryption_header, message_length (eventually + padding + size_signature);
@@ -374,7 +374,7 @@ UA_Int32 SL_handleRequest(SL_Channel *channel, const UA_ByteString* msg,
 	{
 		printf(
 				"SL_processMessage - unknown request, namespace=%d, request=%d\n",
-				serviceRequestType.namespace,
+				serviceRequestType.ns,
 				serviceRequestType.identifier.numeric);
 		retval = UA_ERROR;
 		UA_RequestHeader p;

+ 9 - 9
src/ua_types.c

@@ -278,7 +278,7 @@ UA_TYPE_AS(UA_DateTime, UA_Int64)
 #define HUNDRED_NANOSEC_PER_USEC 10LL
 #define HUNDRED_NANOSEC_PER_SEC (HUNDRED_NANOSEC_PER_USEC * 1000000LL)
 
-#ifdef WIN32
+#ifdef MSVC
 static const unsigned __int64 epoch = 116444736000000000;
 int gettimeofday(struct timeval * tp, struct timezone * tzp) {
 	FILETIME ft;
@@ -419,7 +419,7 @@ UA_TYPE_AS(UA_XmlElement, UA_ByteString)
 UA_Int32 UA_NodeId_init(UA_NodeId *p) {
 	if(p == UA_NULL) return UA_ERROR;
 	p->nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	p->namespace    = 0;
+	p->ns    = 0;
 	memset(&p->identifier, 0, sizeof(p->identifier));
 	return UA_SUCCESS;
 }
@@ -453,7 +453,7 @@ UA_Int32 UA_NodeId_copy(UA_NodeId const *src, UA_NodeId *dst) {
 }
 
 UA_Boolean UA_NodeId_isBasicType(UA_NodeId const *id) {
-	return (id->namespace == 0 &&
+	return (id->ns == 0 &&
 			id->nodeIdType == UA_NODEIDTYPE_NUMERIC &&
 			id->identifier.numeric <= UA_DIAGNOSTICINFO);
 }
@@ -510,7 +510,7 @@ void UA_NodeId_print(const UA_NodeId *p, FILE *stream) {
 		fprintf(stream, "ERROR");
 		break;
 	}
-	fprintf(stream,",%u,", p->namespace);
+	fprintf(stream,",%u,", p->ns);
 	switch(p->nodeIdType & UA_NODEIDTYPE_MASK) {
 	case UA_NODEIDTYPE_NUMERIC:
 		fprintf(stream, ".identifier.numeric=%u", p->identifier.numeric);
@@ -538,7 +538,7 @@ void UA_NodeId_print(const UA_NodeId *p, FILE *stream) {
 #endif
 
 UA_Int32 UA_NodeId_equal(const UA_NodeId *n1, const UA_NodeId *n2) {
-	if(n1 == UA_NULL || n2 == UA_NULL || n1->namespace != n2->namespace)
+	if(n1 == UA_NULL || n2 == UA_NULL || n1->ns != n2->ns)
 		return UA_NOT_EQUAL;
 
 	switch(n1->nodeIdType) {
@@ -563,20 +563,20 @@ UA_Int32 UA_NodeId_equal(const UA_NodeId *n1, const UA_NodeId *n2) {
 UA_Boolean UA_NodeId_isNull(const UA_NodeId *p) {
 	switch(p->nodeIdType) {
 	case UA_NODEIDTYPE_NUMERIC:
-		if(p->namespace != 0 || p->identifier.numeric != 0) return UA_FALSE;
+		if(p->ns != 0 || p->identifier.numeric != 0) return UA_FALSE;
 		break;
 
 	case UA_NODEIDTYPE_STRING:
-		if(p->namespace != 0 || p->identifier.string.length != 0) return UA_FALSE;
+		if(p->ns != 0 || p->identifier.string.length != 0) return UA_FALSE;
 		break;
 
 	case UA_NODEIDTYPE_GUID:
-		if(p->namespace != 0 ||
+		if(p->ns != 0 ||
 		   memcmp(&p->identifier.guid, (char[sizeof(UA_Guid)]) { 0 }, sizeof(UA_Guid)) != 0) return UA_FALSE;
 		break;
 
 	case UA_NODEIDTYPE_BYTESTRING:
-		if(p->namespace != 0 || p->identifier.byteString.length != 0) return UA_FALSE;
+		if(p->ns != 0 || p->identifier.byteString.length != 0) return UA_FALSE;
 		break;
 
 	default:

+ 6 - 6
src/ua_types.h

@@ -55,7 +55,7 @@
 /** @brief A two-state logical value (true or false). */
 typedef _Bool UA_Boolean;
 
-/** @brief An integer value between −128 and 127. */
+/** @brief An integer value between -129 and 127. */
 typedef int8_t UA_SByte;
 #define UA_SBYTE_MAX -128
 #define UA_SBYTE_MIN 127
@@ -65,7 +65,7 @@ typedef uint8_t UA_Byte;
 #define UA_BYTE_MAX 256
 #define UA_BYTE_MIN 0
 
-/** @brief An integer value between 32 768 and 32 767. */
+/** @brief An integer value between -32 768 and 32 767. */
 typedef int16_t UA_Int16;
 #define UA_INT16_MAX 32767
 #define UA_INT16_MIN -32768
@@ -75,7 +75,7 @@ typedef uint16_t UA_UInt16;
 #define UA_UINT16_MAX  65535
 #define UA_UINT16_MIN  0
 
-/** @brief An integer value between 2 147 483 648 and 2 147 483 647. */
+/** @brief An integer value between -2 147 483 648 and 2 147 483 647. */
 typedef int32_t UA_Int32;
 #define UA_INT32_MAX  2147483647
 #define UA_INT32_MIN  −2147483648
@@ -85,7 +85,7 @@ typedef uint32_t UA_UInt32;
 #define UA_UINT32_MAX  4294967295;
 #define UA_UINT32_MIN  0;
 
-/** @brief An integer value between −9 223 372 036 854 775 808 and 9 223 372 036 854 775 807 */
+/** @brief An integer value between -10 223 372 036 854 775 808 and 9 223 372 036 854 775 807 */
 typedef int64_t UA_Int64;
 #define UA_INT64_MAX  9223372036854775807
 #define UA_INT64_MIN  −9223372036854775808
@@ -126,6 +126,7 @@ typedef struct UA_String UA_XmlElement;
 
 /** @brief An identifier for a node in the address space of an OPC UA Server. */
 typedef struct UA_NodeId {
+	UA_UInt16 ns;
 	enum {
 		/* The shortened numeric types are introduced during encoding.
 		   UA_NODEIDTYPE_TWOBYTE = 0,
@@ -135,7 +136,6 @@ typedef struct UA_NodeId {
 		UA_NODEIDTYPE_GUID = 4,
 		UA_NODEIDTYPE_BYTESTRING = 5
 	} nodeIdType;
-	UA_UInt16 namespace;
 	union {
 		UA_UInt32     numeric;
 		UA_String     string;
@@ -343,7 +343,7 @@ UA_Boolean UA_NodeId_isNull(const UA_NodeId *p);
 UA_Boolean UA_NodeId_isBasicType(UA_NodeId const *id);
 
 #define NS0NODEID(NUMERIC_ID) \
-	(UA_NodeId){ .nodeIdType = UA_NODEIDTYPE_NUMERIC, .namespace = 0, .identifier.numeric = NUMERIC_ID }
+	(UA_NodeId){ .ns = 0, .nodeIdType = UA_NODEIDTYPE_NUMERIC, .identifier.numeric = NUMERIC_ID }
 
 /* ExpandedNodeId */
 UA_Boolean UA_ExpandedNodeId_isNull(const UA_ExpandedNodeId *p);

+ 19 - 19
src/ua_types_encoding_binary.c

@@ -2,7 +2,7 @@
 #include "ua_namespace_0.h"
 
 static INLINE UA_Boolean is_builtin(UA_NodeId *typeid) {
-	return (typeid->namespace == 0 && 1 <= typeid->identifier.numeric && typeid->identifier.numeric <= 25);
+	return (typeid->ns == 0 && 1 <= typeid->identifier.numeric && typeid->identifier.numeric <= 25);
 }
 
 /*********/
@@ -389,9 +389,9 @@ UA_Int32 UA_NodeId_calcSizeBinary(UA_NodeId const *p) {
 	else {
 		switch(p->nodeIdType) {
 		case UA_NODEIDTYPE_NUMERIC:
-			if(p->identifier.numeric > UA_UINT16_MAX || p->namespace > UA_BYTE_MAX)
+			if(p->identifier.numeric > UA_UINT16_MAX || p->ns > UA_BYTE_MAX)
 				length = sizeof(UA_Byte) + sizeof(UA_UInt16) + sizeof(UA_UInt32);
-			else if(p->identifier.numeric > UA_BYTE_MAX || p->namespace > 0)
+			else if(p->identifier.numeric > UA_BYTE_MAX || p->ns > 0)
 				length = 4; /* UA_NODEIDTYPE_FOURBYTE */
 			else
 				length = 2; /* UA_NODEIDTYPE_TWOBYTE*/
@@ -424,15 +424,15 @@ UA_TYPE_ENCODEBINARY(UA_NodeId,
                      UA_Int32 retval = UA_SUCCESS;
                      switch(src->nodeIdType) {
 					 case UA_NODEIDTYPE_NUMERIC:
-						 if(src->identifier.numeric > UA_UINT16_MAX || src->namespace > UA_BYTE_MAX) {
+						 if(src->identifier.numeric > UA_UINT16_MAX || src->ns > UA_BYTE_MAX) {
 							 srcByte = UA_NODEIDTYPE_NUMERIC;
 							 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
-							 retval |= UA_UInt16_encodeBinary(&src->namespace, dst, offset);
+							 retval |= UA_UInt16_encodeBinary(&src->ns, dst, offset);
 							 retval |= UA_UInt32_encodeBinary(&src->identifier.numeric, dst, offset);
-						 } else if(src->identifier.numeric > UA_BYTE_MAX || src->namespace > 0) { /* UA_NODEIDTYPE_FOURBYTE */
+						 } else if(src->identifier.numeric > UA_BYTE_MAX || src->ns > 0) { /* UA_NODEIDTYPE_FOURBYTE */
 							 srcByte = UA_NODEIDTYPE_FOURBYTE;
 							 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
-							 srcByte = src->namespace;
+							 srcByte = src->ns;
 							 srcUInt16 = src->identifier.numeric;
 							 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
 							 retval |= UA_UInt16_encodeBinary(&srcUInt16, dst, offset);
@@ -447,21 +447,21 @@ UA_TYPE_ENCODEBINARY(UA_NodeId,
 					 case UA_NODEIDTYPE_STRING:
 						 srcByte = UA_NODEIDTYPE_STRING;
 						 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
-						 retval |= UA_UInt16_encodeBinary(&src->namespace, dst, offset);
+						 retval |= UA_UInt16_encodeBinary(&src->ns, dst, offset);
 						 retval |= UA_String_encodeBinary(&src->identifier.string, dst, offset);
 						 break;
 
 					 case UA_NODEIDTYPE_GUID:
 						 srcByte = UA_NODEIDTYPE_GUID;
 						 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
-						 retval |= UA_UInt16_encodeBinary(&src->namespace, dst, offset);
+						 retval |= UA_UInt16_encodeBinary(&src->ns, dst, offset);
 						 retval |= UA_Guid_encodeBinary(&src->identifier.guid, dst, offset);
 						 break;
 
 					 case UA_NODEIDTYPE_BYTESTRING:
 						 srcByte = UA_NODEIDTYPE_BYTESTRING;
 						 retval |= UA_Byte_encodeBinary(&srcByte, dst, offset);
-						 retval |= UA_UInt16_encodeBinary(&src->namespace, dst, offset);
+						 retval |= UA_UInt16_encodeBinary(&src->ns, dst, offset);
 						 retval |= UA_ByteString_encodeBinary(&src->identifier.byteString, dst, offset);
 						 break;
 
@@ -485,38 +485,38 @@ UA_Int32 UA_NodeId_decodeBinary(UA_ByteString const *src, UA_UInt32 *offset, UA_
 		dst->nodeIdType = UA_NODEIDTYPE_NUMERIC;
 		CHECKED_DECODE(UA_Byte_decodeBinary(src, offset, &dstByte),; );
 		dst->identifier.numeric = dstByte;
-		dst->namespace = 0; // default namespace
+		dst->ns = 0; // default namespace
 		break;
 
 	case UA_NODEIDTYPE_FOURBYTE: // Table 8
 		dst->nodeIdType = UA_NODEIDTYPE_NUMERIC;
 		CHECKED_DECODE(UA_Byte_decodeBinary(src, offset, &dstByte),; );
-		dst->namespace = dstByte;
+		dst->ns = dstByte;
 		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dstUInt16),; );
 		dst->identifier.numeric = dstUInt16;
 		break;
 
 	case UA_NODEIDTYPE_NUMERIC: // Table 6, first entry
 		dst->nodeIdType = UA_NODEIDTYPE_NUMERIC;
-		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->namespace),; );
+		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->ns),; );
 		CHECKED_DECODE(UA_UInt32_decodeBinary(src, offset, &dst->identifier.numeric),; );
 		break;
 
 	case UA_NODEIDTYPE_STRING: // Table 6, second entry
 		dst->nodeIdType = UA_NODEIDTYPE_STRING;
-		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->namespace),; );
+		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->ns),; );
 		CHECKED_DECODE(UA_String_decodeBinary(src, offset, &dst->identifier.string),; );
 		break;
 
 	case UA_NODEIDTYPE_GUID: // Table 6, third entry
 		dst->nodeIdType = UA_NODEIDTYPE_GUID;
-		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->namespace),; );
+		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->ns),; );
 		CHECKED_DECODE(UA_Guid_decodeBinary(src, offset, &dst->identifier.guid),; );
 		break;
 
 	case UA_NODEIDTYPE_BYTESTRING: // Table 6, "OPAQUE"
 		dst->nodeIdType = UA_NODEIDTYPE_BYTESTRING;
-		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->namespace),; );
+		CHECKED_DECODE(UA_UInt16_decodeBinary(src, offset, &dst->ns),; );
 		CHECKED_DECODE(UA_ByteString_decodeBinary(src, offset, &dst->identifier.byteString),; );
 		break;
 
@@ -573,7 +573,7 @@ UA_Int32 UA_ExpandedNodeId_decodeBinary(UA_ByteString const *src, UA_UInt32 *off
 	
 	CHECKED_DECODE(UA_NodeId_decodeBinary(src, offset, &dst->nodeId), UA_ExpandedNodeId_deleteMembers(dst));
 	if(encodingByte & UA_EXPANDEDNODEID_NAMESPACEURI_FLAG) {
-		dst->nodeId.namespace = 0;
+		dst->nodeId.ns = 0;
 		CHECKED_DECODE(UA_String_decodeBinary(src, offset, &dst->namespaceUri), UA_ExpandedNodeId_deleteMembers(dst));
 	}
 	if(encodingByte & UA_EXPANDEDNODEID_SERVERINDEX_FLAG)
@@ -830,7 +830,7 @@ UA_TYPE_ENCODEBINARY(UA_Variant,
 					 UA_Boolean hasDimensions;
 					 UA_Boolean isBuiltin;
 
-                     if(src == UA_NULL || src->vt == UA_NULL || src->vt->typeId.namespace != 0)
+                     if(src == UA_NULL || src->vt == UA_NULL || src->vt->typeId.ns != 0)
 						 return UA_ERROR;
 
                      isArray       = src->arrayLength != 1;  // a single element is not an array
@@ -888,7 +888,7 @@ UA_Int32 UA_Variant_decodeBinary(UA_ByteString const *src, UA_UInt32 *offset, UA
 	UA_Boolean isArray = encodingByte & UA_VARIANT_ENCODINGMASKTYPE_ARRAY;
 	UA_Boolean hasDimensions = isArray && (encodingByte & UA_VARIANT_ENCODINGMASKTYPE_DIMENSIONS);
 
-	UA_NodeId typeid = { .nodeIdType = UA_NODEIDTYPE_NUMERIC, .namespace= 0,
+	UA_NodeId typeid = { .ns= 0, .nodeIdType = UA_NODEIDTYPE_NUMERIC,
 						 .identifier.numeric = encodingByte & UA_VARIANT_ENCODINGMASKTYPE_TYPEID_MASK };
 	UA_Int32 typeNs0Id = UA_ns0ToVTableIndex(&typeid );
 	dst->vt = &UA_.types[typeNs0Id];

+ 0 - 42
tests/Makefile.am

@@ -1,42 +0,0 @@
-TESTS_ENVIRONMENT=
-TESTS=
-UNIT_TESTS=
-check_PROGRAMS=
-
-UNIT_TESTS += check_stack check_list check_indexedList check_builtin check_namespace check_memory check_services_view check_base64
-TESTS += $(UNIT_TESTS)
-check_PROGRAMS += $(UNIT_TESTS)
-
-TESTS_ENVIRONMENT_MEM="libtool --mode=execute valgrind --leak-check=full --quiet --suppressions=suppressions --gen-suppressions=no --error-exitcode=666"
-
-cov-report:
-	mkdir -p coverage
-	lcov --compat-libtool --directory . --directory ../src --capture --output-file coverage/app.info  
-	genhtml -o coverage/ coverage/app.info 
-
-.PHONY: check-mem
-check-mem:
-	$(MAKE) $(AM_MAKEFLAGS) check TESTS="$(UNIT_TESTS)" TESTS_ENVIRONMENT=$(TESTS_ENVIRONMENT_MEM)
-if COVERAGE
-	$(MAKE) cov-report
-endif
-
-check_memory-mem: check_memory
-	$(MAKE) $(AM_MAKEFLAGS) check TESTS="check_memory" TESTS_ENVIRONMENT=$(TESTS_ENVIRONMENT_MEM)
-
-clean-local:
-	rm -rf coverage || true;
-	rm -rf *.gcda *.gcdo *.gcno *.o *.gcov *.log *.trs
-	lcov --directory . --zerocounters || true;
-
-# --- no changes beyond this line needed ---
-INCLUDE = @CHECK_CFLAGS@ -I$(top_builddir)/src -I$(top_builddir)/include
-LDADD = $(top_builddir)/lib/libopen62541.a @CHECK_LIBS@ $(GLOBAL_AM_LDADD)
-
-AM_LDFLAGS = $(LDADD)
-if COVERAGE
-AM_LDFLAGS += --coverage
-endif
-
-AM_CFLAGS = $(GLOBAL_AM_CFLAGS) $(INCLUDE)
-

+ 5 - 5
tests/check_builtin.c

@@ -339,7 +339,7 @@ START_TEST(UA_NodeId_calcSizeEncodingTwoByteShallReturnEncodingSize) {
 	// given
 	UA_NodeId arg;
 	arg.nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	arg.namespace = 0;
+	arg.ns = 0;
 	arg.identifier.numeric = 1;
 	// when
 	UA_UInt32 encodingSize = UA_NodeId_calcSizeBinary(&arg);
@@ -351,7 +351,7 @@ START_TEST(UA_NodeId_calcSizeEncodingFourByteShallReturnEncodingSize) {
 	// given
 	UA_NodeId arg;
 	arg.nodeIdType = UA_NODEIDTYPE_NUMERIC;
-	arg.namespace = 1;
+	arg.ns = 1;
 	arg.identifier.numeric = 1;
 	// when
 	UA_UInt32 encodingSize = UA_NodeId_calcSizeBinary(&arg);
@@ -812,7 +812,7 @@ START_TEST(UA_NodeId_decodeTwoByteShallReadTwoBytesAndSetNamespaceToZero) {
 	ck_assert_int_eq(pos, 2);
 	ck_assert_int_eq(dst.nodeIdType, UA_NODEIDTYPE_NUMERIC);
 	ck_assert_int_eq(dst.identifier.numeric, 16);
-	ck_assert_int_eq(dst.namespace, 0);
+	ck_assert_int_eq(dst.ns, 0);
 }
 END_TEST
 START_TEST(UA_NodeId_decodeFourByteShallReadFourBytesAndRespectNamespace) {
@@ -829,7 +829,7 @@ START_TEST(UA_NodeId_decodeFourByteShallReadFourBytesAndRespectNamespace) {
 	ck_assert_int_eq(pos, 4);
 	ck_assert_int_eq(dst.nodeIdType, UA_NODEIDTYPE_NUMERIC);
 	ck_assert_int_eq(dst.identifier.numeric, 256);
-	ck_assert_int_eq(dst.namespace, 1);
+	ck_assert_int_eq(dst.ns, 1);
 }
 END_TEST
 START_TEST(UA_NodeId_decodeStringShallAllocateMemory) {
@@ -845,7 +845,7 @@ START_TEST(UA_NodeId_decodeStringShallAllocateMemory) {
 	ck_assert_int_eq(retval, UA_SUCCESS);
 	ck_assert_int_eq(pos, 10);
 	ck_assert_int_eq(dst.nodeIdType, UA_NODEIDTYPE_STRING);
-	ck_assert_int_eq(dst.namespace, 1);
+	ck_assert_int_eq(dst.ns, 1);
 	ck_assert_int_eq(dst.identifier.string.length, 3);
 	ck_assert_ptr_eq(dst.identifier.string.data, UA_alloc_lastptr);
 	ck_assert_int_eq(dst.identifier.string.data[1], 'L');

+ 26 - 2
tests/check_memory.c

@@ -116,9 +116,21 @@ START_TEST(decodeScalarBasicTypeFromRandomBufferShallSucceed) {
 	UA_Int32 retval = UA_SUCCESS;
 	UA_Int32 buflen = 256;
 	UA_ByteString_newMembers(&msg1, buflen); // fixed size
+#ifdef WIN32
+	srand(42);
+#else
 	srandom(42);
+#endif
 	for(int n = 0;n < 100;n++) {
-		for(UA_Int32 i = 0;i < buflen;i++) msg1.data[i] = (UA_Byte)random();  // when
+		for(UA_Int32 i = 0;i < buflen;i++) {
+#ifdef WIN32
+			UA_UInt32 rnd;
+			rnd = rand();
+			msg1.data[i] = rnd;
+#else
+			msg1.data[i] = (UA_Byte)random();  // when
+#endif
+		}
 		UA_UInt32 pos = 0;
 		retval |= UA_.types[_i].new(&obj1);
 		retval |= UA_.types[_i].encodings[0].decode(&msg1, &pos, obj1);
@@ -138,10 +150,22 @@ START_TEST(decodeComplexTypeFromRandomBufferShallSurvive) {
 	UA_Int32 retval = UA_SUCCESS;
 	UA_Int32 buflen = 256;
 	UA_ByteString_newMembers(&msg1, buflen); // fixed size
+#ifdef WIN32
+	srand(42);
+#else
 	srandom(42);
+#endif
 	// when
 	for(int n = 0;n < 100;n++) {
-		for(UA_Int32 i = 0;i < buflen;i++) msg1.data[i] = (UA_Byte)random();
+		for(UA_Int32 i = 0;i < buflen;i++){
+#ifdef WIN32
+			UA_UInt32 rnd;
+			rnd = rand();
+			msg1.data[i] = rnd;
+#else
+			msg1.data[i] = (UA_Byte)random();  // when
+#endif
+		}
 		UA_UInt32 pos = 0;
 		retval |= UA_.types[_i].new(&obj1);
 		retval |= UA_.types[_i].encodings[0].decode(&msg1, &pos, obj1);

+ 0 - 20
tests/suppressions

@@ -1,20 +0,0 @@
-{
-   TimerCreateParam1
-   Memcheck:Param
-   timer_create(evp)
-   fun:timer_create
-   fun:check_get_clockid
-   fun:srunner_run
-   fun:srunner_run_all
-   fun:(below main)
-}
-{
-   TimerCreateParam2
-   Memcheck:Param
-   timer_create(evp)
-   fun:timer_create
-   fun:srunner_run
-   fun:srunner_run_all
-   fun:(below main)
-}
-

+ 2 - 2
tools/generate_namespace.py

@@ -120,7 +120,7 @@ printc('''/**********************************************************
 #include "''' + args.outfile.split("/")[-1] + '''.h"\n
 UA_Int32 UA_ns0ToVTableIndex(const UA_NodeId *id) {
 	UA_Int32 retval = 0; // InvalidType
-        if(id->namespace != 0) return retval;
+        if(id->ns != 0) return retval;
 	switch (id->identifier.numeric) {''')
 
 i = 0
@@ -158,7 +158,7 @@ for row in rows:
 	i=i+1
     printh('#define '+name.upper()+'_NS0 '+row[1])
 
-    printc("\t{.typeId={.nodeIdType = UA_NODEIDTYPE_NUMERIC, .namespace = 0,.identifier.numeric=" + row[1] + "}" + 
+    printc("\t{.typeId={.nodeIdType = UA_NODEIDTYPE_NUMERIC, .ns = 0,.identifier.numeric=" + row[1] + "}" + 
           ",\n.name=(UA_Byte*)&\"%(name)s\"" +
           ",\n.new=(UA_Int32(*)(void **))%(name)s_new" +
           ",\n.init=(UA_Int32(*)(void *))%(name)s_init"+