Merged revisions 197621 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
  r197621 | eliel | 2009-05-28 12:01:48 -0400 (Thu, 28 May 2009) | 19 lines
  
  Merged revisions 197562 via svnmerge from 
  https://origsvn.digium.com/svn/asterisk/branches/1.4
  
  ........
    r197562 | eliel | 2009-05-28 11:21:32 -0400 (Thu, 28 May 2009) | 13 lines
    
    Use the address we already know when reloading a peer with nat=yes.
    
    If we already have an address for a peer, and we are reloading the sip
    configuration, try to use that address to contact the peer, instead of
    getting it from the Contact.
    
    (closes issue #15194)
    Reported by: ibc
    Patches:
          sip.patch uploaded by eliel (license 64)
          Tested by: manwe
  ........
................


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@197704 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Eliel C. Sardanons
2009-05-28 19:00:21 +00:00
parent b422316b51
commit 93e30e3e23

View File

@@ -21325,10 +21325,13 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
* address listed on the entry (or if it's 'dynamic'), then we need to
* parse the entry to obtain the IP address, so a dynamic host can be
* contacted immediately after reload (as opposed to waiting for it to
* register once again). */
* register once again). But if we have an address for this peer and NAT was
* specified, use that address instead. */
/* XXX May need to revisit the final argument; does the realtime DB store whether
* the original contact was over TLS or not? XXX */
__set_address_from_contact(fullcontact->str, &peer->addr, 0);
if (!ast_test_flag(&peer->flags[0], SIP_NAT_ROUTE) || !peer->addr.sin_addr.s_addr) {
__set_address_from_contact(fullcontact->str, &peer->addr, 0);
}
}
if (srvlookup) {