summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorMichael L. Young <elgueromexicano@gmail.com>2013-08-21 02:15:16 +0000
committerMichael L. Young <elgueromexicano@gmail.com>2013-08-21 02:15:16 +0000
commitc7c8eb5ea49f60038d201b0d3123a32d69d5b2a2 (patch)
treee5d842ecb56998650483038edfad2ba99387f31e /channels
parent5caa938be22340202b114ec929207bbb89550a0b (diff)
Fix Not Storing Current Incoming Recv Address
In 1.8, r384779 introduced a regression by retrieving an old dialog and keeping the old recv address since recv was already set. This has caused a problem when a proxy is involved since responses to incoming requests from the proxy server, after an outbound call is established, are never sent to the correct recv address. In 11, r382322 introduced this regression. The fix is to revert that change and always store the recv address on incoming requests. Thank you Walter Doekes for helping to point out this error and Mark Michelson for your input/review of the fix. (closes issue ASTERISK-22071) Reported by: Alex Zarubin Tested by: Alex Zarubin, Karsten Wemheuer Patches: asterisk-22071-store-recvd-address.diff by Michael L. Young (license 5026) ........ Merged revisions 397204 from http://svn.asterisk.org/svn/asterisk/branches/1.8 ........ Merged revisions 397205 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@397206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 36291d1ac..2e7615ae7 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -28202,9 +28202,7 @@ static int handle_request_do(struct sip_request *req, struct ast_sockaddr *addr)
copy_socket_data(&p->socket, &req->socket);
- if (ast_sockaddr_isnull(&p->recv)) { /* This may already be set before getting here */
- ast_sockaddr_copy(&p->recv, addr);
- }
+ ast_sockaddr_copy(&p->recv, addr);
/* if we have an owner, then this request has been authenticated */
if (p->owner) {