From 47cd09ee57d8f24022d60c1c52677a0e236b6853 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Thu, 10 May 2001 06:53:19 +0000 Subject: Don't check for passwd program if using pam change password. Original patch from Andrew Bartlett. Jeremy. (This used to be commit aae779d0a3d3c80e6fa010fdb397af3aff360551) --- source3/utils/testparm.c | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) (limited to 'source3') diff --git a/source3/utils/testparm.c b/source3/utils/testparm.c index 20f36fcffe..ae4a12a882 100644 --- a/source3/utils/testparm.c +++ b/source3/utils/testparm.c @@ -93,29 +93,37 @@ to a valid password server.\n", sec_setting ); if(lp_security() == SEC_USER && lp_unix_password_sync()) { /* - * Check that we have a valid lp_passwd_program(). + * Check that we have a valid lp_passwd_program() if not using pam. */ - if(lp_passwd_program() == NULL) { - printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd program' \ +#ifdef WITH_PAM + if (!lp_pam_password_change()) { +#endif + + if(lp_passwd_program() == NULL) { + printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd program' \ parameter.\n" ); - ret = 1; - } else { - pstring passwd_prog; - pstring truncated_prog; - char *p; - - pstrcpy( passwd_prog, lp_passwd_program()); - p = passwd_prog; - *truncated_prog = '\0'; - next_token(&p, truncated_prog, NULL, sizeof(pstring)); - - if(access(truncated_prog, F_OK) == -1) { - printf("ERROR: the 'unix password sync' parameter is set and the 'passwd program' (%s) \ -cannot be executed (error was %s).\n", truncated_prog, strerror(errno) ); ret = 1; + } else { + pstring passwd_prog; + pstring truncated_prog; + char *p; + + pstrcpy( passwd_prog, lp_passwd_program()); + p = passwd_prog; + *truncated_prog = '\0'; + next_token(&p, truncated_prog, NULL, sizeof(pstring)); + + if(access(truncated_prog, F_OK) == -1) { + printf("ERROR: the 'unix password sync' parameter is set and the 'passwd program' (%s) \ +cannot be executed (error was %s).\n", truncated_prog, strerror(errno) ); + ret = 1; + } } + +#ifdef WITH_PAM } +#endif if(lp_passwd_chat() == NULL) { printf("ERROR: the 'unix password sync' parameter is set and there is no valid 'passwd chat' \ -- cgit