aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <zecke@selfish.org>2010-08-05 03:22:24 +0800
committerHolger Hans Peter Freyther <zecke@selfish.org>2010-08-05 06:10:57 +0800
commitf1a168dc2086bca48d920c45171cb6cbff9211fa (patch)
tree38582f26e99ac29a69862a14335405b0060b9c36
parent58ff219c856a4ad4648e4de06f90907d6964a251 (diff)
mgcp: Only use early bind for the BTS socket.
Simplify the code by onlt allowing one way to allocate a socket.
-rw-r--r--openbsc/include/openbsc/mgcp.h1
-rw-r--r--openbsc/src/mgcp/mgcp_protocol.c12
-rw-r--r--openbsc/src/mgcp/mgcp_vty.c24
3 files changed, 12 insertions, 25 deletions
diff --git a/openbsc/include/openbsc/mgcp.h b/openbsc/include/openbsc/mgcp.h
index d1da401ea..81741ac75 100644
--- a/openbsc/include/openbsc/mgcp.h
+++ b/openbsc/include/openbsc/mgcp.h
@@ -91,7 +91,6 @@ struct mgcp_config {
char *audio_name;
int audio_payload;
int audio_loop;
- int early_bind;
int rtp_base_port;
int endp_dscp;
diff --git a/openbsc/src/mgcp/mgcp_protocol.c b/openbsc/src/mgcp/mgcp_protocol.c
index 9bb315a49..8b990221a 100644
--- a/openbsc/src/mgcp/mgcp_protocol.c
+++ b/openbsc/src/mgcp/mgcp_protocol.c
@@ -428,11 +428,8 @@ static struct msgb *handle_create_con(struct mgcp_config *cfg, struct msgb *msg)
/* bind to the port now */
port = rtp_calculate_port(ENDPOINT_NUMBER(endp), cfg->rtp_base_port);
- if (cfg->early_bind) {
- endp->bts_end.local_port = port;
- endp->net_end.local_port = port;
- } else if (mgcp_bind_rtp_port(endp, port) != 0)
- goto error2;
+ endp->bts_end.local_port = port;
+ endp->net_end.local_port = port;
/* assign a local call identifier or fail */
endp->ci = generate_call_id(cfg);
@@ -760,11 +757,6 @@ void mgcp_free_endp(struct mgcp_endpoint *endp)
endp->local_options = NULL;
}
- if (!endp->cfg->early_bind) {
- bsc_unregister_fd(&endp->local_rtp);
- bsc_unregister_fd(&endp->local_rtcp);
- }
-
mgcp_rtp_end_reset(&endp->bts_end);
mgcp_rtp_end_reset(&endp->net_end);
diff --git a/openbsc/src/mgcp/mgcp_vty.c b/openbsc/src/mgcp/mgcp_vty.c
index c109491b1..ffb94d934 100644
--- a/openbsc/src/mgcp/mgcp_vty.c
+++ b/openbsc/src/mgcp/mgcp_vty.c
@@ -56,7 +56,6 @@ static int config_write_mgcp(struct vty *vty)
vty_out(vty, " bts ip %s%s", g_cfg->bts_ip, VTY_NEWLINE);
vty_out(vty, " bind ip %s%s", g_cfg->source_addr, VTY_NEWLINE);
vty_out(vty, " bind port %u%s", g_cfg->source_port, VTY_NEWLINE);
- vty_out(vty, " bind early %u%s", !!g_cfg->early_bind, VTY_NEWLINE);
vty_out(vty, " rtp base %u%s", g_cfg->rtp_base_port, VTY_NEWLINE);
vty_out(vty, " rtp ip-dscp %d%s", g_cfg->endp_dscp, VTY_NEWLINE);
if (g_cfg->audio_payload != -1)
@@ -150,9 +149,8 @@ DEFUN(cfg_mgcp_bind_early,
"bind early (0|1)",
"Bind all RTP ports early")
{
- unsigned int bind = atoi(argv[0]);
- g_cfg->early_bind = bind == 1;
- return CMD_SUCCESS;
+ vty_out(vty, "bind early is deprecated, remove it from the config.\n");
+ return CMD_WARNING;
}
DEFUN(cfg_mgcp_rtp_base_port,
@@ -311,16 +309,14 @@ int mgcp_parse_config(const char *config_file, struct mgcp_config *cfg)
}
/* early bind */
- if (g_cfg->early_bind) {
- for (i = 1; i < g_cfg->number_endpoints; ++i) {
- struct mgcp_endpoint *endp = &g_cfg->endpoints[i];
- int rtp_port;
-
- rtp_port = rtp_calculate_port(ENDPOINT_NUMBER(endp), g_cfg->rtp_base_port);
- if (mgcp_bind_rtp_port(endp, rtp_port) != 0) {
- LOGP(DMGCP, LOGL_FATAL, "Failed to bind: %d\n", rtp_port);
- return -1;
- }
+ for (i = 1; i < g_cfg->number_endpoints; ++i) {
+ struct mgcp_endpoint *endp = &g_cfg->endpoints[i];
+ int rtp_port;
+
+ rtp_port = rtp_calculate_port(ENDPOINT_NUMBER(endp), g_cfg->rtp_base_port);
+ if (mgcp_bind_rtp_port(endp, rtp_port) != 0) {
+ LOGP(DMGCP, LOGL_FATAL, "Failed to bind: %d\n", rtp_port);
+ return -1;
}
}