summaryrefslogtreecommitdiff
path: root/main/udptl.c
diff options
context:
space:
mode:
authorRichard Mudgett <rmudgett@digium.com>2013-12-19 17:13:53 +0000
committerRichard Mudgett <rmudgett@digium.com>2013-12-19 17:13:53 +0000
commit3ccd5dee18dfbd64b01cba68790721680477df19 (patch)
tree00e9575547264fcdc6149a836bf317959dd982fa /main/udptl.c
parentc061f634da53715c0aa17a450c1177a14fdf4713 (diff)
udptl: Dead code elimination. ast_udptl_bridge was not used.
Removing dead code starting with ast_udptl_bridge() eliminated the code in this change. Note: This code has actually been dead since Asterisk v1.4 when it was first put in. Review: https://reviewboard.asterisk.org/r/3079/ ........ Merged revisions 404354 from http://svn.asterisk.org/svn/asterisk/branches/12 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main/udptl.c')
-rw-r--r--main/udptl.c160
1 files changed, 0 insertions, 160 deletions
diff --git a/main/udptl.c b/main/udptl.c
index fa9171742..dac350e3b 100644
--- a/main/udptl.c
+++ b/main/udptl.c
@@ -218,8 +218,6 @@ struct ast_udptl {
udptl_fec_rx_buffer_t rx[UDPTL_BUF_MASK + 1];
};
-static AST_RWLIST_HEAD_STATIC(protos, ast_udptl_protocol);
-
struct udptl_global_options {
unsigned int start; /*< The UDPTL start port */
unsigned int end; /*< The UDPTL end port */
@@ -1186,164 +1184,6 @@ int ast_udptl_write(struct ast_udptl *s, struct ast_frame *f)
return 0;
}
-void ast_udptl_proto_unregister(struct ast_udptl_protocol *proto)
-{
- AST_RWLIST_WRLOCK(&protos);
- AST_RWLIST_REMOVE(&protos, proto, list);
- AST_RWLIST_UNLOCK(&protos);
-}
-
-int ast_udptl_proto_register(struct ast_udptl_protocol *proto)
-{
- struct ast_udptl_protocol *cur;
-
- AST_RWLIST_WRLOCK(&protos);
- AST_RWLIST_TRAVERSE(&protos, cur, list) {
- if (cur->type == proto->type) {
- ast_log(LOG_WARNING, "Tried to register same protocol '%s' twice\n", cur->type);
- AST_RWLIST_UNLOCK(&protos);
- return -1;
- }
- }
- AST_RWLIST_INSERT_TAIL(&protos, proto, list);
- AST_RWLIST_UNLOCK(&protos);
- return 0;
-}
-
-static struct ast_udptl_protocol *get_proto(struct ast_channel *chan)
-{
- struct ast_udptl_protocol *cur = NULL;
-
- AST_RWLIST_RDLOCK(&protos);
- AST_RWLIST_TRAVERSE(&protos, cur, list) {
- if (cur->type == ast_channel_tech(chan)->type)
- break;
- }
- AST_RWLIST_UNLOCK(&protos);
-
- return cur;
-}
-
-int ast_udptl_bridge(struct ast_channel *c0, struct ast_channel *c1, int flags, struct ast_frame **fo, struct ast_channel **rc)
-{
- struct ast_frame *f;
- struct ast_channel *who;
- struct ast_channel *cs[3];
- struct ast_udptl *p0;
- struct ast_udptl *p1;
- struct ast_udptl_protocol *pr0;
- struct ast_udptl_protocol *pr1;
- struct ast_sockaddr ac0;
- struct ast_sockaddr ac1;
- struct ast_sockaddr t0;
- struct ast_sockaddr t1;
- void *pvt0;
- void *pvt1;
- int to;
-
- ast_channel_lock_both(c0, c1);
- pr0 = get_proto(c0);
- pr1 = get_proto(c1);
- if (!pr0) {
- ast_log(LOG_WARNING, "Can't find native functions for channel '%s'\n", ast_channel_name(c0));
- ast_channel_unlock(c0);
- ast_channel_unlock(c1);
- return -1;
- }
- if (!pr1) {
- ast_log(LOG_WARNING, "Can't find native functions for channel '%s'\n", ast_channel_name(c1));
- ast_channel_unlock(c0);
- ast_channel_unlock(c1);
- return -1;
- }
- pvt0 = ast_channel_tech_pvt(c0);
- pvt1 = ast_channel_tech_pvt(c1);
- p0 = pr0->get_udptl_info(c0);
- p1 = pr1->get_udptl_info(c1);
- if (!p0 || !p1) {
- /* Somebody doesn't want to play... */
- ast_channel_unlock(c0);
- ast_channel_unlock(c1);
- return -2;
- }
- if (pr0->set_udptl_peer(c0, p1)) {
- ast_log(LOG_WARNING, "Channel '%s' failed to talk to '%s'\n", ast_channel_name(c0), ast_channel_name(c1));
- memset(&ac1, 0, sizeof(ac1));
- } else {
- /* Store UDPTL peer */
- ast_udptl_get_peer(p1, &ac1);
- }
- if (pr1->set_udptl_peer(c1, p0)) {
- ast_log(LOG_WARNING, "Channel '%s' failed to talk back to '%s'\n", ast_channel_name(c1), ast_channel_name(c0));
- memset(&ac0, 0, sizeof(ac0));
- } else {
- /* Store UDPTL peer */
- ast_udptl_get_peer(p0, &ac0);
- }
- ast_channel_unlock(c0);
- ast_channel_unlock(c1);
- cs[0] = c0;
- cs[1] = c1;
- cs[2] = NULL;
- for (;;) {
- if ((ast_channel_tech_pvt(c0) != pvt0) ||
- (ast_channel_tech_pvt(c1) != pvt1) ||
- (ast_channel_masq(c0) || ast_channel_masqr(c0) || ast_channel_masq(c1) || ast_channel_masqr(c1))) {
- ast_debug(1, "Oooh, something is weird, backing out\n");
- /* Tell it to try again later */
- return -3;
- }
- to = -1;
- ast_udptl_get_peer(p1, &t1);
- ast_udptl_get_peer(p0, &t0);
- if (ast_sockaddr_cmp(&t1, &ac1)) {
- ast_debug(1, "Oooh, '%s' changed end address to %s\n",
- ast_channel_name(c1), ast_sockaddr_stringify(&t1));
- ast_debug(1, "Oooh, '%s' was %s\n",
- ast_channel_name(c1), ast_sockaddr_stringify(&ac1));
- ast_sockaddr_copy(&ac1, &t1);
- }
- if (ast_sockaddr_cmp(&t0, &ac0)) {
- ast_debug(1, "Oooh, '%s' changed end address to %s\n",
- ast_channel_name(c0), ast_sockaddr_stringify(&t0));
- ast_debug(1, "Oooh, '%s' was %s\n",
- ast_channel_name(c0), ast_sockaddr_stringify(&ac0));
- ast_sockaddr_copy(&ac0, &t0);
- }
- who = ast_waitfor_n(cs, 2, &to);
- if (!who) {
- ast_debug(1, "Ooh, empty read...\n");
- /* check for hangup / whentohangup */
- if (ast_check_hangup(c0) || ast_check_hangup(c1))
- break;
- continue;
- }
- f = ast_read(who);
- if (!f) {
- *fo = f;
- *rc = who;
- ast_debug(1, "Oooh, got a %s\n", f ? "digit" : "hangup");
- /* That's all we needed */
- return 0;
- } else {
- if (f->frametype == AST_FRAME_MODEM) {
- /* Forward T.38 frames if they happen upon us */
- if (who == c0) {
- ast_write(c1, f);
- } else if (who == c1) {
- ast_write(c0, f);
- }
- }
- ast_frfree(f);
- }
- /* Swap priority. Not that it's a big deal at this point */
- cs[2] = cs[0];
- cs[0] = cs[1];
- cs[1] = cs[2];
- }
- return -1;
-}
-
static char *handle_cli_udptl_set_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{
switch (cmd) {