From: Mark Michelson Date: Fri, 20 Jul 2007 18:42:27 +0000 (+0000) Subject: When using users.conf for the entries in the directory, if multiple users had the... X-Git-Tag: 1.4.9~21 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7fd9d67e7a379094a91bf9b7b872b32f849ac91a;p=thirdparty%2Fasterisk.git When using users.conf for the entries in the directory, if multiple users had the same last name, only the first user listed would be available in the directory. (closes issue #10200, reported by mrskippy, patched by me) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@76139 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_directory.c b/apps/app_directory.c index ea370d7db0..a5fb06e880 100644 --- a/apps/app_directory.c +++ b/apps/app_directory.c @@ -404,6 +404,7 @@ static int do_directory(struct ast_channel *chan, struct ast_config *cfg, struct int lastuserchoice = 0; char *start, *conv, *stringp = NULL; const char *pos; + int breakout = 0; if (ast_strlen_zero(context)) { ast_log(LOG_WARNING, @@ -527,6 +528,7 @@ static int do_directory(struct ast_channel *chan, struct ast_config *cfg, struct * user hungup */ lastuserchoice = 0; + breakout = 1; break; case '1': /* user pressed '1' and extensions exists; @@ -534,19 +536,24 @@ static int do_directory(struct ast_channel *chan, struct ast_config *cfg, struct a goto() on the channel */ lastuserchoice = res; + breakout = 1; break; case '*': /* user pressed '*' to skip something found */ lastuserchoice = res; + breakout = 0; res = 0; break; default: + breakout = 1; break; } free(conv); - break; + if (breakout) + break; } - free(conv); + else + free(conv); } } }