diff options
author | Jeremy Allison <jra@samba.org> | 2001-07-06 22:54:49 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-07-06 22:54:49 +0000 |
commit | 429b3c3cc5ea810d03716a1efd81140c772c15ee (patch) | |
tree | 80559638c90eff45e567a87a44b0d7058570715f /source3 | |
parent | a732bcd9d2677dde13cb95859c90edf86fb88984 (diff) | |
download | samba-429b3c3cc5ea810d03716a1efd81140c772c15ee.tar.gz samba-429b3c3cc5ea810d03716a1efd81140c772c15ee.tar.bz2 samba-429b3c3cc5ea810d03716a1efd81140c772c15ee.zip |
Password changing via PAM works now. DONT CHANGE THIS UNLESS YOU RE-TEST !!!!!!
Jeremy.
(This used to be commit 79574c07ed5de7194a17c9ee8d189370d8e42bcc)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/auth/pampass.c | 21 | ||||
-rw-r--r-- | source3/passdb/pampass.c | 21 |
2 files changed, 38 insertions, 4 deletions
diff --git a/source3/auth/pampass.c b/source3/auth/pampass.c index 53d2a062fd..fc8e4af47d 100644 --- a/source3/auth/pampass.c +++ b/source3/auth/pampass.c @@ -226,7 +226,9 @@ static struct chat_struct *make_pw_chat(char *p) special_char_sub(prompt); fstrcpy(t->prompt, prompt); - + strlower(t->prompt); + trim_string(t->prompt, " ", " "); + if (!next_token(&p, reply, NULL, sizeof(fstring))) break; @@ -235,6 +237,8 @@ static struct chat_struct *make_pw_chat(char *p) special_char_sub(reply); fstrcpy(t->reply, reply); + strlower(t->reply); + trim_string(t->reply, " ", " "); } return list; @@ -298,11 +302,19 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: PAM said: %s\n", msg[replies]->msg)); fstrcpy(current_prompt, msg[replies]->msg); strlower(current_prompt); + trim_string(current_prompt, " ", " "); for (t=pw_chat; t; t=t->next) { + + DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: trying to match |%s| to |%s|\n", + t->prompt, current_prompt )); + if (ms_fnmatch(t->prompt, current_prompt) == 0) { fstrcpy(current_reply, t->reply); - pwd_sub(current_reply, udp->PAM_username, udp->PAM_password, udp->PAM_newpassword); DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: We sent: %s\n", current_reply)); + pwd_sub(current_reply, udp->PAM_username, udp->PAM_password, udp->PAM_newpassword); +#ifdef DEBUG_PASSWORD + DEBUG(100,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: We actualy sent: %s\n", current_reply)); +#endif reply[replies].resp_retcode = PAM_SUCCESS; reply[replies].resp = COPY_STRING(current_reply); found = True; @@ -323,7 +335,12 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: PAM said: %s\n", msg[replies]->msg)); fstrcpy(current_prompt, msg[replies]->msg); strlower(current_prompt); + trim_string(current_prompt, " ", " "); for (t=pw_chat; t; t=t->next) { + + DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: trying to match |%s| to |%s|\n", + t->prompt, current_prompt )); + if (ms_fnmatch(t->prompt, current_prompt) == 0) { fstrcpy(current_reply, t->reply); DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: We sent: %s\n", current_reply)); diff --git a/source3/passdb/pampass.c b/source3/passdb/pampass.c index 53d2a062fd..fc8e4af47d 100644 --- a/source3/passdb/pampass.c +++ b/source3/passdb/pampass.c @@ -226,7 +226,9 @@ static struct chat_struct *make_pw_chat(char *p) special_char_sub(prompt); fstrcpy(t->prompt, prompt); - + strlower(t->prompt); + trim_string(t->prompt, " ", " "); + if (!next_token(&p, reply, NULL, sizeof(fstring))) break; @@ -235,6 +237,8 @@ static struct chat_struct *make_pw_chat(char *p) special_char_sub(reply); fstrcpy(t->reply, reply); + strlower(t->reply); + trim_string(t->reply, " ", " "); } return list; @@ -298,11 +302,19 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: PAM said: %s\n", msg[replies]->msg)); fstrcpy(current_prompt, msg[replies]->msg); strlower(current_prompt); + trim_string(current_prompt, " ", " "); for (t=pw_chat; t; t=t->next) { + + DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: trying to match |%s| to |%s|\n", + t->prompt, current_prompt )); + if (ms_fnmatch(t->prompt, current_prompt) == 0) { fstrcpy(current_reply, t->reply); - pwd_sub(current_reply, udp->PAM_username, udp->PAM_password, udp->PAM_newpassword); DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: We sent: %s\n", current_reply)); + pwd_sub(current_reply, udp->PAM_username, udp->PAM_password, udp->PAM_newpassword); +#ifdef DEBUG_PASSWORD + DEBUG(100,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_ON: We actualy sent: %s\n", current_reply)); +#endif reply[replies].resp_retcode = PAM_SUCCESS; reply[replies].resp = COPY_STRING(current_reply); found = True; @@ -323,7 +335,12 @@ static int smb_pam_passchange_conv(int num_msg, DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: PAM said: %s\n", msg[replies]->msg)); fstrcpy(current_prompt, msg[replies]->msg); strlower(current_prompt); + trim_string(current_prompt, " ", " "); for (t=pw_chat; t; t=t->next) { + + DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: trying to match |%s| to |%s|\n", + t->prompt, current_prompt )); + if (ms_fnmatch(t->prompt, current_prompt) == 0) { fstrcpy(current_reply, t->reply); DEBUG(10,("smb_pam_passchange_conv: PAM_PROMPT_ECHO_OFF: We sent: %s\n", current_reply)); |