Leon Urbas 11 gadi atpakaļ
vecāks
revīzija
8da17e3303
1 mainītis faili ar 7 papildinājumiem un 3 dzēšanām
  1. 7 3
      src/opcua_secureChannelLayer.c

+ 7 - 3
src/opcua_secureChannelLayer.c

@@ -482,14 +482,14 @@ void SL_receive(UA_connection *connection, UA_ByteString *serviceMessage) {
 	if (secureChannelPacket.length > 0 && secureChannelPacket.data != NULL) {
 
 		printf("SL_receive - data received \n");
-		packetType = TL_getPacketType(&secureChannelPacket, &pos);
+		secureConvHeader.messageType = TL_getPacketType(&secureChannelPacket, &pos);
 
 		UA_SecureConversationMessageHeader_decode(secureChannelPacket.data, &pos, &secureConvHeader);
 
 		switch (secureConvHeader.messageType) {
 
 		case packetType_OPN: /* openSecureChannel Message received */
-			UA_AsymmetricAlgorithmSecurityHeader_encode(secureChannelPacket.data, &pos, &asymAlgSecHeader);
+			UA_AsymmetricAlgorithmSecurityHeader_decode(secureChannelPacket.data, &pos, &asymAlgSecHeader);
 			UA_ByteString_printf("SL_receive - AAS_Header.ReceiverThumbprint=",
 					&(asymAlgSecHeader.receiverCertificateThumbprint));
 			UA_ByteString_printf("SL_receive - AAS_Header.SecurityPolicyUri=",
@@ -703,6 +703,7 @@ UA_Int32 UA_OPCUATcpAcknowledgeMessage_decode(char const * src, UA_Int32* pos, U
 	return retval;
 }
 
+// FIXME: decide if serialized messageType (3 Bytes) shall be part of header
 UA_Int32 UA_SecureConversationMessageHeader_calcSize(UA_SecureConversationMessageHeader const * ptr) {
 	return 0
 	 + sizeof(UA_UInt32) // messageType
@@ -712,6 +713,7 @@ UA_Int32 UA_SecureConversationMessageHeader_calcSize(UA_SecureConversationMessag
 	;
 }
 
+// FIXME: decide if serialized messageType (3 Bytes) shall be part of header
 UA_Int32 UA_SecureConversationMessageHeader_encode(UA_SecureConversationMessageHeader const * src, UA_Int32* pos, char* dst) {
 	UA_Int32 retval = UA_SUCCESS;
 	retval |= UA_UInt32_encode(&(src->messageType),pos,dst);
@@ -721,9 +723,11 @@ UA_Int32 UA_SecureConversationMessageHeader_encode(UA_SecureConversationMessageH
 	return retval;
 }
 
+// FIXME: decide if serialized messageType (3 Bytes) shall be part of header
 UA_Int32 UA_SecureConversationMessageHeader_decode(char const * src, UA_Int32* pos, UA_SecureConversationMessageHeader* dst) {
 	UA_Int32 retval = UA_SUCCESS;
-	retval |= UA_UInt32_decode(src,pos,&(dst->messageType));
+	// TODO: this is an inconsistent quickfix for current logic in SL_receive
+	// retval |= UA_UInt32_decode(src,pos,&(dst->messageType));
 	retval |= UA_Byte_decode(src,pos,&(dst->isFinal));
 	retval |= UA_UInt32_decode(src,pos,&(dst->messageSize));
 	retval |= UA_UInt32_decode(src,pos,&(dst->secureChannelId));