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