summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2007-02-21 00:00:11 +0000
committerJoshua Colp <jcolp@digium.com>2007-02-21 00:00:11 +0000
commit22c1925696f1cf5caac5a14315a240b2c2aec6f8 (patch)
tree7e3cc2b056b89a75626736a6c5fa415eed8f6d79 /channels
parent746e139e6db98dd84689e8a404b2a19946f7c046 (diff)
Merged revisions 55717 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r55717 | file | 2007-02-20 18:57:03 -0500 (Tue, 20 Feb 2007) | 2 lines Return behavior I removed. I did not remember that you could just add a localnet entry to make it work. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@55718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 1c4189cea..3fed33dbb 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -1925,14 +1925,16 @@ static void build_via(struct sip_pvt *p)
*/
static enum sip_result ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us)
{
- struct sockaddr_in theirs;
+ struct sockaddr_in theirs, ours;
/* Get our local information */
ast_ouraddrfor(them, us);
theirs.sin_addr = *them;
+ ours.sin_addr = *us;
if (localaddr && externip.sin_addr.s_addr &&
- ast_apply_ha(localaddr, &theirs)) {
+ (ast_apply_ha(localaddr, &theirs)) &&
+ (!ast_apply_ha(localaddr, &ours))) {
if (externexpire && time(NULL) >= externexpire) {
struct ast_hostent ahp;
struct hostent *hp;