Fixed latest Gcc errors/warning on top of this published patch , any how I will be republish complete patch after my test result with LOG_LEVEL 4 .
======================================================================================== diff --git a/osaf/libs/core/include/mds_papi.h b/osaf/libs/core/include/mds_papi.h --- a/osaf/libs/core/include/mds_papi.h +++ b/osaf/libs/core/include/mds_papi.h @@ -796,6 +796,7 @@ unpack individual structure members. */ */ MDS_HDL svc_pwe_hdl; MDS_SVC_PVT_SUB_PART_VER i_rem_svc_pvt_ver; /* Remote service id subpart version */ + char i_dest_details[255]; } MDS_CALLBACK_SVC_EVENT_INFO; diff --git a/osaf/libs/core/mds/mds_c_api.c b/osaf/libs/core/mds/mds_c_api.c --- a/osaf/libs/core/mds/mds_c_api.c +++ b/osaf/libs/core/mds/mds_c_api.c @@ -773,8 +773,8 @@ uint32_t mds_mcm_svc_install(NCSMDS_INFO if (info->info.svc_install.i_mds_q_ownership == false) { if (info->i_svc_id >= NCSMDS_SVC_ID_EXTERNAL_MIN) { - m_MDS_LOG_ERR("MCM_API : svc_install : FAILED : svc_id = %s , Should use the MDS Q Ownership model", - ncsmds_svc_names[info->i_svc_id]); + m_MDS_LOG_ERR("MCM_API : svc_install : FAILED : svc_id = %d , Should use the MDS Q Ownership model", + info->i_svc_id); m_MDS_LOG_DBG("MCM_API : Leaving : F : mds_mcm_svc_install"); return NCSCC_RC_FAILURE; } @@ -1620,6 +1620,7 @@ else (entry exists) if (vdest_id == m_VDEST_ID_FOR_ADEST_ENTRY) { /* Remote svc is on ADEST */ char to_adest_details[255]; + memset(to_adest_details, 0, 255); get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(local_svc_hdl), svc_id, adest, to_adest_details); diff --git a/osaf/libs/core/mds/mds_c_db.c b/osaf/libs/core/mds/mds_c_db.c --- a/osaf/libs/core/mds/mds_c_db.c +++ b/osaf/libs/core/mds/mds_c_db.c @@ -42,7 +42,6 @@ void get_adest_details(MDS_DEST adest, c char name[1024]; char process_name[255]; bool remote = false; - memset(adest_details, 0, sizeof(adest_details)); m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), NULL, &phy_slot, &sub_slot); @@ -140,7 +139,6 @@ void get_subtn_adest_details(MDS_PWE_HDL char *token; struct stat s; - memset(adest_details, 0, sizeof(adest_details)); m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), NULL, &phy_slot, &sub_slot); process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest); diff --git a/osaf/libs/core/mds/mds_dt_tipc.c b/osaf/libs/core/mds/mds_dt_tipc.c --- a/osaf/libs/core/mds/mds_dt_tipc.c +++ b/osaf/libs/core/mds/mds_dt_tipc.c @@ -826,6 +826,7 @@ static uint32_t mdtm_process_discovery_e NCS_VDEST_TYPE policy = 0; MDS_SVC_HDL svc_hdl; char adest_details[255]; + memset(adest_details, 0, 255); MDS_SVC_PVT_SUB_PART_VER svc_sub_part_ver; MDS_SVC_ARCHWORD_TYPE archword_type; ======================================================================================== On 8/14/2014 8:38 PM, mahesh.va...@oracle.com wrote: > osaf/libs/core/mds/include/mds_core.h | 7 + > osaf/libs/core/mds/include/mds_dt2c.h | 1 + > osaf/libs/core/mds/include/mds_dt_tcp.h | 1 + > osaf/libs/core/mds/mds_c_api.c | 17 ++- > osaf/libs/core/mds/mds_c_db.c | 176 > ++++++++++++++++++++++++++++++++ > osaf/libs/core/mds/mds_c_sndrcv.c | 24 ++- > osaf/libs/core/mds/mds_dt_common.c | 1 + > osaf/libs/core/mds/mds_dt_tcp.c | 3 + > osaf/libs/core/mds/mds_dt_tipc.c | 6 + > osaf/libs/core/mds/mds_main.c | 1 + > 10 files changed, 227 insertions(+), 10 deletions(-) > > > 1) Update once adest details in MDS_SUBSCRIPTION_RESULTS_INFO > > For now adest will be printed like Adest = <node[1]:osafamfd[2871]> for > local node > This is just being level changes still long way to go..... > > Example : > Aug 14 9:52:26.073064 osafamfd[2871] NOTIFY |MDTM: svc up event for svc_id > = IMMND(25), subscri. by svc_id = IMMA_OI(27) pwe_id=1 Adest = > <node[1]:osafamfd[2871]> > Aug 14 9:52:28.179722 osafclmd[2852] NOTIFY |MDTM: svc up event for svc_id > = AVND(13), subscri. by svc_id = CLMS(34) pwe_id=1 Adest = > <node[1]:osafclmd[2852]> > > diff --git a/osaf/libs/core/mds/include/mds_core.h > b/osaf/libs/core/mds/include/mds_core.h > --- a/osaf/libs/core/mds/include/mds_core.h > +++ b/osaf/libs/core/mds/include/mds_core.h > @@ -159,6 +159,7 @@ typedef struct mds_subscription_results_ > MDS_SVC_ARCHWORD_TYPE rem_svc_arch_word; > uint32_t msg_snd_cnt; /* Message send count to this > destination */ > uint32_t msg_rcv_cnt; /* Message rcv count from this > destination */ > + char sub_adest_details[255]; /* <node[slotno]:processname[pid]> */ > > } MDS_SUBSCRIPTION_RESULTS_INFO; > > @@ -188,6 +189,7 @@ typedef struct mds_subscription_info { > this is Mcast or Bcast differentiators if conut is ZERO mcast else > count is grater than ZERO bcast (multi-unicast) */ > uint32_t prev_ver_sub_count; > + char sub_adest_details[255]; /* <node[slotno]:processname[pid]> */ > > } MDS_SUBSCRIPTION_INFO; > > @@ -277,12 +279,14 @@ typedef struct mds_svc_info { > bool i_node_subscr; /* suscription to node */ > MDS_SUBTN_REF_VAL node_subtn_ref_val; > bool i_msg_loss_indication; /* message loss indication if set to 1 > */ > + char adest_details[255]; /* <node[slotno]:processname[pid]> */ > } MDS_SVC_INFO; > > MDS_SVC_INFO *mds_get_svc_info_by_hdl(MDS_SVC_HDL hdl); > > typedef struct mds_mcm_cb { > MDS_DEST adest; > + char adest_details[255]; /* <node[slotno]:processname[pid]> */ > > /* List of all subscription results MDS_SUBSCRIPTION_RESULTS_INFO */ > NCS_PATRICIA_TREE subtn_results; > @@ -485,6 +489,9 @@ extern uint32_t mds_mcm_validate_scope(N > > extern uint32_t mds_mcm_free_msg_uba_start(MDS_ENCODED_MSG msg); > > +extern void get_adest_details(MDS_DEST adest, char* adest_details); > +extern void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id, > + MDS_DEST adest, char* adest_details); > /* ******************************************** */ > /* ******************************************** */ > /* MMGR Macros */ > diff --git a/osaf/libs/core/mds/include/mds_dt2c.h > b/osaf/libs/core/mds/include/mds_dt2c.h > --- a/osaf/libs/core/mds/include/mds_dt2c.h > +++ b/osaf/libs/core/mds/include/mds_dt2c.h > @@ -138,6 +138,7 @@ typedef struct mdtm_send_req { > such scheme > */ > MDS_DEST adest; /* MDTM to do local/remote routing, destination > adest */ > + char sub_adest_details[255]; /* <node[slotno]:processname[pid]> */ > MDS_SEND_PRIORITY_TYPE pri; > MDS_CLIENT_MSG_FORMAT_VER msg_fmt_ver; /* message format version > specification */ > MDS_SVC_PVT_SUB_PART_VER src_svc_sub_part_ver; > diff --git a/osaf/libs/core/mds/include/mds_dt_tcp.h > b/osaf/libs/core/mds/include/mds_dt_tcp.h > --- a/osaf/libs/core/mds/include/mds_dt_tcp.h > +++ b/osaf/libs/core/mds/include/mds_dt_tcp.h > @@ -36,6 +36,7 @@ typedef struct mdtm_tcp_cb { > > void *mdtm_hdle_task; > uint64_t adest; > + char adest_details[255]; /* <node[slotno]:processname[pid]> */ > > SYSF_MBX tmr_mbx; > int tmr_fd; > diff --git a/osaf/libs/core/mds/mds_c_api.c b/osaf/libs/core/mds/mds_c_api.c > --- a/osaf/libs/core/mds/mds_c_api.c > +++ b/osaf/libs/core/mds/mds_c_api.c > @@ -25,6 +25,7 @@ > > #include "mds_core.h" > #include "mds_log.h" > +#include "mds_core.h" > > /********************************************************* > > @@ -1517,6 +1518,7 @@ uint32_t mds_mcm_svc_up(PW_ENV_ID pwe_id > MDS_SUBSCRIPTION_RESULTS_INFO *subtn_result_info = NULL; > MDS_SUBSCRIPTION_RESULTS_INFO *active_subtn_result_info = NULL; > MDS_SUBSCRIPTION_RESULTS_INFO *next_active_result_info = NULL; > + MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL; > > m_MDS_LOG_DBG("MCM_API : Entering : mds_mcm_svc_up : Details below :"); > m_MDS_LOG_DBG("MCM_API : LOCAL SVC INFO : SVC id = %d | PWE id = %d | > VDEST id = %d |", > @@ -1627,11 +1629,14 @@ else (entry exists) > > /*************** Validation for SCOPE **********************/ > > - status = mds_subtn_res_tbl_query_by_adest(local_svc_hdl, svc_id, > vdest_id, adest); > + status = mds_get_subtn_res_tbl_by_adest(local_svc_hdl, svc_id, > vdest_id, adest, &log_subtn_result_info); > > if (status == NCSCC_RC_FAILURE) { /* Subscription result tabel > entry doesn't exist */ > > if (vdest_id == m_VDEST_ID_FOR_ADEST_ENTRY) { /* Remote svc > is on ADEST */ > + char to_adest_details[255]; > + > get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(local_svc_hdl), > + svc_id, adest, to_adest_details); > > mds_subtn_res_tbl_add(local_svc_hdl, svc_id, > (MDS_VDEST_ID)vdest_id, adest, > role, > @@ -1669,6 +1674,9 @@ else (entry exists) > > &tmr_running, &subtn_result_info, true); > /* check if any other active present */ > if (status == NCSCC_RC_FAILURE) { > /* No active present */ > + char to_adest_details[255]; > + > get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(local_svc_hdl), > + svc_id, > active_adest, to_adest_details); > /* Add entry to subscription > result table */ > status = > mds_subtn_res_tbl_add(local_svc_hdl, > > svc_id, > @@ -2556,6 +2564,7 @@ uint32_t mds_mcm_svc_down(PW_ENV_ID pwe_ > bool tmr_running; > MDS_SUBSCRIPTION_RESULTS_INFO *subtn_result_info = NULL; > MDS_SUBSCRIPTION_RESULTS_INFO *next_active_result_info = NULL; > + MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL; > V_DEST_RL dest_role; > > m_MDS_LOG_DBG("MCM_API : Entering : mds_mcm_svc_down : Details below > :"); > @@ -2669,7 +2678,7 @@ else (entry exists) > } > /*************** Validation for SCOPE **********************/ > > - status = mds_subtn_res_tbl_query_by_adest(local_svc_hdl, svc_id, > (MDS_VDEST_ID)vdest_id, adest); > + status = mds_get_subtn_res_tbl_by_adest(local_svc_hdl, svc_id, > (MDS_VDEST_ID)vdest_id, adest, &log_subtn_result_info); > if (status == NCSCC_RC_FAILURE) { /* Subscription result tabel > entry doesn't exist */ > > /* Discard : Getting down before getting up */ > @@ -3375,6 +3384,8 @@ uint32_t mds_mcm_user_event_callback(MDS > if (vdest_id == m_VDEST_ID_FOR_ADEST_ENTRY) { > /* Service is on remote ADEST */ > cbinfo->info.svc_evt.i_dest = adest; > + if ((event_type == NCSMDS_UP) || (event_type == NCSMDS_RED_UP)) > + get_adest_details(adest, > cbinfo->info.svc_evt.i_dest_details); > cbinfo->info.svc_evt.i_anc = 0; /* anchor same as adest */ > } else { > /* Service is on remote VDEST */ > @@ -3382,6 +3393,8 @@ uint32_t mds_mcm_user_event_callback(MDS > > if (event_type == NCSMDS_RED_UP || event_type == > NCSMDS_RED_DOWN || event_type == NCSMDS_CHG_ROLE) { > cbinfo->info.svc_evt.i_anc = adest; /* anchor same > as adest */ > + if (event_type == NCSMDS_RED_UP) > + get_adest_details(adest, > cbinfo->info.svc_evt.i_dest_details); > } else { > cbinfo->info.svc_evt.i_anc = 0; > } > diff --git a/osaf/libs/core/mds/mds_c_db.c b/osaf/libs/core/mds/mds_c_db.c > --- a/osaf/libs/core/mds/mds_c_db.c > +++ b/osaf/libs/core/mds/mds_c_db.c > @@ -25,6 +25,177 @@ > > #include "mds_core.h" > #include "mds_log.h" > +#include "ncs_main_papi.h" > +extern char *tipc_or_tcp; > +extern uint32_t mds_mcm_check_intranode(MDS_DEST adest); > +/***************************************************** > +Function NAME: get_adest_details() > +Returns : <node[slotno]:processname[pid]> > +*****************************************************/ > +void get_adest_details(MDS_DEST adest, char* adest_details) > +{ > + char *token; > + struct stat s; > + uint32_t process_id = 0; > + NCS_PHY_SLOT_ID phy_slot; > + NCS_SUB_SLOT_ID sub_slot; > + char name[1024]; > + char process_name[255]; > + bool remote = false; > + memset(adest_details, 0, sizeof(adest_details)); > + > + m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), > NULL, &phy_slot, &sub_slot); > + > + if (strcmp(tipc_or_tcp, "TCP") == 0) { > + process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest); > + if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) { > + sprintf(name, "/proc/%d/cmdline", process_id); > + if(stat(name, &s) != 0) { > + sprintf(process_name, "pid[%u]", process_id); > + } else { > + > + FILE* f = fopen(name,"r"); > + if(f){ > + size_t size; > + size = fread(name, sizeof(char), > 1024, f); > + if(size>0){ > + if('\n' == name[size-1]) > + name[size-1]='\0'; > + } > + fclose(f); > + } > + token = strtok(name, "/"); > + while( token != NULL ) > + { > + strcpy(name,token); > + token = strtok(NULL, "/"); > + } > + sprintf(process_name, "%s[%u]", name, > process_id); > + } > + > + } else { > + sprintf(process_name, "dest_pid[%u]", process_id); > + remote = true; > + } > + } else if (strcmp(tipc_or_tcp, "TIPC") == 0) { > + process_id = getpid(); > + if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) { > + sprintf(name, "/proc/%d/cmdline", process_id); > + if(stat(name, &s) != 0) { > + sprintf(process_name, "tipc_id_ref[%u]", > process_id); > + } else { > + > + FILE* f = fopen(name,"r"); > + if(f){ > + size_t size; > + size = fread(name, sizeof(char), > 1024, f); > + if(size>0){ > + if('\n' == name[size-1]) > + name[size-1]='\0'; > + } > + fclose(f); > + } > + token = strtok(name, "/"); > + while( token != NULL ) > + { > + strcpy(name,token); > + token = strtok(NULL, "/"); > + } > + sprintf(process_name, "%s[%u]", name, > process_id); > + } > + > + } else { > + > + process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest); > + sprintf(process_name, > "dest_tipc_id_ref[%u]",process_id); > + remote = true; > + } > + } > + > + if (remote == true) > + sprintf(adest_details, "<rem_node[%d]:%s>", > + phy_slot, process_name); > + else > + sprintf(adest_details, "<node[%d]:%s>", > + phy_slot, process_name); > + > + m_MDS_LOG_DBG("MCM_DB : Leaving : F : get_adest_details > adest_details: %s ", adest_details); > +} > + > + > +/***************************************************** > + Function NAME: get_subtn_adest_details > + Returns : <node[slotno]:processname[pid]> > + *****************************************************/ > +void get_subtn_adest_details(MDS_PWE_HDL pwe_hdl, MDS_SVC_ID svc_id, > MDS_DEST adest, char* adest_details) > +{ > + uint32_t process_id = 0; > + NCS_PHY_SLOT_ID phy_slot; > + NCS_SUB_SLOT_ID sub_slot; > + char process_name[255]; > + bool remote = false; > + MDS_SVC_INFO *svc_info = NULL; > + > + char name[1024]; > + char *token; > + struct stat s; > + > + memset(adest_details, 0, sizeof(adest_details)); > + m_NCS_GET_PHYINFO_FROM_NODE_ID(m_NCS_NODE_ID_FROM_MDS_DEST(adest), > NULL, &phy_slot, &sub_slot); > + process_id = m_MDS_GET_PROCESS_ID_FROM_ADEST(adest); > + > + if (NCSCC_RC_SUCCESS == mds_mcm_check_intranode(adest)) { > + if (NCSCC_RC_SUCCESS == mds_svc_tbl_get(pwe_hdl, svc_id, > (NCSCONTEXT)&svc_info)) { > + strcpy(adest_details, svc_info->adest_details); > + goto done; > + } else if (strcmp(tipc_or_tcp, "TCP") == 0) { > + > + sprintf(name, "/proc/%d/cmdline", process_id); > + if(stat(name, &s) != 0) { > + sprintf(process_name, "pid[%u]", process_id); > + } else { > + > + FILE* f = fopen(name,"r"); > + if(f){ > + size_t size; > + size = fread(name, sizeof(char), > 1024, f); > + if(size>0){ > + if('\n' == name[size-1]) > + name[size-1]='\0'; > + } > + fclose(f); > + } > + token = strtok(name, "/"); > + while( token != NULL ) > + { > + strcpy(name,token); > + token = strtok(NULL, "/"); > + } > + sprintf(process_name, "%s[%u]", name, > process_id); > + } > + } else { > + /* Service Doesn't exist */ > + sprintf(process_name, "tipc_id_ref[%u]", process_id); > + } > + } else { > + if (strcmp(tipc_or_tcp, "TCP") == 0) { > + sprintf(process_name, "dest_pid[%u]", process_id); > + remote = true; > + } else { > + sprintf(process_name, > "dest_tipc_id_ref[%u]",process_id); > + remote = true; > + } > + } > + > + if (remote == true) > + sprintf(adest_details, "<rem_node[%d]:%s>", > + phy_slot, process_name); > + else > + sprintf(adest_details, "<node[%d]:%s>", > + phy_slot, process_name); > +done: > + m_MDS_LOG_DBG("MCM_DB : Leaving : F : get_subtn_adest_details > adest_details: %s ", adest_details); > +} > > /* ******************************************** */ > /* ******************************************** */ > @@ -574,6 +745,7 @@ uint32_t mds_svc_tbl_add(NCSMDS_INFO *in > info->info.svc_install.o_sel_obj = > m_NCS_IPC_GET_SEL_OBJ(&svc_info->q_mbx); > } > > + strcpy(svc_info->adest_details, gl_mds_mcm_cb->adest_details); > svc_info->svc_list_node.key_info = (uint8_t *)&svc_info->svc_hdl; > > ncs_patricia_tree_add(&gl_mds_mcm_cb->svc_list, (NCS_PATRICIA_NODE > *)&svc_info->svc_list_node); > @@ -944,6 +1116,7 @@ uint32_t mds_subtn_tbl_add(MDS_SVC_HDL s > subtn_info->next = svc_info->subtn_info; > svc_info->subtn_info = subtn_info; > > + strcpy(subtn_info->sub_adest_details, svc_info->adest_details); > /* STEP 2.b: Start Subscription Timer */ > > subtn_info->tmr_flag = true; > @@ -1459,6 +1632,9 @@ uint32_t mds_subtn_res_tbl_add(MDS_SVC_H > subtn_res_info->rem_svc_sub_part_ver = svc_sub_part_ver; > subtn_res_info->rem_svc_arch_word = archword_type; > > + get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(svc_hdl), > + subscr_svc_id, adest, > subtn_res_info->sub_adest_details); > + > ncs_patricia_tree_add(&gl_mds_mcm_cb->subtn_results, (NCS_PATRICIA_NODE > *)&subtn_res_info->node); > > if (vdest_id != m_VDEST_ID_FOR_ADEST_ENTRY) { /* Entry to add is > VDEST entry */ > diff --git a/osaf/libs/core/mds/mds_c_sndrcv.c > b/osaf/libs/core/mds/mds_c_sndrcv.c > --- a/osaf/libs/core/mds/mds_c_sndrcv.c > +++ b/osaf/libs/core/mds/mds_c_sndrcv.c > @@ -328,7 +328,7 @@ static uint32_t mcm_pvt_process_svc_bcas > NCSMDS_SCOPE_TYPE scope, > MDS_SEND_PRIORITY_TYPE pri, > uint8_t flag /* For normal=0, > red=1 */ ); > > -static uint32_t mds_mcm_check_intranode(MDS_DEST adest); > +uint32_t mds_mcm_check_intranode(MDS_DEST adest); > > #define MDS_GET_NODE_ID(p) m_MDS_GET_NODE_ID_FROM_ADEST(p) > > @@ -929,6 +929,7 @@ static uint32_t mcm_pvt_normal_snd_proce > MDS_PWE_HDL pwe_hdl = (MDS_PWE_HDL)env_hdl; > MDS_SVC_INFO *svc_cb = NULL; > MDS_SUBSCRIPTION_RESULTS_INFO *tx_send_hdl = NULL; /* Subscription > Result */ > + MDS_SUBSCRIPTION_RESULTS_INFO *log_tx_send_hdl = NULL; /* > Subscription Result */ > > uint32_t status = 0; > > @@ -973,7 +974,7 @@ static uint32_t mcm_pvt_normal_snd_proce > > /* Query one type to get the tx_send_hdl(results) */ > if (NCSCC_RC_SUCCESS != > - mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, > dest_svc_id, dest_vdest_id, dest)) { > + mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, > dest_svc_id, dest_vdest_id, dest, &log_tx_send_hdl)) { > tx_send_hdl = NULL; > } else { > /* Route available, send the data now */ > @@ -1267,6 +1268,7 @@ static uint32_t mcm_msg_cpy_send(uint8_t > } > req.adest = dest; > > + strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details); > m_MDS_LOG_INFO("MDS_SND_RCV: Sending the data to MDTM layer\n"); > m_MDS_LOG_DBG("MDS_SND_RCV : Leaving mcm_msg_cpy_send\n"); > return mds_mdtm_send(&req); > @@ -1318,7 +1320,7 @@ static uint32_t mcm_msg_direct_send_buff > > req.pri = pri; > req.msg_fmt_ver = msg_fmt_ver; > - > + strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details); > m_MDS_LOG_INFO("MDS_SND_RCV: Sending the data to MDTM layer\n"); > > m_MDS_LOG_DBG("MDS_SND_RCV : Leaving mcm_msg_direct_send_buff\n"); > @@ -1492,6 +1494,7 @@ static uint32_t mcm_msg_encode_full_or_f > msg_send.dest_pwe_id = m_MDS_GET_PWE_ID_FROM_SVC_HDL(svc_cb->svc_hdl); > msg_send.dest_vdest_id = dest_vdest_id; > msg_send.src_svc_sub_part_ver = svc_cb->svc_sub_part_ver; > + strcpy(msg_send.sub_adest_details, lcl_subtn_res->sub_adest_details); > > if ((((svc_cb->subtn_info->prev_ver_sub_count > 0)) > && (snd_type == MDS_SENDTYPE_BCAST || snd_type > == MDS_SENDTYPE_RBCAST)) > @@ -1628,6 +1631,7 @@ static uint32_t mds_mcm_process_disc_que > bool time_wait = false; > > MDS_SUBSCRIPTION_RESULTS_INFO *t_send_hdl = NULL; /* Subscription > Result */ > + MDS_SUBSCRIPTION_RESULTS_INFO *log_t_send_hdl = NULL; /* > Subscription Result */ > > m_MDS_LOG_DBG("MDS_SND_RCV :Entering > mds_mcm_process_disc_queue_checks\n"); > > @@ -1694,7 +1698,7 @@ static uint32_t mds_mcm_process_disc_que > > /* Query one type to get the tx_send_hdl(results) */ > if (NCSCC_RC_SUCCESS != > - mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, > dest_svc_id, dest_vdest_id, anchor)) { > + mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, > dest_svc_id, dest_vdest_id, anchor, &log_t_send_hdl)) { > /* m_MDS_LOG_ERR("MDS_SND_RCV: No Route FOUND > from SVC id = %d "); */ > m_MDS_LOG_ERR > ("MDS_SND_RCV:No Route Found from SVC id = > %d to SVC id = %d on ADEST <0x%08x, %u>", > @@ -2208,6 +2212,7 @@ static uint32_t mcm_pvt_red_snd_process_ > uint32_t status = 0; > > MDS_SUBSCRIPTION_RESULTS_INFO *subs_result_hdl = NULL; > + MDS_SUBSCRIPTION_RESULTS_INFO *log_subs_result_hdl = NULL; > V_DEST_RL role_ret = 0; /* Not used, only passed to get the > subscription result ptr */ > > if (to_msg.msg_type == MSG_NCSCONTEXT) { > @@ -2247,7 +2252,7 @@ static uint32_t mcm_pvt_red_snd_process_ > /* Check dest_svc_id, dest_pwe_id, Destination <ADEST, VDEST>, > exists in subscription result table */ > > - if (NCSCC_RC_SUCCESS != > mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, dest_svc_id, dest_vdest_id, > dest)) { > + if (NCSCC_RC_SUCCESS != mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, > dest_svc_id, dest_vdest_id, dest, &log_subs_result_hdl)) { > /* Destination Route Not Found, still some validations required > */ > /* Check in subscriptions whether this exists */ > if (NCSCC_RC_SUCCESS != > @@ -2295,6 +2300,7 @@ static uint32_t mds_mcm_process_disc_que > { > > MDS_SUBSCRIPTION_INFO *sub_info = NULL; > + MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL; > uint32_t disc_rc; > bool time_wait = false; > > @@ -2345,8 +2351,8 @@ static uint32_t mds_mcm_process_disc_que > } > return NCSCC_RC_FAILURE; > } else { > - if (NCSCC_RC_SUCCESS != > (mds_subtn_res_tbl_query_by_adest(svc_cb->svc_hdl, dest_svc_id, > - > dest_vdest_id, anchor))) { > + if (NCSCC_RC_SUCCESS != > (mds_get_subtn_res_tbl_by_adest(svc_cb->svc_hdl, dest_svc_id, > + > dest_vdest_id, anchor, &log_subtn_result_info))) { > m_MDS_LOG_ERR > ("MDS_SND_RCV: Destination Route not found even > after the DISCOVERY Timer timeout\n"); > return NCSCC_RC_FAILURE; > @@ -2864,6 +2870,7 @@ static uint32_t mcm_pvt_process_sndrack_ > MDS_VDEST_ID dest_vdest_id = 0; > > NCSCONTEXT hdl; > + MDS_SUBSCRIPTION_RESULTS_INFO *log_subtn_result_info = NULL; > > MDS_SVC_INFO *svc_cb = NULL; > > @@ -3910,7 +3917,7 @@ static uint32_t mcm_pvt_process_svc_bcas > * NCSCC_RC_FAILURE > * > > ****************************************************************************/ > -static uint32_t mds_mcm_check_intranode(MDS_DEST adest) > +uint32_t mds_mcm_check_intranode(MDS_DEST adest) > { > if (MDS_GET_NODE_ID(adest) == MDS_GET_NODE_ID(m_MDS_GET_ADEST)) > return NCSCC_RC_SUCCESS; > @@ -6162,6 +6169,7 @@ uint32_t mds_await_active_tbl_send(MDS_A > req.dest_vdest_id, adest, &lcl_subtn_res); > req.svc_seq_num = lcl_subtn_res->msg_snd_cnt++; > req.adest = adest; > + strcpy(req.sub_adest_details, lcl_subtn_res->sub_adest_details); > mds_mdtm_send(&req); > mov_ptr = queue; > queue = queue->next_msg; > diff --git a/osaf/libs/core/mds/mds_dt_common.c > b/osaf/libs/core/mds/mds_dt_common.c > --- a/osaf/libs/core/mds/mds_dt_common.c > +++ b/osaf/libs/core/mds/mds_dt_common.c > @@ -17,6 +17,7 @@ > > #include "mds_dt.h" > #include "mds_log.h" > +#include "mds_core.h" > #include "ncssysf_def.h" > #include "ncssysf_tsk.h" > #include "ncssysf_mem.h" > diff --git a/osaf/libs/core/mds/mds_dt_tcp.c b/osaf/libs/core/mds/mds_dt_tcp.c > --- a/osaf/libs/core/mds/mds_dt_tcp.c > +++ b/osaf/libs/core/mds/mds_dt_tcp.c > @@ -17,6 +17,7 @@ > > #include "mds_dt.h" > #include "mds_log.h" > +#include "mds_core.h" > #include "ncssysf_def.h" > #include "ncssysf_tsk.h" > #include "ncssysf_mem.h" > @@ -195,6 +196,8 @@ uint32_t mds_mdtm_init_tcp(NODE_ID nodei > > *mds_tcp_ref = mdtm_pid; > > + get_adest_details(tcp_cb->adest, tcp_cb->adest_details); > + > if (mds_socket_domain == AF_UNIX) { > int servlen = 0; > server_addr_un.sun_family = AF_UNIX; > diff --git a/osaf/libs/core/mds/mds_dt_tipc.c > b/osaf/libs/core/mds/mds_dt_tipc.c > --- a/osaf/libs/core/mds/mds_dt_tipc.c > +++ b/osaf/libs/core/mds/mds_dt_tipc.c > @@ -26,6 +26,7 @@ > */ > #include "mds_dt.h" > #include "mds_log.h" > +#include "mds_core.h" > #include "ncssysf_def.h" > #include "ncssysf_tsk.h" > #include "ncssysf_mem.h" > @@ -111,6 +112,7 @@ typedef struct mdtm_tipc_cb { > void *mdtm_hdle_task; > int hdle_mdtm; > uint64_t adest; > + char adest_details[255]; > > SYSF_MBX tmr_mbx; > int tmr_fd; > @@ -226,6 +228,7 @@ uint32_t mdtm_tipc_init(NODE_ID nodeid, > tipc_cb.adest = ((uint64_t)(nodeid)) << 32; > tipc_cb.adest |= addr.addr.id.ref; > tipc_cb.node_id = nodeid; > + get_adest_details(tipc_cb.adest, tipc_cb.adest_details); > > tipc_node_id = mdtm_tipc_own_node(tipc_cb.BSRsock); /* This gets > the tipc ownaddress */ > > @@ -822,6 +825,7 @@ static uint32_t mdtm_process_discovery_e > MDS_VDEST_ID vdest; > NCS_VDEST_TYPE policy = 0; > MDS_SVC_HDL svc_hdl; > + char adest_details[255]; > > MDS_SVC_PVT_SUB_PART_VER svc_sub_part_ver; > MDS_SVC_ARCHWORD_TYPE archword_type; > @@ -887,6 +891,8 @@ static uint32_t mdtm_process_discovery_e > svc_id, > m_MDS_GET_SVC_ID_FROM_SVC_HDL(svc_hdl), node, discovery_event); > return NCSCC_RC_FAILURE; > } > + > get_subtn_adest_details(m_MDS_GET_PWE_HDL_FROM_SVC_HDL(svc_hdl), > m_MDS_GET_SVC_ID_FROM_SVC_HDL(svc_hdl), > + adest, adest_details); > > if (TIPC_PUBLISHED == discovery_event) { > m_MDS_LOG_NOTIFY > diff --git a/osaf/libs/core/mds/mds_main.c b/osaf/libs/core/mds/mds_main.c > --- a/osaf/libs/core/mds/mds_main.c > +++ b/osaf/libs/core/mds/mds_main.c > @@ -284,6 +284,7 @@ uint32_t mds_lib_req(NCS_LIB_REQ_INFO *r > return NCSCC_RC_FAILURE; > } > gl_mds_mcm_cb->adest = > m_MDS_GET_ADEST_FROM_NODE_ID_AND_PROCESS_ID(node_id, mds_tipc_ref); > + get_adest_details(gl_mds_mcm_cb->adest, > gl_mds_mcm_cb->adest_details); > > /* Initialize logging */ > { > > ------------------------------------------------------------------------------ > _______________________________________________ > Opensaf-devel mailing list > Opensaf-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/opensaf-devel ------------------------------------------------------------------------------ _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel