From c4c2def7166543bdde49987be9e3737d2ee6527e Mon Sep 17 00:00:00 2001
From: Joshua Colp <jcolp@digium.com>
Date: Thu, 12 Apr 2007 19:32:00 +0000
Subject: [PATCH] Don't treat a host lookup as failed if sipregs is not in use
 when doing a realtime lookup. (issue #9255 reported by sergee)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@61618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 channels/chan_sip.c | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 99b156ed17..0741715f4f 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -2657,14 +2657,16 @@ static struct sip_peer *realtime_peer(const char *newpeername, struct sockaddr_i
 	} else if (sin) {	/* Then check on IP address for dynamic peers */
 		ast_copy_string(ipaddr, ast_inet_ntoa(sin->sin_addr), sizeof(ipaddr));
 		var = ast_load_realtime("sippeers", "host", ipaddr, NULL);	/* First check for fixed IP hosts */
-		if (var && realtimeregs) {
-			tmp = var;
-			while (tmp) {
-				if (!newpeername && !strcasecmp(tmp->name, "name"))
-					newpeername = tmp->value;
-				tmp = tmp->next;
+		if (var) {
+			if (realtimeregs) {
+				tmp = var;
+				while (tmp) {
+					if (!newpeername && !strcasecmp(tmp->name, "name"))
+						newpeername = tmp->value;
+					tmp = tmp->next;
+				}
+				varregs = ast_load_realtime("sipregs", "name", newpeername, NULL);
 			}
-			varregs = ast_load_realtime("sipregs", "name", newpeername, NULL);
 		} else {
 			if (realtimeregs)
 				varregs = ast_load_realtime("sipregs", "ipaddr", ipaddr, NULL); /* Then check for registered hosts */
-- 
GitLab