]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 188067 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Mon, 13 Apr 2009 16:32:34 +0000 (16:32 +0000)
committerJoshua Colp <jcolp@digium.com>
Mon, 13 Apr 2009 16:32:34 +0000 (16:32 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

........
  r188067 | file | 2009-04-13 13:28:06 -0300 (Mon, 13 Apr 2009) | 10 lines

  Fix a bug where using an outbound proxy would cause the local address to be 127.0.0.1.

  Copy the outbound proxy IP address into the SIP dialog structure as the IP address we will
  be sending to. This has to be done because the logic that determines what local IP address to use
  in the SIP messages is not aware of an outbound proxy being in place. It only knows what IP address
  we are sending to.

  (closes issue #12006)
  Reported by: mnicholson
........

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@188069 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 1ed89df55df0dcfe6f59f766056e9f3227ec5549..373841841dd63647f43d445e6a7ffabab76f59ef 100644 (file)
@@ -4488,6 +4488,7 @@ static int create_addr(struct sip_pvt *dialog, const char *opeer, struct sockadd
        if (dialog->outboundproxy) {
                /* If we have an outbound proxy, don't bother with DNS resolution at all, but set the port */
                portno = port ? atoi(port) : (dialog->socket.type & SIP_TRANSPORT_TLS) ? STANDARD_TLS_PORT : STANDARD_SIP_PORT;
+               memcpy(&dialog->sa.sin_addr, &dialog->outboundproxy->ip.sin_addr, sizeof(dialog->sa.sin_addr));
        } else if (sin) {
                /* This address should be updated using dnsmgr */
                memcpy(&dialog->sa.sin_addr, &sin->sin_addr, sizeof(dialog->sa.sin_addr));