Merged revisions 113013 via svnmerge from
authorJeff Peeler <jpeeler@digium.com>
Mon, 7 Apr 2008 21:35:48 +0000 (21:35 +0000)
committerJeff Peeler <jpeeler@digium.com>
Mon, 7 Apr 2008 21:35:48 +0000 (21:35 +0000)
https://origsvn.digium.com/svn/asterisk/trunk

................
r113013 | jpeeler | 2008-04-07 10:18:10 -0500 (Mon, 07 Apr 2008) | 15 lines

Merged revisions 113012 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r113012 | jpeeler | 2008-04-07 10:16:44 -0500 (Mon, 07 Apr 2008) | 7 lines

(closes issue #12362)
(closes issue #12372)
Reported by: vinsik
Tested by: tecnoxarxa

This one line change makes an if inside a for loop (in realtime_peer) check all the ast_variables the loop was intending to test rather than just the first one.

........

................

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

channels/chan_sip.c

index 3cc98d5..df80bc0 100644 (file)
@@ -3608,9 +3608,9 @@ static struct sip_peer *realtime_peer(const char *newpeername, struct sockaddr_i
                         * is because we only have the IP address and the host field might be
                         * set as a name (and the reverse PTR might not match).
                         */
                         * is because we only have the IP address and the host field might be
                         * set as a name (and the reverse PTR might not match).
                         */
-                       if (var) {
+                       if (var && sin) {
                                for (tmp = var; tmp; tmp = tmp->next) {
                                for (tmp = var; tmp; tmp = tmp->next) {
-                                       if (!strcasecmp(var->name, "host")) {
+                                       if (!strcasecmp(tmp->name, "host")) {
                                                struct hostent *hp;
                                                struct ast_hostent ahp;
                                                if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {
                                                struct hostent *hp;
                                                struct ast_hostent ahp;
                                                if (!(hp = ast_gethostbyname(tmp->value, &ahp)) || (memcmp(&hp->h_addr, &sin->sin_addr, sizeof(hp->h_addr)))) {