From 35eeb71ead595c78f6c855abdc67a7eac0a4a74e Mon Sep 17 00:00:00 2001
From: Paul Belanger <paul.belanger@polybeacon.com>
Date: Wed, 5 May 2010 18:43:03 +0000
Subject: [PATCH] Merged revisions 261274 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r261274 | pabelanger | 2010-05-05 12:42:22 -0400 (Wed, 05 May 2010) | 12 lines

  Registration fix for SIP realtime.

  Make sure realtime fields are not empty.

  (closes issue #17266)
  Reported by: Nick_Lewis
  Patches:
        chan_sip.c-realtime.patch uploaded by Nick Lewis (license 657)
  Tested by: Nick_Lewis, sberney

  Review: https://reviewboard.asterisk.org/r/643/
........


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

diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index a7b57438ab..876ca36917 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -24997,19 +24997,23 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, str
 					}
 				}
 			} else if (!strcasecmp(v->name, "defaultip")) {
-				if (ast_get_ip(&peer->defaddr, v->value)) {
+				if (!ast_strlen_zero(v->value) && ast_get_ip(&peer->defaddr, v->value)) {
 					unref_peer(peer, "unref_peer: from build_peer defaultip");
 					return NULL;
 				}
 			} else if (!strcasecmp(v->name, "permit") || !strcasecmp(v->name, "deny")) {
 				int ha_error = 0;
-				peer->ha = ast_append_ha(v->name, v->value, peer->ha, &ha_error);
+				if (!ast_strlen_zero(v->value)) {
+					peer->ha = ast_append_ha(v->name, v->value, peer->ha, &ha_error);
+				}
 				if (ha_error) {
 					ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value);
 				}
 			} else if (!strcasecmp(v->name, "contactpermit") || !strcasecmp(v->name, "contactdeny")) {
 				int ha_error = 0;
-				peer->contactha = ast_append_ha(v->name + 7, v->value, peer->contactha, &ha_error);
+				if (!ast_strlen_zero(v->value)) {
+					peer->contactha = ast_append_ha(v->name + 7, v->value, peer->contactha, &ha_error);
+				}
 				if (ha_error) {
 					ast_log(LOG_ERROR, "Bad ACL entry in configuration line %d : %s\n", v->lineno, v->value);
 				}
-- 
GitLab