Skip to content

Changes

Summary

  1. change back dispatch ordering in map_rua_init_action() (details)
Commit e3b2f4500c5dc56b5a59e87828eee3f5d4f7e48d by nhofmeyr
change back dispatch ordering in map_rua_init_action()

Before patch I3e1ad7a2aa71674a22a27c31512600f2de139032,
the order was:

        case MAP_RUA_EV_RX_CONNECT:
state-chg -->  map_rua_fsm_state_chg(MAP_RUA_ST_CONNECTED);
dispatch  -->  map_sccp_dispatch(map, MAP_SCCP_EV_TX_DATA_REQUEST, ranap_msg);
                return;

From that patch on, the order is:

        case MAP_RUA_EV_RX_CONNECT:
dispatch  -->  handle_rx_rua(fi, ranap_msg);
state-chg -->  map_rua_fsm_state_chg(MAP_RUA_ST_CONNECTED);
                return;

The ordering of event dispatching and state changing is a delicate matter,
because event dispatching might result in an fsm deallocation, especially on
corner case errors. Attempting to modify the state after that may crash.

TODO: insert actual proven reason for this patch here.

TODO: explain why the same ordering one 'case' below is not a problem.

Change-Id: Ie277c46d153bc12dc28a914c241392cdf5ec0aa4
The file was modified src/osmo-hnbgw/context_map_rua.c