gprs_ns2: add gprs_ns2_free_binds() to free all binds
Allow users to clean up all binds (e.g. the PCU).
Change-Id: Ic8f6f8aca10da23a18fab8870be7806065a34b47
diff --git a/src/gb/gprs_ns2.c b/src/gb/gprs_ns2.c
index 58304cd..e3fc078 100644
--- a/src/gb/gprs_ns2.c
+++ b/src/gb/gprs_ns2.c
@@ -997,7 +997,6 @@
* \param[in] nsi NS instance to destroy */
void gprs_ns2_free(struct gprs_ns2_inst *nsi)
{
- struct gprs_ns2_vc_bind *bind, *tbind;
struct gprs_ns2_nse *nse, *ntmp;
if (!nsi)
@@ -1007,9 +1006,7 @@
gprs_ns2_free_nse(nse);
}
- llist_for_each_entry_safe(bind, tbind, &nsi->binding, list) {
- gprs_ns2_free_bind(bind);
- }
+ gprs_ns2_free_binds(nsi);
talloc_free(nsi);
}
@@ -1067,4 +1064,13 @@
llist_del(&bind->list);
talloc_free(bind);
}
+
+void gprs_ns2_free_binds(struct gprs_ns2_inst *nsi)
+{
+ struct gprs_ns2_vc_bind *bind, *tbind;
+
+ llist_for_each_entry_safe(bind, tbind, &nsi->binding, list) {
+ gprs_ns2_free_bind(bind);
+ }
+}
/*! @} */
diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map
index 3d1d5d6..d23d263 100644
--- a/src/gb/libosmogb.map
+++ b/src/gb/libosmogb.map
@@ -79,6 +79,7 @@
gprs_ns2_find_vc_by_sockaddr;
gprs_ns2_free;
gprs_ns2_free_bind;
+gprs_ns2_free_binds;
gprs_ns2_free_nse;
gprs_ns2_free_nsvc;
gprs_ns2_frgre_bind;