osaf/services/saf/clmsv/clms/clms_evt.c | 3 +++ osaf/services/saf/clmsv/clms/clms_evt.h | 1 + osaf/services/saf/clmsv/clms/clms_mds.c | 18 ++++++++++-------- 3 files changed, 14 insertions(+), 8 deletions(-)
diff --git a/osaf/services/saf/clmsv/clms/clms_evt.c b/osaf/services/saf/clmsv/clms/clms_evt.c --- a/osaf/services/saf/clmsv/clms/clms_evt.c +++ b/osaf/services/saf/clmsv/clms/clms_evt.c @@ -1279,6 +1279,9 @@ void clms_process_mbx(SYSF_MBX *mbx) case CLMSV_CLMS_RDA_EVT: proc_rda_evt(msg); break; + case CLMSV_CLMS_CLMNA_DOWN: + proc_mds_node_evt(msg); + break; default: LOG_ER("message type invalid %d", msg->type); break; diff --git a/osaf/services/saf/clmsv/clms/clms_evt.h b/osaf/services/saf/clmsv/clms/clms_evt.h --- a/osaf/services/saf/clmsv/clms/clms_evt.h +++ b/osaf/services/saf/clmsv/clms/clms_evt.h @@ -27,6 +27,7 @@ typedef enum clmsv_clms_evt_type { CLMSV_CLMS_MDS_NODE_EVT, CLMSV_CLMS_RDA_EVT, CLMSV_CLMS_RT_UPDATE, + CLMSV_CLMS_CLMNA_DOWN, CLMSV_CLMS_EVT_MAX, } CLMSV_CLMS_EVT_TYPE; diff --git a/osaf/services/saf/clmsv/clms/clms_mds.c b/osaf/services/saf/clmsv/clms/clms_mds.c --- a/osaf/services/saf/clmsv/clms/clms_mds.c +++ b/osaf/services/saf/clmsv/clms/clms_mds.c @@ -1088,8 +1088,7 @@ static uint32_t clms_mds_svc_event(struc } /* If this evt was sent from CLMA act on this */ - if (info->info.svc_evt.i_svc_id == NCSMDS_SVC_ID_CLMA) { - if (info->info.svc_evt.i_change == NCSMDS_DOWN) { + if (info->info.svc_evt.i_change == NCSMDS_DOWN) { TRACE_8("MDS DOWN for CLMA dest: %" PRIx64 ", node ID: %x, svc_id: %d", info->info.svc_evt.i_dest, info->info.svc_evt.i_node_id, info->info.svc_evt.i_svc_id); @@ -1100,16 +1099,20 @@ static uint32_t clms_mds_svc_event(struc goto done; } - evt->type = CLMSV_CLMS_CLMA_DOWN; - /** Initialize the Event Header **/ evt->cb_hdl = 0; evt->fr_node_id = info->info.svc_evt.i_node_id; evt->fr_dest = info->info.svc_evt.i_dest; - /** Initialize the MDS portion of the header **/ - evt->info.mds_info.node_id = info->info.svc_evt.i_node_id; - evt->info.mds_info.mds_dest_id = info->info.svc_evt.i_dest; + if (info->info.svc_evt.i_svc_id == NCSMDS_SVC_ID_CLMA) { + evt->type = CLMSV_CLMS_CLMA_DOWN; + evt->info.mds_info.node_id = info->info.svc_evt.i_node_id; + evt->info.mds_info.mds_dest_id = info->info.svc_evt.i_dest; + } else if (info->info.svc_evt.i_svc_id == NCSMDS_SVC_ID_CLMNA) { + evt->type = CLMSV_CLMS_CLMNA_DOWN; + evt->info.node_mds_info.node_id = info->info.svc_evt.i_node_id; + evt->info.node_mds_info.nodeup = false; + } /* Push the event and we are done */ if (m_NCS_IPC_SEND(&clms_cb->mbx, evt, NCS_IPC_PRIORITY_HIGH) != NCSCC_RC_SUCCESS) { @@ -1118,7 +1121,6 @@ static uint32_t clms_mds_svc_event(struc rc = NCSCC_RC_FAILURE; goto done; } - } } done: TRACE_LEAVE(); ------------------------------------------------------------------------------ Sponsored by Intel(R) XDK Develop, test and display web and hybrid apps with a single code base. Download it for free now! http://pubads.g.doubleclick.net/gampad/clk?id=111408631&iu=/4140/ostg.clktrk _______________________________________________ Opensaf-devel mailing list Opensaf-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/opensaf-devel