diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2011-04-30 19:54:10 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2011-04-30 19:54:10 +0000 |
commit | e6fd9b6c1fd31b89606e403e638d77f0343c6eae (patch) | |
tree | a968480caf1bf430d933ffe172372f646821fd23 | |
parent | 8f8d8f85eb9601be39e821286a5e3472e0f881d6 (diff) |
improve password change failed error message
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1447 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r-- | nslcd/pam.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/nslcd/pam.c b/nslcd/pam.c index 94c8bf3..3fc592d 100644 --- a/nslcd/pam.c +++ b/nslcd/pam.c @@ -661,20 +661,22 @@ int nslcd_pam_pwmod(TFILE *fp,MYLDAP_SESSION *session,uid_t calleruid) } /* perform password modification */ rc=try_pwmod(binddn,myldap_get_dn(entry),oldpassword,newpassword); - /* write response */ - WRITE_INT32(fp,NSLCD_RESULT_BEGIN); - WRITE_STRING(fp,username); - WRITE_STRING(fp,myldap_get_dn(entry)); - if (rc==LDAP_SUCCESS) + if (rc!=LDAP_SUCCESS) { - WRITE_INT32(fp,NSLCD_PAM_SUCCESS); + mysnprintf(authzmsg,sizeof(authzmsg)-1,"password change failed: %s",ldap_err2string(rc)); + WRITE_INT32(fp,NSLCD_RESULT_BEGIN); + WRITE_STRING(fp,username); WRITE_STRING(fp,""); - } - else - { WRITE_INT32(fp,NSLCD_PAM_PERM_DENIED); - WRITE_STRING(fp,ldap_err2string(rc)); + WRITE_STRING(fp,authzmsg); + WRITE_INT32(fp,NSLCD_RESULT_END); } + /* write response */ + WRITE_INT32(fp,NSLCD_RESULT_BEGIN); + WRITE_STRING(fp,username); + WRITE_STRING(fp,myldap_get_dn(entry)); + WRITE_INT32(fp,NSLCD_PAM_SUCCESS); + WRITE_STRING(fp,""); WRITE_INT32(fp,NSLCD_RESULT_END); return 0; } |