Browse Source

binaryEncDec: resolved #9, secureChannelLayer: beutified debug output

Leon Urbas 11 years ago
parent
commit
f1504d22f5
2 changed files with 19 additions and 19 deletions
  1. 10 10
      src/opcua_binaryEncDec.c
  2. 9 9
      src/opcua_secureChannelLayer.c

+ 10 - 10
src/opcua_binaryEncDec.c

@@ -807,27 +807,27 @@ Int32 UAByteString_calcSize(UA_ByteString *byteString)
 	return UAString_calcSize((UA_String*) byteString);
 }
 
-/* See 62541-6 §5.2.2.9 */
+/* Serialization of UANodeID is specified in 62541-6, §5.2.2.9 */
 Int32 decodeUANodeId(char const * buf, Int32 *pos, UA_NodeId *dstNodeId)
 {
-	// LU: Initialize dstNodeId to gain repeatable results
-	dstNodeId->Namespace = 0;
-	dstNodeId->Identifier.Numeric = 0;
+	// Vars for overcoming decoder_decodeXXX's non-endian-savenes
+	Byte dstByte;
+	UInt16 dstUInt16;
 
 	decoder_decodeBuiltInDatatype(buf, BYTE, pos, &(dstNodeId->EncodingByte));
 
 	switch (dstNodeId->EncodingByte)
 	{
 	case NIEVT_TWO_BYTE: // Table 7
-		decoder_decodeBuiltInDatatype(buf, BYTE, pos,
-				&(dstNodeId->Identifier.Numeric));
+		decoder_decodeBuiltInDatatype(buf, BYTE, pos, &dstByte);
+		dstNodeId->Identifier.Numeric = dstByte;
 		dstNodeId->Namespace = 0; // default OPC UA Namespace
 		break;
 	case NIEVT_FOUR_BYTE: // Table 8
-		decoder_decodeBuiltInDatatype(buf, BYTE, pos,
-				&(dstNodeId->Namespace));
-		decoder_decodeBuiltInDatatype(buf, UINT16, pos,
-				&(dstNodeId->Identifier.Numeric));
+		decoder_decodeBuiltInDatatype(buf, BYTE, pos, &dstByte);
+		dstNodeId->Namespace = dstByte;
+		decoder_decodeBuiltInDatatype(buf, UINT16, pos, &dstUInt16);
+		dstNodeId->Identifier.Numeric = dstUInt16;
 		break;
 	case NIEVT_NUMERIC: // Table 6, first entry
 		decoder_decodeBuiltInDatatype(buf, UINT16, pos,

+ 9 - 9
src/opcua_secureChannelLayer.c

@@ -82,15 +82,15 @@ Int32 SL_processMessage(UA_connection *connection, UA_ByteString message)
 	Int32 requestedLifetime;
 
 	decoder_decodeBuiltInDatatype(message.Data,NODE_ID,&pos,&ServiceRequestType);
-	UA_NodeId_printf("serviceRequestType=",&ServiceRequestType);
+	UA_NodeId_printf("SL_processMessage - serviceRequestType=",&ServiceRequestType);
 
 	if(ServiceRequestType.EncodingByte == NIEVT_FOUR_BYTE)
 	{
 		if(ServiceRequestType.Identifier.Numeric == 446) // OpensecureChannelRequest
 		{
 			decoder_decodeRequestHeader(message.Data, &pos, &requestHeader);
-			UA_String_printf("requestHeader.auditEntryId=",&requestHeader.auditEntryId);
-			UA_NodeId_printf("requestHeader.authenticationToken=", &requestHeader.authenticationToken);
+			UA_String_printf("SL_processMessage - requestHeader.auditEntryId=",&requestHeader.auditEntryId);
+			UA_NodeId_printf("SL_processMessage - requestHeader.authenticationToken=", &requestHeader.authenticationToken);
 
 			decoder_decodeBuiltInDatatype(message.Data,UINT32, &pos, &clientProtocolVersion);
 
@@ -113,7 +113,7 @@ Int32 SL_processMessage(UA_connection *connection, UA_ByteString message)
 					//TODO return ERROR
 					return UA_ERROR;
 				}
-				printf("TODO: create new token for a new SecureChannel\n");
+				printf("SL_processMessage - TODO: create new token for a new SecureChannel\n");
 			//	SL_createNewToken(connection);
 				break;
 			case securityToken_RENEW:
@@ -191,9 +191,9 @@ void SL_receive(UA_connection *connection, UA_ByteString *serviceMessage)
 
 		case packetType_OPN : /* openSecureChannel Message received */
 				decodeAASHeader(&secureChannelPacket,&pos,&AAS_Header);
-				UA_String_printf("AAS_Header.ReceiverThumbprint=", &(AAS_Header.ReceiverThumbprint));
-				UA_String_printf("AAS_Header.SecurityPolicyUri=", &(AAS_Header.SecurityPolicyUri));
-				UA_String_printf("AAS_Header.SenderCertificate=", &(AAS_Header.SenderCertificate));
+				UA_String_printf("SL_receive - AAS_Header.ReceiverThumbprint=", &(AAS_Header.ReceiverThumbprint));
+				UA_String_printf("SL_receive - AAS_Header.SecurityPolicyUri=", &(AAS_Header.SecurityPolicyUri));
+				UA_String_printf("SL_receive - AAS_Header.SenderCertificate=", &(AAS_Header.SenderCertificate));
 				if(SCM_Header.SecureChannelId != 0)
 				{
 
@@ -207,8 +207,8 @@ void SL_receive(UA_connection *connection, UA_ByteString *serviceMessage)
 				}
 
 				decodeSequenceHeader(&secureChannelPacket,&pos,&SequenceHeader);
-				printf("SequenceHeader.RequestId=%d\n",SequenceHeader.RequestId);
-				printf("SequenceHeader.SequenceNr=%d\n",SequenceHeader.SequenceNumber);
+				printf("SL_receive - SequenceHeader.RequestId=%d\n",SequenceHeader.RequestId);
+				printf("SL_receive - SequenceHeader.SequenceNr=%d\n",SequenceHeader.SequenceNumber);
 
 				//TODO check that the sequence number is smaller than MaxUInt32 - 1024
 				connection->secureLayer.sequenceNumber = SequenceHeader.SequenceNumber;