Struct SaVersionT has only 24bit but using encode 32bit.

Solution is encode each 8bit releaseCode, majorCode, minorCode
by using ncs_edp_saversiont. And encode one more 8bit to
keep backward compatible.
---
 src/log/logd/lgs_mbcsv_v6.cc | 15 ++++++++++-----
 src/log/logd/lgs_mbcsv_v6.h  |  1 +
 2 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/log/logd/lgs_mbcsv_v6.cc b/src/log/logd/lgs_mbcsv_v6.cc
index b094028e6..daad0b05d 100644
--- a/src/log/logd/lgs_mbcsv_v6.cc
+++ b/src/log/logd/lgs_mbcsv_v6.cc
@@ -17,6 +17,7 @@
  */
 
 #include "lgs_mbcsv_v6.h"
+#include "base/ncs_saf_edu.h"
 
 /****************************************************************************
  * Name          : edp_ed_reg_rec_v6
@@ -40,7 +41,8 @@ uint32_t edp_ed_reg_rec_v6(EDU_HDL *edu_hdl, EDU_TKN 
*edu_tkn, NCSCONTEXT ptr,
                            uint32_t *ptr_data_len, EDU_BUF_ENV *buf_env,
                            EDP_OP_TYPE op, EDU_ERR *o_err) {
   uint32_t rc = NCSCC_RC_SUCCESS;
-  lgs_ckpt_initialize_msg_t *ckpt_reg_msg_ptr = NULL, **ckpt_reg_msg_dec_ptr;
+  lgs_ckpt_initialize_msg_v6_t *ckpt_reg_msg_ptr = NULL,
+                               **ckpt_reg_msg_dec_ptr;
 
   EDU_INST_SET ckpt_reg_rec_ed_rules[] = {
       {EDU_START, edp_ed_reg_rec_v6, 0, 0, 0,
@@ -51,15 +53,18 @@ uint32_t edp_ed_reg_rec_v6(EDU_HDL *edu_hdl, EDU_TKN 
*edu_tkn, NCSCONTEXT ptr,
        (long)&((lgs_ckpt_initialize_msg_v6_t *)0)->mds_dest, 0, NULL},
       {EDU_EXEC, edp_ed_stream_list, EDQ_POINTER, 0, 0,
        (long)&((lgs_ckpt_initialize_msg_v6_t *)0)->stream_list, 0, NULL},
-      {EDU_EXEC, ncs_edp_uns32, 0, 0, 0,
+      {EDU_EXEC, ncs_edp_saversiont, 0, 0, 0,
        (long)&((lgs_ckpt_initialize_msg_v6_t *)0)->client_ver, 0, NULL},
+      {EDU_EXEC, ncs_edp_uns8, 0, 0, 0,
+       (long)&((lgs_ckpt_initialize_msg_v6_t *)0)->padding_ver, 0, NULL},
       {EDU_END, 0, 0, 0, 0, 0, 0, NULL},
   };
 
   if (op == EDP_OP_TYPE_ENC) {
-    ckpt_reg_msg_ptr = static_cast<lgs_ckpt_initialize_msg_t *>(ptr);
+    ckpt_reg_msg_ptr = static_cast<lgs_ckpt_initialize_msg_v6_t *>(ptr);
+    ckpt_reg_msg_ptr->padding_ver = 0;
   } else if (op == EDP_OP_TYPE_DEC) {
-    ckpt_reg_msg_dec_ptr = static_cast<lgs_ckpt_initialize_msg_t **>(ptr);
+    ckpt_reg_msg_dec_ptr = static_cast<lgs_ckpt_initialize_msg_v6_t **>(ptr);
 
     if (*ckpt_reg_msg_dec_ptr == NULL) {
       *o_err = EDU_ERR_MEM_FAIL;
@@ -68,7 +73,7 @@ uint32_t edp_ed_reg_rec_v6(EDU_HDL *edu_hdl, EDU_TKN 
*edu_tkn, NCSCONTEXT ptr,
     memset(*ckpt_reg_msg_dec_ptr, '\0', sizeof(lgs_ckpt_initialize_msg_t));
     ckpt_reg_msg_ptr = *ckpt_reg_msg_dec_ptr;
   } else {
-    ckpt_reg_msg_ptr = static_cast<lgs_ckpt_initialize_msg_t *>(ptr);
+    ckpt_reg_msg_ptr = static_cast<lgs_ckpt_initialize_msg_v6_t *>(ptr);
   }
 
   rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_reg_rec_ed_rules,
diff --git a/src/log/logd/lgs_mbcsv_v6.h b/src/log/logd/lgs_mbcsv_v6.h
index 9cdd5cf36..08d6a2114 100644
--- a/src/log/logd/lgs_mbcsv_v6.h
+++ b/src/log/logd/lgs_mbcsv_v6.h
@@ -46,6 +46,7 @@ typedef struct {
   MDS_DEST mds_dest;  /* Handy when an LGA instance goes away */
   lgs_stream_list_t *stream_list;
   SaVersionT client_ver; /* Version of client that was initialized */
+  uint8_t padding_ver; /* to keep backward compatible */
 } lgs_ckpt_initialize_msg_v6_t;
 
 typedef struct {
-- 
2.38.1



_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to