From 0748d4716440e25c745ed77da91812cf8a4db3f6 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sun, 9 Jan 2005 01:15:43 +0000 Subject: Minor externip fixes (bug #3262) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4722 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) (limited to 'channels') diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 23b65087c..fdfec45e7 100755 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -648,19 +648,19 @@ static int ast_sip_ouraddrfor(struct in_addr *them, struct in_addr *us) */ struct sockaddr_in theirs; theirs.sin_addr = *them; - if (externexpire && (time(NULL) >= externexpire)) { - struct ast_hostent ahp; - struct hostent *hp; - time(&externexpire); - externexpire += externrefresh; - if ((hp = ast_gethostbyname(externhost, &ahp))) { - memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip)); - } else - ast_log(LOG_NOTICE, "Warning: Re-lookup of '%s' failed!\n", externhost); - } if (localaddr && externip.sin_addr.s_addr && ast_apply_ha(localaddr, &theirs)) { char iabuf[INET_ADDRSTRLEN]; + if (externexpire && (time(NULL) >= externexpire)) { + struct ast_hostent ahp; + struct hostent *hp; + time(&externexpire); + externexpire += externrefresh; + if ((hp = ast_gethostbyname(externhost, &ahp))) { + memcpy(&externip.sin_addr, hp->h_addr, sizeof(externip.sin_addr)); + } else + ast_log(LOG_NOTICE, "Warning: Re-lookup of '%s' failed!\n", externhost); + } memcpy(us, &externip.sin_addr, sizeof(struct in_addr)); ast_inet_ntoa(iabuf, sizeof(iabuf), *(struct in_addr *)&them->s_addr); ast_log(LOG_DEBUG, "Target address %s is not local, substituting externip\n", iabuf); -- cgit v1.2.3