TCP not matching valid peer.
authorDavid Vossel <dvossel@digium.com>
Fri, 8 May 2009 20:32:51 +0000 (20:32 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 8 May 2009 20:32:51 +0000 (20:32 +0000)
commitfbad7a508d0c8d0b0c75474d2b7f9cbbcaa9b5e1
treefda69b4e8bd51cf48a4016cdedab2ba208ebe9c5
parent7a2a6a073f9796f622204abe60b64c5ac8372ea1
TCP not matching valid peer.

find_peer() does not find a valid peer when using pvt->recv as the sockaddr_in argument.  Because of the way TCP works, the port number in pvt->recv is not what we're looking for at all.  There is currently only one place that find_peer searches for a peer using the sockaddr_in argument.  If the peer is not found after using pvt->recv (works for UDP since the port number will be correct), a temp sockaddr_in struct is made using the Contact header in the sip_request.  This has the correct port number in it.

Review: http://reviewboard.digium.com/r/236/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@193387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c