silence error messages about HANDOVER_END not permitted
The MSC_A_EV_HANDOVER_END exists as parent term event for the msc_ho_fsm, but
it is not actually required as functional event, since all cleanup is handled
in msc_ho_fsm_cleanup().
That's why I never bothered to add the event to msc_a_fsm, but of course that
means we get an error message after each (successful and unsuccessful)
handover, that the MSC_A_EV_HANDOVER_END is not permitted.
Allow the event and ignore it to silence the error message.
Explain in a comment.
Change-Id: Ie8dc0c0a631b7da43111f329562007766a21b134
diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c
index 77dd43d..5137e20 100644
--- a/src/libmsc/msc_a.c
+++ b/src/libmsc/msc_a.c
@@ -646,6 +646,12 @@
msc_ho_start(msc_a, (struct ran_handover_required*)data);
return;
+ case MSC_A_EV_HANDOVER_END:
+ /* Termination event of the msc_ho_fsm. No action needed, it's all done in the msc_ho_fsm cleanup. This
+ * event only exists because osmo_fsm_inst_alloc_child() requires a parent term event; and maybe
+ * interesting for logging. */
+ return;
+
case MSC_A_EV_MO_CLOSE:
case MSC_A_EV_CN_CLOSE:
case MSC_A_EV_UNUSED:
@@ -756,6 +762,10 @@
/* RTP streams cleaned up above */
return;
+ case MSC_A_EV_HANDOVER_END:
+ /* msc_ho_fsm does cleanup. */
+ return;
+
default:
OSMO_ASSERT(false);
}
@@ -921,6 +931,7 @@
| S(MSC_EV_CALL_LEG_TERM)
| S(MSC_MNCC_EV_CALL_ENDED)
| S(MSC_A_EV_HANDOVER_REQUIRED)
+ | S(MSC_A_EV_HANDOVER_END)
,
.out_state_mask = 0
| S(MSC_A_ST_RELEASING)
@@ -935,6 +946,7 @@
| S(MSC_A_EV_UNUSED)
| S(MSC_EV_CALL_LEG_TERM)
| S(MSC_MNCC_EV_CALL_ENDED)
+ | S(MSC_A_EV_HANDOVER_END)
,
.out_state_mask = 0
| S(MSC_A_ST_RELEASED)