[Asterisk-cvs] asterisk/apps app_directory.c,1.43,1.44

kpfleming kpfleming
Wed Sep 14 21:33:20 CDT 2005


Update of /usr/cvsroot/asterisk/apps
In directory mongoose.digium.com:/tmp/cvs-serv7440/apps

Modified Files:
	app_directory.c 
Log Message:
_really_ fix app_directory (doh... how did I miss this before?) (issue #5232, take two)


Index: app_directory.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_directory.c,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -d -r1.43 -r1.44
--- app_directory.c	15 Sep 2005 00:56:09 -0000	1.43
+++ app_directory.c	15 Sep 2005 01:31:49 -0000	1.44
@@ -193,7 +193,7 @@
 				case '1':
 					/* Name selected */
 					loop = 0;
-					if (!ast_goto_if_exists(chan, dialcontext, ext, 1)) {
+					if (ast_goto_if_exists(chan, dialcontext, ext, 1)) {
 						ast_log(LOG_WARNING,
 							"Can't find extension '%s' in context '%s'.  "
 							"Did you pass the wrong context to Directory?\n",
@@ -300,25 +300,20 @@
 		return -1;
 	}
 	if (digit == '0') {
-		if (ast_exists_extension(chan,chan->context,"o",1,chan->cid.cid_num) || 
+		if (!ast_goto_if_exists(chan, chan->context, "o", 1) ||
 		    (!ast_strlen_zero(chan->macrocontext) &&
-		     ast_exists_extension(chan, chan->macrocontext, "o", 1, chan->cid.cid_num))) {
-			strcpy(chan->exten, "o");
-			chan->priority = 0;
+		     !ast_goto_if_exists(chan, chan->macrocontext, "o", 1))) {
 			return 0;
 		} else {
-
 			ast_log(LOG_WARNING, "Can't find extension 'o' in current context.  "
 				"Not Exiting the Directory!\n");
 			res = 0;
 		}
 	}	
 	if (digit == '*') {
-		if (ast_exists_extension(chan,chan->context,"a",1,chan->cid.cid_num) || 
+		if (!ast_goto_if_exists(chan, chan->context, "a", 1) ||
 		    (!ast_strlen_zero(chan->macrocontext) &&
-		     ast_exists_extension(chan, chan->macrocontext, "a", 1, chan->cid.cid_num))) {
-			strcpy(chan->exten, "a");
-			chan->priority = 0;
+		     !ast_goto_if_exists(chan, chan->macrocontext, "a", 1))) {
 			return 0;
 		} else {
 			ast_log(LOG_WARNING, "Can't find extension 'a' in current context.  "
@@ -375,11 +370,11 @@
 						lastuserchoice = 0;
 						break;
 					case '1':
-						/* user pressed '1' and extensions exists */
+						/* user pressed '1' and extensions exists;
+						   play_mailbox_owner will already have done
+						   a goto() on the channel
+						 */
 						lastuserchoice = res;
-						ast_copy_string(chan->context, dialcontext, sizeof(chan->context));
-						ast_copy_string(chan->exten, v->name, sizeof(chan->exten));
-						chan->priority = 0;
 						break;
 					case '*':
 						/* user pressed '*' to skip something found */




More information about the svn-commits mailing list