diff options
-rw-r--r-- | src/fsm.c | 11 |
1 files changed, 11 insertions, 0 deletions
@@ -256,6 +256,17 @@ int osmo_fsm_register(struct osmo_fsm *fsm) return -EEXIST; if (fsm->event_names == NULL) LOGP(DLGLOBAL, LOGL_ERROR, "FSM '%s' has no event names! Please fix!\n", fsm->name); + + if (fsm->allstate_action && !fsm->allstate_event_mask) { + LOGP(DLGLOBAL, LOGL_ERROR, "FSM '%s' has allstate_action but no allstate_event_mask\n", + fsm->name); + } + + if (!fsm->allstate_action && fsm->allstate_event_mask) { + LOGP(DLGLOBAL, LOGL_ERROR, "FSM '%s' has allstate_event_mask but no allstate_action\n", + fsm->name); + } + llist_add_tail(&fsm->list, &osmo_g_fsms); INIT_LLIST_HEAD(&fsm->instances); |