From: Mark Spencer Date: Sun, 5 Sep 2004 19:38:17 +0000 (+0000) Subject: Don't prompt for password if one is not needed (bug #2385) X-Git-Tag: 1.0.0~98 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8fb1ddeb5db7affae0f9a70eac893a0de6639b02;p=thirdparty%2Fasterisk.git 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 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 7a80aa82f8..cf03307b32 100755 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -3617,13 +3617,20 @@ static int vm_execmain(struct ast_channel *chan, void *data) } if (useadsi) adsi_password(chan); - 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 (!skipuser) + vmu = find_user(&vmus, context, vms.username); + if (vmu && vmu->password[0] == '\0') { + /* saved password is blank, so don't bother asking */ + password[0] = '\0'; + } else { + 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) { char fullusername[80] = ""; @@ -3631,8 +3638,6 @@ static int vm_execmain(struct ast_channel *chan, void *data) strncat(fullusername, vms.username, sizeof(fullusername) - 1); strncpy(vms.username, fullusername, sizeof(vms.username) - 1); } - if (!skipuser) - vmu = find_user(&vmus, context, vms.username); if (vmu && !strcmp(vmu->password, password)) valid++; else {