diff options
author | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-30 05:46:57 +0000 |
---|---|---|
committer | file <file@f38db490-d61c-443f-a65b-d21fe96a405b> | 2006-12-30 05:46:57 +0000 |
commit | 5adf05c5d78ab5b1f0a5f9e867158ef9be3c8f99 (patch) | |
tree | a504f24001ea17d6a4353f7b532674c4511fdbfe | |
parent | 86438c824e82edb4d78ed27e1ba3dd933905960a (diff) |
If the Packet2Packet bridge is being broken because of a masquerade then attempt to read a frame in so the masquerade actually happens. Otherwise weirdness will occur. (issue #8696 reported by kjotte)
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@49066 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r-- | main/rtp.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/main/rtp.c b/main/rtp.c index 2c414f2f8..6ddbf735c 100644 --- a/main/rtp.c +++ b/main/rtp.c @@ -3000,6 +3000,10 @@ static enum ast_bridge_result bridge_p2p_loop(struct ast_channel *c0, struct ast (c1->tech_pvt != pvt1) || (c0->masq || c0->masqr || c1->masq || c1->masqr)) { ast_log(LOG_DEBUG, "Oooh, something is weird, backing out\n"); + if ((c0->masq || c0->masqr) && (fr = ast_read(c0))) + ast_frfree(fr); + if ((c1->masq || c1->masqr) && (fr = ast_read(c1))) + ast_frfree(fr); res = AST_BRIDGE_RETRY; break; } |