From ff9e09b2bc3fafbd752907fe93a2ed066d8e35cf Mon Sep 17 00:00:00 2001 From: Holger Hans Peter Freyther Date: Sun, 18 Apr 2010 02:14:45 +0800 Subject: nat: Return the newest SCCP connection... In case we have a stale SCCP connection with an Endpoint that we want to reassign...use the newest (last) occurence of that as it is most likely the one we want to handle. --- openbsc/src/nat/bsc_mgcp_utils.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/openbsc/src/nat/bsc_mgcp_utils.c b/openbsc/src/nat/bsc_mgcp_utils.c index 30a5a30f7..ab830e6e5 100644 --- a/openbsc/src/nat/bsc_mgcp_utils.c +++ b/openbsc/src/nat/bsc_mgcp_utils.c @@ -94,6 +94,7 @@ void bsc_mgcp_free_endpoints(struct bsc_nat *nat) struct bsc_connection *bsc_mgcp_find_con(struct bsc_nat *nat, int endpoint) { + struct bsc_connection *bsc = NULL; struct sccp_connections *sccp; llist_for_each_entry(sccp, &nat->sccp_connections, list_entry) { @@ -102,9 +103,12 @@ struct bsc_connection *bsc_mgcp_find_con(struct bsc_nat *nat, int endpoint) if (mgcp_timeslot_to_endpoint(0, sccp->msc_timeslot) != endpoint) continue; - return sccp->bsc; + bsc = sccp->bsc; } + if (bsc) + return bsc; + LOGP(DMGCP, LOGL_ERROR, "Failed to find the connection.\n"); return NULL; } -- cgit v1.2.3