diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2015-10-01 04:43:28 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2015-10-01 04:43:28 +0000 |
commit | 6c8379528fa59c07748c7ff2a63cccdf358fe45e (patch) | |
tree | b5beb9a96c51642be8fe9a0e08babff7870eea51 /pjnath | |
parent | 068a9a1f341d0363730403422a7a300da7c7a5b1 (diff) |
Fix #1891: Also match base address in find local candidate after receiving ICE check response.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5184 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjnath')
-rw-r--r-- | pjnath/src/pjnath/ice_session.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/pjnath/src/pjnath/ice_session.c b/pjnath/src/pjnath/ice_session.c index d2b9dcdb..1d1a1824 100644 --- a/pjnath/src/pjnath/ice_session.c +++ b/pjnath/src/pjnath/ice_session.c @@ -2323,7 +2323,13 @@ static void on_stun_request_complete(pj_stun_session *stun_sess, /* Find local candidate that matches the XOR-MAPPED-ADDRESS */ pj_assert(lcand == NULL); for (i=0; i<ice->lcand_cnt; ++i) { - if (pj_sockaddr_cmp(&xaddr->sockaddr, &ice->lcand[i].addr) == 0) { + /* Ticket #1891: apply additional check as there may be a shared + * mapped address for different base/local addresses. + */ + if (pj_sockaddr_cmp(&xaddr->sockaddr, &ice->lcand[i].addr) == 0 && + pj_sockaddr_cmp(&check->lcand->base_addr, + &ice->lcand[i].base_addr) == 0) + { /* Match */ lcand = &ice->lcand[i]; break; |