Просмотр исходного кода

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
Родитель
Сommit
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"+