diff options
author | Max <msuraev@sysmocom.de> | 2017-12-27 19:34:15 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-01-05 10:10:35 +0000 |
commit | dcc193d3a6f2325af74b609f6a28c1ad04588a6a (patch) | |
tree | a27585a8681fbe95e84c61887a7af528a24a72f5 /src/libvlr/vlr.c | |
parent | a263bb215b3e159fed6b6f6a1fd15ce8b8cc3176 (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.c | 21 |
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; } |