diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-01-20 18:06:08 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2020-01-21 10:53:34 +0100 |
commit | 14fea235274dc64db93c17b592c9de5418d7eb9b (patch) | |
tree | f3b7ad47c19d4d000c79b16ef0dda5318f3067c9 | |
parent | 82c7a3c36c7a3ed282b6684ad71d76ee8e0125dd (diff) |
sccp: Disarm inactivity timer upon T(iar) active->disconn_pend
All other code paths moving to state DISCONN_PEND seem to stop them, and
anyway that state doesn't permit event SCOC_E_T_IAS_EXP:
DLSCCP DEBUG SCCP-SCOC(0){ACTIVE}: Received Event T(iar)_expired (sccp_scoc.c:346)
...
DLSCCP DEBUG SCCP-SCOC(0){ACTIVE}: state_chg to DISCONN_PEND (sccp_scoc.c:1095)
...
DLSCCP DEBUG SCCP-SCOC(0){DISCONN_PEND}: Received Event T(ias)_expired (sccp_scoc.c:339)
DLSCCP ERROR SCCP-SCOC(0){DISCONN_PEND}: Event T(ias)_expired not permitted (sccp_scoc.c:339)
Change-Id: Ieb02dedba312ab76890e943934ce6a1e2fe61f74
-rw-r--r-- | src/sccp_scoc.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sccp_scoc.c b/src/sccp_scoc.c index d2fb8d1..015850e 100644 --- a/src/sccp_scoc.c +++ b/src/sccp_scoc.c @@ -1081,6 +1081,8 @@ static void scoc_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data osmo_fsm_inst_state_chg(fi, S_IDLE, 0, 0); break; case SCOC_E_T_IAR_EXP: + /* stop inact timers */ + conn_stop_inact_timers(conn); xua = xua_msg_alloc(); xua_msg_add_u32(xua, SUA_IEI_CAUSE, SUA_CAUSE_T_RELEASE | SCCP_RELEASE_CAUSE_EXPIRATION_INACTIVE); @@ -1091,6 +1093,7 @@ static void scoc_fsm_active(struct osmo_fsm_inst *fi, uint32_t event, void *data talloc_free(xua); /* Send RLSD to peer */ xua_gen_relre_and_send(conn, SCCP_RELEASE_CAUSE_EXPIRATION_INACTIVE, NULL); + /* start release timer */ conn_start_rel_timer(conn); osmo_fsm_inst_state_chg(fi, S_DISCONN_PEND, 0, 0); break; |