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

Reply via email to