diff options
-rw-r--r-- | openbsc/include/openbsc/bsc_nat.h | 1 | ||||
-rw-r--r-- | openbsc/src/nat/bsc_mgcp_utils.c | 10 | ||||
-rw-r--r-- | openbsc/src/nat/bsc_nat.c | 1 | ||||
-rw-r--r-- | openbsc/tests/bsc-nat/Makefile.am | 2 |
4 files changed, 14 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/bsc_nat.h b/openbsc/include/openbsc/bsc_nat.h index 835a2ae88..a5d3b1c79 100644 --- a/openbsc/include/openbsc/bsc_nat.h +++ b/openbsc/include/openbsc/bsc_nat.h @@ -179,5 +179,6 @@ struct sccp_connections *patch_sccp_src_ref_to_msc(struct msgb *, struct bsc_nat int bsc_write_mgcp(struct bsc_connection *bsc, const u_int8_t *data, unsigned int length); int bsc_mgcp_assign(struct sccp_connections *, struct msgb *msg); void bsc_mgcp_clear(struct sccp_connections *); +void bsc_mgcp_free_endpoints(struct bsc_nat *nat); #endif diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c index 55dad380a..38f1abfab 100644 --- a/openbsc/src/nat/bsc_mgcp_utils.c +++ b/openbsc/src/nat/bsc_mgcp_utils.c @@ -23,6 +23,8 @@ #include <openbsc/gsm_data.h> #include <openbsc/bssap.h> #include <openbsc/debug.h> +#include <openbsc/mgcp.h> +#include <openbsc/mgcp_internal.h> #include <netinet/in.h> #include <arpa/inet.h> @@ -64,3 +66,11 @@ void bsc_mgcp_clear(struct sccp_connections *con) con->msc_timeslot = -1; con->bsc_timeslot = -1; } + +void bsc_mgcp_free_endpoints(struct bsc_nat *nat) +{ + int i; + + for (i = 1; i < nat->mgcp_cfg->number_endpoints; ++i) + mgcp_free_endp(&nat->mgcp_cfg->endpoints[i]); +} diff --git a/openbsc/src/nat/bsc_nat.c b/openbsc/src/nat/bsc_nat.c index b23c3954f..b2fc2c7c9 100644 --- a/openbsc/src/nat/bsc_nat.c +++ b/openbsc/src/nat/bsc_nat.c @@ -304,6 +304,7 @@ static void msc_connection_was_lost(struct bsc_msc_connection *con) llist_for_each_entry_safe(bsc, tmp, &nat->bsc_connections, list_entry) remove_bsc_connection(bsc); + bsc_mgcp_free_endpoints(nat); bsc_msc_schedule_connect(con); } diff --git a/openbsc/tests/bsc-nat/Makefile.am b/openbsc/tests/bsc-nat/Makefile.am index 80fb0046c..5a066a491 100644 --- a/openbsc/tests/bsc-nat/Makefile.am +++ b/openbsc/tests/bsc-nat/Makefile.am @@ -10,6 +10,8 @@ bsc_nat_test_SOURCES = bsc_nat_test.c \ $(top_srcdir)/src/nat/bsc_sccp.c \ $(top_srcdir)/src/nat/bsc_nat_utils.c \ $(top_srcdir)/src/nat/bsc_mgcp_utils.c \ + $(top_srcdir)/src/mgcp/mgcp_protocol.c \ + $(top_srcdir)/src/mgcp/mgcp_network.c \ $(top_srcdir)/src/bssap.c bsc_nat_test_LDADD = $(top_builddir)/src/libbsc.a $(top_builddir)/src/libsccp.a $(LIBOSMOCORE_LIBS) |