Merged revisions 218731 via svnmerge from

https://origsvn.digium.com/svn/asterisk/trunk

................
  r218731 | tilghman | 2009-09-15 17:33:10 -0500 (Tue, 15 Sep 2009) | 13 lines
  
  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/branches/1.6.2@218733 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.6.2
Tilghman Lesher 16 years ago
parent ea227c48f9
commit eb99291c98

@ -1061,28 +1061,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