aboutsummaryrefslogtreecommitdiffstats
path: root/src/gb/gprs_ns2.c
diff options
context:
space:
mode:
authorAlexander Couzens <lynxis@fe80.eu>2021-02-03 18:25:27 +0100
committerlaforge <laforge@osmocom.org>2021-02-09 15:42:01 +0000
commitbe7cecc7532acfc91d88d0a3f795d28377e64b10 (patch)
tree405e3df356f903a838871c9dc348d877b5d2d26c /src/gb/gprs_ns2.c
parent9811f498d46dcea5c44b09b827a0bf5749e4345c (diff)
gprs_ns2_sns: rework tracking of NS-VC unblocked/alive state
The SNS must know when all NS-VC have failed. Further more there might be a corner case when the SNS configuration succeeds but no NS-VC comes up afterwards. Related: OS#5355 Change-Id: Ie72da9adeefe0c2850d49a9208b2d0a4556f9101
Diffstat (limited to 'src/gb/gprs_ns2.c')
-rw-r--r--src/gb/gprs_ns2.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index de27fb40..ca47934e 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -577,7 +577,7 @@ void gprs_ns2_free_nsvc(struct gprs_ns2_vc *nsvc)
ns2_nse_notify_unblocked(nsvc, false);
/* check if sns is using this VC */
- ns2_sns_free_nsvc(nsvc);
+ ns2_sns_replace_nsvc(nsvc);
osmo_fsm_inst_term(nsvc->fi, OSMO_FSM_TERM_REQUEST, NULL);
/* let the driver/bind clean up it's internal state */
@@ -1175,6 +1175,7 @@ void ns2_nse_notify_unblocked(struct gprs_ns2_vc *nsvc, bool unblocked)
{
struct gprs_ns2_nse *nse = nsvc->nse;
+ ns2_sns_notify_alive(nse, nsvc, unblocked);
ns2_nse_data_sum(nse);
if (unblocked == nse->alive)