diff options
author | Richard Mudgett <rmudgett@digium.com> | 2013-12-19 17:13:53 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2013-12-19 17:13:53 +0000 |
commit | 3ccd5dee18dfbd64b01cba68790721680477df19 (patch) | |
tree | 00e9575547264fcdc6149a836bf317959dd982fa /main | |
parent | c061f634da53715c0aa17a450c1177a14fdf4713 (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')
-rw-r--r-- | main/udptl.c | 160 |
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) { |