[asterisk-commits] trunk r21393 - /trunk/pbx.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Wed Apr 19 02:31:43 MST 2006


Author: rizzo
Date: Wed Apr 19 04:31:41 2006
New Revision: 21393

URL: http://svn.digium.com/view/asterisk?rev=21393&view=rev
Log:
one more client for find_context_locked(),
plus a few minor fixes.


Modified:
    trunk/pbx.c

Modified: trunk/pbx.c
URL: http://svn.digium.com/view/asterisk/trunk/pbx.c?rev=21393&r1=21392&r2=21393&view=diff
==============================================================================
--- trunk/pbx.c (original)
+++ trunk/pbx.c Wed Apr 19 04:31:41 2006
@@ -2417,29 +2417,15 @@
  */
 int ast_context_remove_include(const char *context, const char *include, const char *registrar)
 {
-	struct ast_context *c = NULL;
-
-	if (ast_lock_contexts())
-		return -1;
-
-	/* walk contexts and search for the right one ...*/
-	while ( (c = ast_walk_contexts(c)) ) {
-		/* we found one ... */
-		if (!strcmp(ast_get_context_name(c), context)) {
-			int ret;
-			/* remove include from this context ... */	
-			ret = ast_context_remove_include2(c, include, registrar);
-
-			ast_unlock_contexts();
-
-			/* ... return results */
-			return ret;
-		}
-	}
-
-	/* we can't find the right one context */
-	ast_unlock_contexts();
-	return -1;
+	int ret = -1;
+	struct ast_context *c = find_context_locked(context);
+
+	if (c) {
+		/* found, remove include from this context ... */
+		ret = ast_context_remove_include2(c, include, registrar);
+		ast_unlock_contexts();
+	}
+	return ret;
 }
 
 /*
@@ -5101,10 +5087,7 @@
 static int pbx_builtin_setamaflags(struct ast_channel *chan, void *data)
 {
 	/* Copy the AMA Flags as specified */
-	if (data)
-		ast_cdr_setamaflags(chan, data);
-	else
-		ast_cdr_setamaflags(chan, "");
+	ast_cdr_setamaflags(chan, data ? data : "");
 	return 0;
 }
 
@@ -5359,7 +5342,7 @@
  */
 static int pbx_builtin_goto(struct ast_channel *chan, void *data)
 {
-	int res = ast_parseable_goto(chan, (const char *) data);
+	int res = ast_parseable_goto(chan, data);
 	if (!res && (option_verbose > 2))
 		ast_verbose( VERBOSE_PREFIX_3 "Goto (%s,%s,%d)\n", chan->context,chan->exten, chan->priority+1);
 	return res;
@@ -5601,7 +5584,7 @@
 		return 0;
 	else if (*condition >= '0' && *condition <= '9')	/* Numbers are evaluated for truth */
 		return atoi(condition);
-	else	/* Strings are true */
+	else	/* Strings are true -- XXX maybe use ast_true() ? */
 		return 1;
 }
 
@@ -5609,7 +5592,7 @@
 {
 	char *condition, *branch1, *branch2, *branch;
 	int rc;
-	char *stringp=NULL;
+	char *stringp;
 
 	if (ast_strlen_zero(data)) {
 		ast_log(LOG_WARNING, "Ignoring, since there is no variable to check\n");
@@ -5900,12 +5883,14 @@
 	if (!chan)
 		return -2;
 
+	if (context == NULL)
+		context = chan->context;
+	if (exten == NULL)
+		exten = chan->exten;
+
 	goto_func = (async) ? ast_async_goto : ast_explicit_goto;
-	if (ast_exists_extension(chan, context ? context : chan->context,
-				 exten ? exten : chan->exten, priority,
-				 chan->cid.cid_num))
-		return goto_func(chan, context ? context : chan->context,
-				 exten ? exten : chan->exten, priority);
+	if (ast_exists_extension(chan, context, exten, priority, chan->cid.cid_num))
+		return goto_func(chan, context, exten, priority);
 	else 
 		return -3;
 }



More information about the asterisk-commits mailing list