diff options
author | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-07-20 18:42:27 +0000 |
---|---|---|
committer | mmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2007-07-20 18:42:27 +0000 |
commit | bee3b40fc7f12d85bec261457c88b80e26fd2e61 (patch) | |
tree | 6baadcb3d4b0816d27b99b5bb54ef558bd333c80 /apps/app_directory.c | |
parent | b25f9ef64c96ddf33e0ba88fe39066b2c6115f39 (diff) |
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: http://svn.digium.com/svn/asterisk/branches/1.4@76139 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'apps/app_directory.c')
-rw-r--r-- | apps/app_directory.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/apps/app_directory.c b/apps/app_directory.c index ea370d7db..a5fb06e88 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); } } } |