summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2011-04-30 19:54:10 +0000
committerArthur de Jong <arthur@arthurdejong.org>2011-04-30 19:54:10 +0000
commite6fd9b6c1fd31b89606e403e638d77f0343c6eae (patch)
treea968480caf1bf430d933ffe172372f646821fd23
parent8f8d8f85eb9601be39e821286a5e3472e0f881d6 (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.c22
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;
}