From c62a1bf4d53edec94b0db05da717d24438824357 Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Tue, 2 Jul 2013 09:10:11 +0200 Subject: libosmogb: Add function to close NS instance without destroying it --- src/gb/gprs_ns.c | 19 ++++++++++++------- src/gb/libosmogb.map | 1 + 2 files changed, 13 insertions(+), 7 deletions(-) (limited to 'src/gb') diff --git a/src/gb/gprs_ns.c b/src/gb/gprs_ns.c index ef937d9e..5620b3a7 100644 --- a/src/gb/gprs_ns.c +++ b/src/gb/gprs_ns.c @@ -917,13 +917,7 @@ struct gprs_ns_inst *gprs_ns_instantiate(gprs_ns_cb_t *cb, void *ctx) return nsi; } -/*! \brief Destroy an entire NS instance - * \param nsi gprs_ns_inst that is to be destroyed - * - * This function releases all resources associated with the - * NS-instance. - */ -void gprs_ns_destroy(struct gprs_ns_inst *nsi) +void gprs_ns_close(struct gprs_ns_inst *nsi) { struct gprs_nsvc *nsvc, *nsvc2; @@ -935,8 +929,19 @@ void gprs_ns_destroy(struct gprs_ns_inst *nsi) if (nsi->nsip.fd.data) { close(nsi->nsip.fd.fd); osmo_fd_unregister(&nsi->nsip.fd); + nsi->nsip.fd.data = NULL; } +} +/*! \brief Destroy an entire NS instance + * \param nsi gprs_ns_inst that is to be destroyed + * + * This function releases all resources associated with the + * NS-instance. + */ +void gprs_ns_destroy(struct gprs_ns_inst *nsi) +{ + gprs_ns_close(nsi); /* free the NSI */ talloc_free(nsi); } diff --git a/src/gb/libosmogb.map b/src/gb/libosmogb.map index d65819b4..7af085c5 100644 --- a/src/gb/libosmogb.map +++ b/src/gb/libosmogb.map @@ -38,6 +38,7 @@ bssgp_nsi; gprs_ns_cause_str; gprs_ns_destroy; +gprs_ns_close; gprs_ns_frgre_listen; gprs_ns_frgre_sendmsg; gprs_ns_instantiate; -- cgit v1.2.3