diff options
author | Alexander Couzens <lynxis@fe80.eu> | 2020-12-06 03:16:11 +0100 |
---|---|---|
committer | lynxis lazus <lynxis@fe80.eu> | 2020-12-15 11:46:45 +0000 |
commit | 4755879fbee0a0af989d1b45d0eed685b664fcdb (patch) | |
tree | 3d2e79b40e7e8bd29dc4c613235a03b17e720afb /src/gb | |
parent | ebcbd726ee562e186fdd8d95abb7cfe706678fe0 (diff) |
gprs_ns2: add gprs_ns2_free_nsvcs() to free all NS-VC of a NSE
Change-Id: I909443b540dbf75146297f1d7f94940690be6c0d
Diffstat (limited to 'src/gb')
-rw-r--r-- | src/gb/gprs_ns2.c | 22 | ||||
-rw-r--r-- | src/gb/libosmogb.map | 1 |
2 files changed, 17 insertions, 6 deletions
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c index bd69acf6..21c69cbd 100644 --- a/src/gb/gprs_ns2.c +++ b/src/gb/gprs_ns2.c @@ -562,6 +562,21 @@ void gprs_ns2_free_nsvc(struct gprs_ns2_vc *nsvc) talloc_free(nsvc); } +/*! Destroy/release all NS-VC of given NSE + * \param[in] nse NSE + */ +void gprs_ns2_free_nsvcs(struct gprs_ns2_nse *nse) +{ + struct gprs_ns2_vc *nsvc, *tmp; + + if (!nse) + return; + + llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { + gprs_ns2_free_nsvc(nsvc); + } +} + /*! Allocate a message buffer for use with the NS2 stack. */ struct msgb *gprs_ns2_msgb_alloc(void) { @@ -722,15 +737,10 @@ uint16_t gprs_ns2_nse_nsei(struct gprs_ns2_nse *nse) * \param[in] nse NS Entity to destroy */ void gprs_ns2_free_nse(struct gprs_ns2_nse *nse) { - struct gprs_ns2_vc *nsvc, *tmp; - if (!nse) return; - llist_for_each_entry_safe(nsvc, tmp, &nse->nsvc, list) { - gprs_ns2_free_nsvc(nsvc); - } - + gprs_ns2_free_nsvcs(nse); ns2_prim_status_ind(nse, NULL, 0, NS_AFF_CAUSE_FAILURE); llist_del(&nse->list); diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index 7cc1cc80..d4114dfa 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -120,6 +120,7 @@ gprs_ns2_free_binds; gprs_ns2_free_nse; gprs_ns2_free_nses; gprs_ns2_free_nsvc; +gprs_ns2_free_nsvcs; gprs_ns2_frgre_bind; gprs_ns2_fr_bind; gprs_ns2_fr_bind_netif; |