osaf/libs/agents/saf/cpa/cpa_api.c      |  30 ++++++++++++++++++++++++--
 osaf/libs/agents/saf/cpa/cpa_mds.c      |   6 ++++-
 osaf/libs/common/cpsv/cpsv_evt.c        |   1 +
 osaf/services/saf/cpsv/cpd/cpd_evt.c    |  10 ++++++--
 osaf/services/saf/cpsv/cpd/cpd_mds.c    |   2 +
 osaf/services/saf/cpsv/cpd/cpd_proc.c   |   6 ++++-
 osaf/services/saf/cpsv/cpnd/cpnd_evt.c  |  36 +++++++++++++++++++++++++-------
 osaf/services/saf/cpsv/cpnd/cpnd_mds.c  |   2 +
 osaf/services/saf/cpsv/cpnd/cpnd_proc.c |  10 ++++++--
 9 files changed, 84 insertions(+), 19 deletions(-)


diff --git a/osaf/libs/agents/saf/cpa/cpa_api.c 
b/osaf/libs/agents/saf/cpa/cpa_api.c
--- a/osaf/libs/agents/saf/cpa/cpa_api.c
+++ b/osaf/libs/agents/saf/cpa/cpa_api.c
@@ -880,6 +880,10 @@ SaAisErrorT saCkptCheckpointOpen(SaCkptH
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* SA_AIS_ERR_INVALID_PARAM, bullet 4 in SAI-AIS-CKPT-B.02.02 
            Section 3.6.1 saCkptCheckpointOpen() and 
saCkptCheckpointOpenAsync(), Return Values */
@@ -981,7 +985,11 @@ SaAisErrorT saCkptCheckpointOpen(SaCkptH
        /* Populate & Send the Open Event to CPND */
        memset(&evt, 0, sizeof(CPSV_EVT));
        evt.type = CPSV_EVT_TYPE_CPND;
-       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN;
+       if (osaf_extended_name_length(checkpointName) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN;
+       } else {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN_2;
+       }
        evt.info.cpnd.info.openReq.client_hdl = ckptHandle;
        evt.info.cpnd.info.openReq.lcl_ckpt_hdl = lc_node->lcl_ckpt_hdl;
 
@@ -1192,6 +1200,10 @@ SaAisErrorT saCkptCheckpointOpenAsync(Sa
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* SA_AIS_ERR_INVALID_PARAM, bullet 4 in SAI-AIS-CKPT-B.02.02 
            Section 3.6.1 saCkptCheckpointOpen() and 
saCkptCheckpointOpenAsync(), Return Values */
@@ -1277,7 +1289,11 @@ SaAisErrorT saCkptCheckpointOpenAsync(Sa
        /* Populate & Send the Open Event to CPND */
        memset(&evt, 0, sizeof(CPSV_EVT));
        evt.type = CPSV_EVT_TYPE_CPND;
-       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN;
+       if (osaf_extended_name_length(checkpointName) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN;
+       } else {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_OPEN_2;
+       }
        evt.info.cpnd.info.openReq.client_hdl = ckptHandle;
        evt.info.cpnd.info.openReq.lcl_ckpt_hdl = lc_node->lcl_ckpt_hdl;
 
@@ -1597,6 +1613,10 @@ SaAisErrorT saCkptCheckpointUnlink(SaCkp
        }
 
        ckpt_name = osaf_extended_name_borrow(checkpointName);
+       if (strlen(ckpt_name) >= kOsafMaxDnLength) {
+               TRACE_LEAVE2("API return code = %u", SA_AIS_ERR_INVALID_PARAM);
+               return SA_AIS_ERR_INVALID_PARAM;
+       }
 
        /* retrieve CPA CB */
        m_CPA_RETRIEVE_CB(cb);
@@ -1635,7 +1655,11 @@ SaAisErrorT saCkptCheckpointUnlink(SaCkp
        /* Populate evt.info.cpnd.info.unlinkReq & Call MDS sync Send */
        memset(&evt, 0, sizeof(CPSV_EVT));
        evt.type = CPSV_EVT_TYPE_CPND;
-       evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_UNLINK;
+       if (osaf_extended_name_length(checkpointName) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_UNLINK;
+       } else {
+               evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_UNLINK_2;
+       }
 
        osaf_extended_name_lend(ckpt_name, 
&evt.info.cpnd.info.ulinkReq.ckpt_name);
 
diff --git a/osaf/libs/agents/saf/cpa/cpa_mds.c 
b/osaf/libs/agents/saf/cpa/cpa_mds.c
--- a/osaf/libs/agents/saf/cpa/cpa_mds.c
+++ b/osaf/libs/agents/saf/cpa/cpa_mds.c
@@ -515,9 +515,13 @@ static uint32_t cpa_mds_svc_evt(CPA_CB *
                   /* Populate & Send the Open Event to CPND */
                   memset(&evt, 0, sizeof(CPSV_EVT));
                   evt.type = CPSV_EVT_TYPE_CPND;
-                  evt.info.cpnd.type = CPND_EVT_A2ND_CKPT_LIST_UPDATE;
                   evt.info.cpnd.info.ckptListUpdate.client_hdl = 
lc_node->cl_hdl; 
                   osaf_extended_name_lend(lc_node->ckpt_name, 
&evt.info.cpnd.info.ckptListUpdate.ckpt_name);
+                       if 
(osaf_extended_name_length(&evt.info.cpnd.info.ckptListUpdate.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+                               evt.info.cpnd.type = 
CPND_EVT_A2ND_CKPT_LIST_UPDATE;
+                       } else {
+                               evt.info.cpnd.type = 
CPND_EVT_A2ND_CKPT_LIST_UPDATE_2;
+                       }
 
                   proc_rc = cpa_mds_msg_send(cb->cpa_mds_hdl, 
&cb->cpnd_mds_dest, &evt, NCSMDS_SVC_ID_CPND);
 
diff --git a/osaf/libs/common/cpsv/cpsv_evt.c b/osaf/libs/common/cpsv/cpsv_evt.c
--- a/osaf/libs/common/cpsv/cpsv_evt.c
+++ b/osaf/libs/common/cpsv/cpsv_evt.c
@@ -2414,6 +2414,7 @@ uint32_t cpsv_encode_extended_name(NCS_U
        if(!osaf_is_an_extended_name(name))
                return NCSCC_RC_SUCCESS;
 
+       TRACE("length = %d", name->length);
        SaConstStringT value = osaf_extended_name_borrow(name);
        uint16_t length = osaf_extended_name_length(name);
 
diff --git a/osaf/services/saf/cpsv/cpd/cpd_evt.c 
b/osaf/services/saf/cpsv/cpd/cpd_evt.c
--- a/osaf/services/saf/cpsv/cpd/cpd_evt.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_evt.c
@@ -110,6 +110,7 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_timer_expiry(cb, &evt->info.cpd);
                break;
        case CPD_EVT_ND2D_CKPT_CREATE:
+       case CPD_EVT_ND2D_CKPT_CREATE_2:
                (void)cpd_evt_proc_ckpt_create(cb, &evt->info.cpd, &evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_USR_INFO:
@@ -119,6 +120,7 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_ckpt_sec_info_upd(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_UNLINK:
+       case CPD_EVT_ND2D_CKPT_UNLINK_2:
                (void)cpd_evt_proc_ckpt_unlink(cb, &evt->info.cpd, &evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_RDSET:
@@ -131,12 +133,14 @@ void cpd_process_evt(CPSV_EVT *evt)
                (void)cpd_evt_proc_ckpt_destroy(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                (void)cpd_evt_proc_ckpt_destroy_byname(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_MDS_QUIESCED_ACK_RSP:
                (void)cpd_evt_mds_quiesced_ack_rsp(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
        case CPD_EVT_ND2D_CKPT_INFO_UPDATE:
+       case CPD_EVT_ND2D_CKPT_INFO_UPDATE_2:
                (void)cpd_evt_proc_ckpt_info_upd(cb, &evt->info.cpd, 
&evt->sinfo);
                break;
 
@@ -1484,15 +1488,15 @@ static uint32_t cpd_evt_proc_mds_evt(CPD
 static void cpd_evt_free(CPSV_EVT *evt)
 {
        switch (evt->info.cpd.type) {
-       case CPD_EVT_ND2D_CKPT_CREATE:
+       case CPD_EVT_ND2D_CKPT_CREATE_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_create.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_create.ckpt_name));
                break;
-       case CPD_EVT_ND2D_CKPT_UNLINK:
+       case CPD_EVT_ND2D_CKPT_UNLINK_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_ulink.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_ulink.ckpt_name));
                break;
-       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+       case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                if 
(osaf_is_an_extended_name(&evt->info.cpd.info.ckpt_destroy_byname.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpd.info.ckpt_destroy_byname.ckpt_name));
                break;
diff --git a/osaf/services/saf/cpsv/cpd/cpd_mds.c 
b/osaf/services/saf/cpsv/cpd/cpd_mds.c
--- a/osaf/services/saf/cpsv/cpd/cpd_mds.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_mds.c
@@ -334,6 +334,7 @@ static uint32_t cpd_mds_enc(CPD_CB *cb, 
                if (pevt->type == CPSV_EVT_TYPE_CPND) {
                        switch (pevt->info.cpnd.type) {
                        case CPND_EVT_D2ND_CKPT_CREATE:
+                       case CPND_EVT_D2ND_CKPT_CREATE_2:
 
                                pstream = ncs_enc_reserve_space(io_uba, 12);
                                if (!pstream)
@@ -431,6 +432,7 @@ static uint32_t cpd_mds_dec(CPD_CB *cb, 
                                return rc;
 
                        case CPD_EVT_ND2D_CKPT_INFO_UPDATE:
+                       case CPD_EVT_ND2D_CKPT_INFO_UPDATE_2:
                                ncs_dec_skip_space(dec_info->io_uba, 8);
                                rc = 
cpsv_nd2d_ckpt_info_update_decode(&msg_ptr->info.cpd.info.ckpt_info, 
dec_info->io_uba);
                                if (rc != NCSCC_RC_SUCCESS) {
diff --git a/osaf/services/saf/cpsv/cpd/cpd_proc.c 
b/osaf/services/saf/cpsv/cpd/cpd_proc.c
--- a/osaf/services/saf/cpsv/cpd/cpd_proc.c
+++ b/osaf/services/saf/cpsv/cpd/cpd_proc.c
@@ -61,9 +61,13 @@ uint32_t cpd_noncolloc_ckpt_rep_create(C
        /* Send the Replica create info to CPND */
        memset(&send_evt, 0, sizeof(CPSV_EVT));
        send_evt.type = CPSV_EVT_TYPE_CPND;
-       send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE;
 
        osaf_extended_name_lend(map_info->ckpt_name, 
&send_evt.info.cpnd.info.ckpt_create.ckpt_name);
+       if 
(osaf_extended_name_length(&send_evt.info.cpnd.info.ckpt_create.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE;
+       } else {
+               send_evt.info.cpnd.type = CPND_EVT_D2ND_CKPT_CREATE_2;
+       }
 
        d2nd_info = &send_evt.info.cpnd.info.ckpt_create.ckpt_info;
 
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_evt.c
@@ -200,6 +200,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_OPEN:
+       case CPND_EVT_A2ND_CKPT_OPEN_2:
                (void)cpnd_evt_proc_ckpt_open(cb, &evt->info.cpnd, &evt->sinfo);
                break;
 
@@ -208,6 +209,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_UNLINK:
+       case CPND_EVT_A2ND_CKPT_UNLINK_2:
                (void)cpnd_evt_proc_ckpt_unlink(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
@@ -313,6 +315,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
 
        case CPND_EVT_D2ND_CKPT_CREATE: /* happens for non-collocated and 
received
                                                   by CPNDs on SCXB */
+       case CPND_EVT_D2ND_CKPT_CREATE_2:
                (void)cpnd_evt_proc_ckpt_create(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
@@ -360,6 +363,7 @@ void cpnd_process_evt(CPSV_EVT *evt)
                break;
 
        case CPND_EVT_A2ND_CKPT_LIST_UPDATE:
+       case CPND_EVT_A2ND_CKPT_LIST_UPDATE_2:
                (void) cpnd_evt_proc_ckpt_ckpt_list_update(cb, &evt->info.cpnd, 
&evt->sinfo);
                break;
 
@@ -708,7 +712,7 @@ static uint32_t cpnd_evt_proc_ckpt_open(
 
        /* ckpt is not present locally */
        /* if not present send to cpd,get the details... 
-          Send the CPD_EVT_ND2D_CKPT_CREATE evt to CPD to get the ckpt details 
+          Send the CPD_EVT_ND2D_CKPT_CREATE_2 evt to CPD to get the ckpt 
details 
           Fill send_evt.info.cpd.info.ckpt_create */
        if (sinfo->stype == MDS_SENDTYPE_SNDRSP) {
                timeout = 
m_CPSV_CONVERT_SATIME_TEN_MILLI_SEC(evt->info.openReq.timeout);
@@ -718,7 +722,11 @@ static uint32_t cpnd_evt_proc_ckpt_open(
                timeout = CPSV_WAIT_TIME;
 
        send_evt.type = CPSV_EVT_TYPE_CPD;
-       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_CREATE;
+       if (osaf_extended_name_length(&evt->info.openReq.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_CREATE;
+       } else {
+               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_CREATE_2;
+       }
 
        osaf_extended_name_lend(ckpt_name, 
&send_evt.info.cpd.info.ckpt_create.ckpt_name);
        send_evt.info.cpd.info.ckpt_create.attributes = 
evt->info.openReq.ckpt_attrib;
@@ -743,7 +751,11 @@ static uint32_t cpnd_evt_proc_ckpt_open(
 
                        memset(node, '\0', sizeof(CPND_CPD_DEFERRED_REQ_NODE));
                        node->evt.type = CPSV_EVT_TYPE_CPD;
-                       node->evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME;
+                       if 
(osaf_extended_name_length(&send_evt.info.cpd.info.ckpt_create.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+                               send_evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME;
+                       } else {
+                               send_evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2;
+                       }
                        osaf_extended_name_lend(ckpt_name, 
&node->evt.info.cpd.info.ckpt_destroy_byname.ckpt_name);
 
                        ncs_enqueue(&cb->cpnd_cpd_deferred_reqs_list, (void 
*)node);
@@ -1151,7 +1163,11 @@ static uint32_t cpnd_evt_proc_ckpt_unlin
        }
 
        send_evt.type = CPSV_EVT_TYPE_CPD;
-       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_UNLINK;
+       if (osaf_extended_name_length(&evt->info.ulinkReq.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_UNLINK;
+       } else {
+               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_UNLINK_2;
+       }
        send_evt.info.cpd.info.ckpt_ulink.ckpt_name = 
evt->info.ulinkReq.ckpt_name;
 
        rc = cpnd_mds_msg_sync_send(cb, NCSMDS_SVC_ID_CPD, cb->cpd_mdest_id, 
&send_evt, &out_evt, CPSV_WAIT_TIME);
@@ -3955,12 +3971,14 @@ static uint32_t cpnd_proc_cpd_new_active
                        }
                        break;
                case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME:
+               case CPD_EVT_ND2D_CKPT_DESTROY_BYNAME_2:
                        if (out_evt && 
out_evt->info.cpnd.info.destroy_ack.error != SA_AIS_OK) {
                                TRACE_4("cpnd cpd new active destroy byname 
failed with error:%d",out_evt->info.cpnd.info.destroy_ack.error);
                        }
                        break;
 
                case CPD_EVT_ND2D_CKPT_UNLINK:
+               case CPD_EVT_ND2D_CKPT_UNLINK_2:
                        if (out_evt && out_evt->info.cpnd.info.ulink_ack.error 
!= SA_AIS_OK) {
                                TRACE_4("cpnd cpd new active unlink failed with 
error:%d",out_evt->info.cpnd.info.ulink_ack.error);
                        }
@@ -4628,16 +4646,18 @@ uint32_t cpnd_evt_destroy(CPSV_EVT *evt)
                        }
                        break;
                }
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_OPEN) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_OPEN_2) {
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.openReq.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.openReq.ckpt_name));
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_UNLINK) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_UNLINK_2) {
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ulinkReq.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ulinkReq.ckpt_name));
-       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_LIST_UPDATE) {
+       } else if (evt->info.cpnd.type == CPND_EVT_A2ND_CKPT_LIST_UPDATE_2) {
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ckptListUpdate.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ckptListUpdate.ckpt_name));
-       } else if (evt->info.cpnd.type == CPND_EVT_D2ND_CKPT_CREATE) {
+       } else if (evt->info.cpnd.type == CPND_EVT_D2ND_CKPT_CREATE_2) {
+               if (evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list != NULL)
+                       
m_MMGR_FREE_CPSV_SYS_MEMORY(evt->info.cpnd.info.ckpt_create.ckpt_info.dest_list);
                if 
(osaf_is_an_extended_name(&evt->info.cpnd.info.ckpt_create.ckpt_name))
                        free((void 
*)osaf_extended_name_borrow(&evt->info.cpnd.info.ckpt_create.ckpt_name));
        }
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_mds.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_mds.c
@@ -426,6 +426,7 @@ static uint32_t cpnd_mds_enc(CPND_CB *cb
                                return rc;
 
                        case CPD_EVT_ND2D_CKPT_INFO_UPDATE:
+                       case CPD_EVT_ND2D_CKPT_INFO_UPDATE_2:
                                pstream = ncs_enc_reserve_space(io_uba, 8);
                                if (!pstream)
                                        return m_CPSV_DBG_SINK(NCSCC_RC_FAILURE,
@@ -594,6 +595,7 @@ static uint32_t cpnd_mds_dec(CPND_CB *cb
                                goto free;
 
                        case CPND_EVT_D2ND_CKPT_CREATE:
+                       case CPND_EVT_D2ND_CKPT_CREATE_2:
                                ncs_dec_skip_space(dec_info->io_uba, 12);
                                rc = 
cpsv_d2nd_ckpt_create_2_decode(&msg_ptr->info.cpnd.info.ckpt_create, 
dec_info->io_uba);
                                goto free;
diff --git a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c 
b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
--- a/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
+++ b/osaf/services/saf/cpsv/cpnd/cpnd_proc.c
@@ -2529,9 +2529,13 @@ void cpnd_proc_ckpt_info_update(CPND_CB 
                LOG_NO("cpnd_proc_update_cpd_data::ckpt_name = %s[%llu]", 
(char*)ckpt_node->ckpt_name,
                        ckpt_node->ckpt_id);
                send_evt.type = CPSV_EVT_TYPE_CPD;
-               send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_INFO_UPDATE;
                send_evt.info.cpd.info.ckpt_info.ckpt_id = ckpt_node->ckpt_id;
                osaf_extended_name_lend(ckpt_node->ckpt_name, 
&send_evt.info.cpd.info.ckpt_info.ckpt_name);
+               if 
(osaf_extended_name_length(&send_evt.info.cpd.info.ckpt_info.ckpt_name) <= 
SA_MAX_UNEXTENDED_NAME_LENGTH) {
+                       send_evt.info.cpd.type = CPD_EVT_ND2D_CKPT_INFO_UPDATE;
+               } else {
+                       send_evt.info.cpd.type = 
CPD_EVT_ND2D_CKPT_INFO_UPDATE_2;
+               }
                send_evt.info.cpd.info.ckpt_info.attributes = 
ckpt_node->create_attrib;
                send_evt.info.cpd.info.ckpt_info.ckpt_flags = 
ckpt_node->open_flags;
                send_evt.info.cpd.info.ckpt_info.num_users = 
ckpt_node->ckpt_lcl_ref_cnt;
@@ -2550,12 +2554,12 @@ void cpnd_proc_ckpt_info_update(CPND_CB 
                else
                        send_evt.info.cpd.info.ckpt_info.is_last = false;
 
-               LOG_NO("cpnd_proc_update_cpd_data::send 
CPD_EVT_ND2D_CKPT_INFO_UPDATE");
+               LOG_NO("cpnd_proc_update_cpd_data::send 
CPD_EVT_ND2D_CKPT_INFO_UPDATE_2");
                rc = cpnd_mds_msg_sync_send(cb, NCSMDS_SVC_ID_CPD, 
cb->cpd_mdest_id, &send_evt, &out_evt,
                                            CPSV_WAIT_TIME);
 
                if (rc != NCSCC_RC_SUCCESS) {
-                       LOG_ER("cpnd_proc_update_cpd_data::fail to send 
CPD_EVT_ND2D_CKPT_INFO_UPDATE");
+                       LOG_ER("cpnd_proc_update_cpd_data::fail to send 
CPD_EVT_ND2D_CKPT_INFO_UPDATE_2");
                }
 
                if (out_evt == NULL) {

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

Reply via email to