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, [email protected] 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/opensaf-devel
------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel