aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <nhofmeyr@sysmocom.de>2017-07-22 17:42:29 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2017-07-25 15:15:22 +0200
commitc5aed8c10efd97261e0463f128964f5e76abd8dc (patch)
tree69ebceb709a40acd357c1f0869998b8fa01b771d
parent5b2283ba68155b82bdfe93ad675b0d35dc9d47d3 (diff)
fix release upon IMSI Detach
In case of an IMSI Detach, we don't have a conn_fsm, yet we still need to send release messages. Hence directly release the conn in msc_subscr_conn_close() when there is no conn_fsm present. Move the conn release actions from the conn_fsm cleanup function to new function msc_subscr_conn_release_all(). From the FSM cleanup, call msc_subscr_conn_close(), and invoke msc_subscr_conn_release_all() from there. Document msc_subscr_conn_close() behavior. Change-Id: Ied6981099605ad803f8ffed38f23ed8203a97727
-rw-r--r--src/libmsc/subscr_conn.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/libmsc/subscr_conn.c b/src/libmsc/subscr_conn.c
index 2bba1a826..cdeeae903 100644
--- a/src/libmsc/subscr_conn.c
+++ b/src/libmsc/subscr_conn.c
@@ -225,9 +225,9 @@ static void subscr_conn_fsm_cleanup(struct osmo_fsm_inst *fi,
if (!conn)
return;
-
conn->conn_fsm = NULL;
msc_subscr_conn_close(conn, cause);
+ msc_subscr_conn_put(conn);
}
int subscr_conn_fsm_timeout(struct osmo_fsm_inst *fi)