aboutsummaryrefslogtreecommitdiffstats
path: root/src/libvlr/vlr.c
diff options
context:
space:
mode:
authorMax <msuraev@sysmocom.de>2017-12-27 19:34:15 +0100
committerHarald Welte <laforge@gnumonks.org>2018-01-05 10:10:35 +0000
commitdcc193d3a6f2325af74b609f6a28c1ad04588a6a (patch)
treea27585a8681fbe95e84c61887a7af528a24a72f5 /src/libvlr/vlr.c
parenta263bb215b3e159fed6b6f6a1fd15ce8b8cc3176 (diff)
Add control command to expire subscriber
It's equivalent of existing vty command: common part is extracted into shared helper function. Change-Id: I267886b7c79ed6d9c2f34a2e60d2972b7f4f4036
Diffstat (limited to 'src/libvlr/vlr.c')
-rw-r--r--src/libvlr/vlr.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/libvlr/vlr.c b/src/libvlr/vlr.c
index 73c3f1329..f57df8e75 100644
--- a/src/libvlr/vlr.c
+++ b/src/libvlr/vlr.c
@@ -948,17 +948,28 @@ int vlr_subscr_rx_tmsi_reall_compl(struct vlr_subscr *vsub)
}
}
+bool vlr_subscr_expire(struct vlr_subscr *vsub)
+{
+ if (vsub->lu_complete) {
+ vsub->lu_complete = false;
+ vlr_subscr_put(vsub);
+
+ return true;
+ }
+
+ return false;
+}
+
int vlr_subscr_rx_imsi_detach(struct vlr_subscr *vsub)
{
/* paranoia: should any LU or PARQ FSMs still be running, stop them. */
vlr_subscr_cancel(vsub, GMM_CAUSE_IMPL_DETACHED);
vsub->imsi_detached_flag = true;
- if (vsub->lu_complete) {
- vsub->lu_complete = false;
- /* balancing the get from vlr_lu_compl_fsm_success() */
- vlr_subscr_put(vsub);
- }
+
+ /* balancing the get from vlr_lu_compl_fsm_success() */
+ vlr_subscr_expire(vsub);
+
return 0;
}