[svn-commits] kmoore: branch kmoore/stasis-cel_refactoring r388997 - in /team/kmoore/stasis...

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri May 17 13:34:02 CDT 2013


Author: kmoore
Date: Fri May 17 13:33:58 2013
New Revision: 388997

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=388997
Log:
Add to-lower and to-upper case change functions and use them to fix a bug

Modified:
    team/kmoore/stasis-cel_refactoring/include/asterisk/strings.h
    team/kmoore/stasis-cel_refactoring/main/cel.c

Modified: team/kmoore/stasis-cel_refactoring/include/asterisk/strings.h
URL: http://svnview.digium.com/svn/asterisk/team/kmoore/stasis-cel_refactoring/include/asterisk/strings.h?view=diff&rev=388997&r1=388996&r2=388997
==============================================================================
--- team/kmoore/stasis-cel_refactoring/include/asterisk/strings.h (original)
+++ team/kmoore/stasis-cel_refactoring/include/asterisk/strings.h Fri May 17 13:33:58 2013
@@ -1067,4 +1067,44 @@
 	return abs(hash);
 }
 
+/*!
+ * \brief Convert a string to all lower-case
+ *
+ * \param str The string to be converted to lower case
+ *
+ * \retval str for convenience
+ */
+static force_inline char *attribute_pure ast_str_to_lower(char *str)
+{
+	if (!str) {
+		return str;
+	}
+
+	for (; *str; ++str) {
+		*str = tolower(*str);
+	}
+
+	return str;
+}
+
+/*!
+ * \brief Convert a string to all upper-case
+ *
+ * \param str The string to be converted to upper case
+ *
+ * \retval str for convenience
+ */
+static force_inline char *attribute_pure ast_str_to_upper(char *str)
+{
+	if (!str) {
+		return str;
+	}
+
+	for (; *str; ++str) {
+		*str = toupper(*str);
+	}
+
+	return str;
+}
+
 #endif /* _ASTERISK_STRINGS_H */

Modified: team/kmoore/stasis-cel_refactoring/main/cel.c
URL: http://svnview.digium.com/svn/asterisk/team/kmoore/stasis-cel_refactoring/main/cel.c?view=diff&rev=388997&r1=388996&r2=388997
==============================================================================
--- team/kmoore/stasis-cel_refactoring/main/cel.c (original)
+++ team/kmoore/stasis-cel_refactoring/main/cel.c Fri May 17 13:33:58 2013
@@ -338,6 +338,7 @@
 			continue;
 		}
 
+		ast_str_to_lower(cur_app);
 		ast_str_container_add(appset, cur_app);
 	}
 }
@@ -448,12 +449,12 @@
 	}
 
 	if (event_type == AST_CEL_APP_START || event_type == AST_CEL_APP_END) {
-		char *app;
-		if (!(app = ao2_find(appset, (char *) snapshot->appl, OBJ_POINTER))) {
+		RAII_VAR(char *, app, NULL, ao2_cleanup);
+		char *app_lower = ast_str_to_lower(ast_strdupa(snapshot->appl));
+		if (!(app = ao2_find(appset, app_lower, OBJ_POINTER))) {
 			ast_mutex_unlock(&reload_lock);
 			return 0;
 		}
-		ao2_ref(app, -1);
 	}
 
 	ast_mutex_unlock(&reload_lock);
@@ -698,12 +699,12 @@
 	}
 
 	if (event_type == AST_CEL_APP_START || event_type == AST_CEL_APP_END) {
-		char *app;
-		if (!(app = ao2_find(appset, (char *) ast_channel_appl(chan), OBJ_POINTER))) {
+		RAII_VAR(char *, app, NULL, ao2_cleanup);
+		char *app_lower = ast_str_to_lower(ast_strdupa(ast_channel_appl(chan)));
+		if (!(app = ao2_find(appset, app_lower, OBJ_POINTER))) {
 			ast_mutex_unlock(&reload_lock);
 			return 0;
 		}
-		ao2_ref(app, -1);
 	}
 
 	ast_mutex_unlock(&reload_lock);




More information about the svn-commits mailing list