From 354b7f1a81057d6c68b51a05268f0d914b809357 Mon Sep 17 00:00:00 2001
From: "Kevin P. Fleming" <kpfleming@digium.com>
Date: Mon, 21 Nov 2005 19:20:26 +0000
Subject: [PATCH] fix a bug found during a recent upgrade

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7180 65c4cc65-6c06-0410-ace0-fbb531ad65f3
---
 ChangeLog            | 4 ++++
 channels/chan_iax2.c | 4 ++--
 channels/chan_sip.c  | 6 +++++-
 3 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 91157642ae..54bac41d74 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2005-11-21  Kevin P. Fleming  <kpfleming@digium.com>
+
+	* ensure that case changes made to chan_sip and chan_iax2 peer/user names are not ignored during reload operations
+
 2005-11-21  Josh Roberson <josh@asteriasgi.com>
 
 	* Makefile: Re-fix Darwin poll issues. 
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 3046c610bd..fa95b91857 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -8104,7 +8104,7 @@ static struct iax2_peer *build_peer(const char *name, struct ast_variable *v, in
 	if (!temponly) {
 		peer = peerl.peers;
 		while(peer) {
-			if (!strcasecmp(peer->name, name)) {	
+			if (!strcmp(peer->name, name)) {	
 				break;
 			}
 			prev = peer;
@@ -8297,7 +8297,7 @@ static struct iax2_user *build_user(const char *name, struct ast_variable *v, in
 	if (!temponly) {
 		user = userl.users;
 		while(user) {
-			if (!strcasecmp(user->name, name)) {	
+			if (!strcmp(user->name, name)) {	
 				break;
 			}
 			prev = user;
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 3d5e4544c6..e6faa6b4ea 100755
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -11967,7 +11967,11 @@ static struct sip_peer *build_peer(const char *name, struct ast_variable *v, int
 
 	if (!realtime)
 		/* Note we do NOT use find_peer here, to avoid realtime recursion */
-		peer = ASTOBJ_CONTAINER_FIND_UNLINK(&peerl, name);
+		/* We also use a case-sensitive comparison (unlike find_peer) so
+		   that case changes made to the peer name will be properly handled
+		   during reload
+		*/
+		peer = ASTOBJ_CONTAINER_FIND_UNLINK_FULL(&peerl, name, name, 0, 0, strcmp);
 
 	if (peer) {
 		/* Already in the list, remove it and it will be added back (or FREE'd)  */
-- 
GitLab