Don't prompt for password if one is not needed (bug #2385)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3728 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Mark Spencer
2004-09-05 19:38:17 +00:00
parent e94fa076cb
commit 8fb1ddeb5d

View File

@@ -3617,13 +3617,20 @@ static int vm_execmain(struct ast_channel *chan, void *data)
} }
if (useadsi) if (useadsi)
adsi_password(chan); adsi_password(chan);
if (ast_streamfile(chan, "vm-password", chan->language)) { if (!skipuser)
ast_log(LOG_WARNING, "Unable to stream password file\n"); vmu = find_user(&vmus, context, vms.username);
goto out; if (vmu && vmu->password[0] == '\0') {
} /* saved password is blank, so don't bother asking */
if (ast_readstring(chan, password, sizeof(password) - 1, 2000, 10000, "#") < 0) { password[0] = '\0';
ast_log(LOG_WARNING, "Unable to read password\n"); } else {
goto out; if (ast_streamfile(chan, "vm-password", chan->language)) {
ast_log(LOG_WARNING, "Unable to stream password file\n");
goto out;
}
if (ast_readstring(chan, password, sizeof(password) - 1, 2000, 10000, "#") < 0) {
ast_log(LOG_WARNING, "Unable to read password\n");
goto out;
}
} }
if (prefix) { if (prefix) {
char fullusername[80] = ""; char fullusername[80] = "";
@@ -3631,8 +3638,6 @@ static int vm_execmain(struct ast_channel *chan, void *data)
strncat(fullusername, vms.username, sizeof(fullusername) - 1); strncat(fullusername, vms.username, sizeof(fullusername) - 1);
strncpy(vms.username, fullusername, sizeof(vms.username) - 1); strncpy(vms.username, fullusername, sizeof(vms.username) - 1);
} }
if (!skipuser)
vmu = find_user(&vmus, context, vms.username);
if (vmu && !strcmp(vmu->password, password)) if (vmu && !strcmp(vmu->password, password))
valid++; valid++;
else { else {