From 7fd9d67e7a379094a91bf9b7b872b32f849ac91a Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Fri, 20 Jul 2007 18:42:27 +0000 Subject: [PATCH] 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 --- apps/app_directory.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) 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); } } }