aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authormmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-20 18:42:27 +0000
committermmichelson <mmichelson@f38db490-d61c-443f-a65b-d21fe96a405b>2007-07-20 18:42:27 +0000
commitbee3b40fc7f12d85bec261457c88b80e26fd2e61 (patch)
tree6baadcb3d4b0816d27b99b5bb54ef558bd333c80 /apps
parentb25f9ef64c96ddf33e0ba88fe39066b2c6115f39 (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')
-rw-r--r--apps/app_directory.c11
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);
}
}
}