aboutsummaryrefslogtreecommitdiffstats
path: root/src/mgcp_ss7.c
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2011-09-14 19:50:00 +0200
committerHolger Hans Peter Freyther <zecke@selfish.org>2011-09-14 22:32:59 +0200
commit040c6bcb25f24b73839111dbce3a7114e7c59bf6 (patch)
tree0e62c747d7139fe6459244ec6aeb870acf789c5a /src/mgcp_ss7.c
parentfa15805e81de8fa01037c01db98e9aff3b4fa475 (diff)
mgcp: Reset endpoints via the trunk config instead of all of them
This change is coming from OpenBSC and was adjusted to mgcp_ss7
Diffstat (limited to 'src/mgcp_ss7.c')
-rw-r--r--src/mgcp_ss7.c22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/mgcp_ss7.c b/src/mgcp_ss7.c
index 745f312..9a1b0b6 100644
--- a/src/mgcp_ss7.c
+++ b/src/mgcp_ss7.c
@@ -59,6 +59,7 @@ static int exit_on_failure = 0;
extern struct mgcp_config *g_cfg;
+static void mgcp_ss7_reset(struct mgcp_trunk_config *tcfg);
static void mgcp_ss7_endp_free(struct mgcp_endpoint *endp);
@@ -649,9 +650,9 @@ static void mgcp_ss7_endp_free(struct mgcp_endpoint *endp)
mgcp_ss7_exec(endp, MGCP_SS7_DELETE, 0);
}
-static int reset_cb(struct mgcp_config *cfg)
+static int reset_cb(struct mgcp_trunk_config *trunk)
{
- mgcp_ss7_reset((struct mgcp_ss7 *) cfg->data);
+ mgcp_ss7_reset(trunk);
return 0;
}
@@ -770,21 +771,14 @@ static void free_trunk(struct mgcp_trunk_config *trunk)
}
}
-void mgcp_ss7_reset(struct mgcp_ss7 *mgcp)
+static void mgcp_ss7_reset(struct mgcp_trunk_config *tcfg)
{
- struct mgcp_trunk_config *trunk;
-
- if (!mgcp)
- return;
-
- LOGP(DMGCP, LOGL_INFO, "Resetting all endpoints.\n");
+ LOGP(DMGCP, LOGL_INFO, "Resetting endpoint on trunk type %s %s/%d\n",
+ tcfg->trunk_type == MGCP_TRUNK_VIRTUAL ? "virtual" : "e1",
+ tcfg->virtual_domain, tcfg->trunk_nr);
/* free UniPorte and MGCP data */
-
- llist_for_each_entry(trunk, &mgcp->cfg->vtrunks, entry)
- free_trunk(trunk);
- llist_for_each_entry(trunk, &mgcp->cfg->trunks, entry)
- free_trunk(trunk);
+ free_trunk(tcfg);
}
static void print_help()