From 0a437be0e3705ade52085e0f8a91c123b5399ae6 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Fri, 10 May 2019 15:55:52 +0200 Subject: [PATCH] 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 --- src/libmsc/msc_a.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libmsc/msc_a.c b/src/libmsc/msc_a.c index 77dd43df6..5137e200b 100644 --- a/src/libmsc/msc_a.c +++ b/src/libmsc/msc_a.c @@ -646,6 +646,12 @@ static void msc_a_fsm_communicating(struct osmo_fsm_inst *fi, uint32_t event, vo 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 @@ static void msc_a_fsm_releasing(struct osmo_fsm_inst *fi, uint32_t event, void * /* 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 @@ static const struct osmo_fsm_state msc_a_fsm_states[] = { | 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 @@ static const struct osmo_fsm_state msc_a_fsm_states[] = { | 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)