diff options
Diffstat (limited to 'src/gb/gprs_ns2.c')
-rw-r--r-- | src/gb/gprs_ns2.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index 9302a16f..bc4db53e 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -1269,6 +1269,7 @@ void gprs_ns2_start_alive_all_nsvcs(struct gprs_ns2_nse *nse) void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind) { struct gprs_ns2_vc *nsvc, *tmp; + struct gprs_ns2_nse *nse; if (!bind) return; @@ -1276,6 +1277,12 @@ void gprs_ns2_free_bind(struct gprs_ns2_vc_bind *bind) gprs_ns2_free_nsvc(nsvc); } + if (gprs_ns2_is_ip_bind(bind)) { + llist_for_each_entry(nse, &bind->nsi->nse, list) { + gprs_ns2_sns_del_bind(nse, bind); + } + } + if (bind->driver->free_bind) bind->driver->free_bind(bind); |