Merged revisions 218730 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r218730 | tilghman | 2009-09-15 17:27:41 -0500 (Tue, 15 Sep 2009) | 6 lines
  
  If the user enters the same password as before, don't signal an error when the change does nothing.
  (closes issue #15492)
   Reported by: cbbs70a
   Patches: 
         20090713__issue15492.diff.txt uploaded by tilghman (license 14)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@218731 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Tilghman Lesher 17 years ago
parent c373c8807e
commit e876206693

@ -1068,28 +1068,27 @@ static int check_password(struct ast_vm_user *vmu, char *password)
* \param vmu The voicemail user to change the password for.
* \param password The new value to be set to the password for this user.
*
* This only works if the voicemail user has a unique id, and if there is a realtime engine configured.
* This only works if there is a realtime engine configured.
* This is called from the (top level) vm_change_password.
*
* \return zero on success, -1 on error.
*/
static int change_password_realtime(struct ast_vm_user *vmu, const char *password)
{
int res;
if (!ast_strlen_zero(vmu->uniqueid)) {
if (strlen(password) > 10) {
ast_realtime_require_field("voicemail", "password", RQ_CHAR, strlen(password), SENTINEL);
}
res = ast_update2_realtime("voicemail", "context", vmu->context, "mailbox", vmu->mailbox, SENTINEL, "password", password, SENTINEL);
if (res > 0) {
ast_copy_string(vmu->password, password, sizeof(vmu->password));
res = 0;
} else if (!res) {
res = -1;
}
return res;
int res = -1;
if (!strcmp(vmu->password, password)) {
/* No change (but an update would return 0 rows updated, so we opt out here) */
return 0;
}
return -1;
if (strlen(password) > 10) {
ast_realtime_require_field("voicemail", "password", RQ_CHAR, strlen(password), SENTINEL);
}
if (ast_update2_realtime("voicemail", "context", vmu->context, "mailbox", vmu->mailbox, SENTINEL, "password", password, SENTINEL) > 0) {
ast_copy_string(vmu->password, password, sizeof(vmu->password));
res = 0;
}
return res;
}
/*!

Loading…
Cancel
Save