fix lchan_rtp_fsm: missing event handling

Release and Rollback events are allowed but unhandled in states
WAIT_MGW_CONFIGURED and ROLLBACK, and hence would result in an assertion. Add
handling in these states.

Change-Id: Iab233c592384902098644eee27bb8445fde3aa6f
This commit is contained in:
Neels Hofmeyr 2018-08-21 01:53:18 +02:00 committed by Harald Welte
parent dcbcbad374
commit 5f0a63d678
1 changed files with 13 additions and 0 deletions

View File

@ -467,6 +467,14 @@ static void lchan_rtp_fsm_wait_mgw_endpoint_configured(struct osmo_fsm_inst *fi,
lchan_rtp_fail("Error while redirecting the MGW to the lchan's RTP port");
return;
case LCHAN_RTP_EV_ROLLBACK:
lchan_rtp_fsm_state_chg(LCHAN_RTP_ST_ROLLBACK);
return;
case LCHAN_RTP_EV_RELEASE:
osmo_fsm_inst_term(fi, OSMO_FSM_TERM_REGULAR, 0);
return;
default:
OSMO_ASSERT(false);
}
@ -533,6 +541,11 @@ static void lchan_rtp_fsm_rollback(struct osmo_fsm_inst *fi, uint32_t event, voi
osmo_fsm_inst_term(fi, OSMO_FSM_TERM_ERROR, 0);
return;
case LCHAN_RTP_EV_RELEASE:
case LCHAN_RTP_EV_ROLLBACK:
/* Already rolling back, ignore. */
return;
default:
OSMO_ASSERT(false);
}