aboutsummaryrefslogtreecommitdiffstats
path: root/src/libmsc/subscr_conn.c
diff options
context:
space:
mode:
authorStefan Sperling <ssperling@sysmocom.de>2018-05-15 14:48:04 +0200
committerStefan Sperling <ssperling@sysmocom.de>2018-05-15 18:46:25 +0200
commit60af0c888fb69b8f8dc75e41a1bf96309b6f0ea6 (patch)
tree169fcfd9ac760635e217abf5def8e44289fa313d /src/libmsc/subscr_conn.c
parentcb8c75bba030c7ab9f2e49b2f40292a1738f3220 (diff)
add a test; set lu expiry timestampstsp/lu_expire
Diffstat (limited to 'src/libmsc/subscr_conn.c')
-rw-r--r--src/libmsc/subscr_conn.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/libmsc/subscr_conn.c b/src/libmsc/subscr_conn.c
index 1b3b24042..50d7be649 100644
--- a/src/libmsc/subscr_conn.c
+++ b/src/libmsc/subscr_conn.c
@@ -202,6 +202,11 @@ static bool subscr_conn_fsm_has_active_transactions(struct osmo_fsm_inst *fi)
static void subscr_conn_fsm_accepted_enter(struct osmo_fsm_inst *fi, uint32_t prev_state)
{
+ struct gsm_subscriber_connection *conn = fi->priv;
+
+ /* Stop location update expiry for this subscriber. */
+ conn->vsub->expire_lu = GSM_SUBSCRIBER_NO_EXPIRATION;
+
if (!subscr_conn_fsm_has_active_transactions(fi))
osmo_fsm_inst_dispatch(fi, SUBSCR_CONN_E_UNUSED, NULL);
}
@@ -278,6 +283,11 @@ static void subscr_conn_fsm_releasing_onenter(struct osmo_fsm_inst *fi, uint32_t
/* Cancel all VLR FSMs, if any */
vlr_subscr_cancel_attach_fsm(conn->vsub, OSMO_FSM_TERM_ERROR, GSM48_REJECT_CONGESTION);
+ if (conn->vsub) {
+ /* Restart LU expiry for this subscriber. */
+ vlr_subscr_enable_expire_lu(conn->vsub);
+ }
+
/* If we're closing in a middle of a trans, we need to clean up */
trans_conn_closed(conn);