r23708: - Add define for WINBIND_WARN_PWD_EXPIRE.
authorLars Müller <lmuelle@samba.org>
Wed, 4 Jul 2007 20:25:29 +0000 (20:25 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:23:47 +0000 (12:23 -0500)
- Add parameter config_flag to get_config_item_int() and do the same
  check as in get_conf_item_string.
(This used to be commit d1d1baa264587911e1c97b3b35d5ed2bc56bf12b)

source3/nsswitch/pam_winbind.c
source3/nsswitch/pam_winbind.h

index 8109eca4b988e5b28d8c2687ecd6bab31dbf62fc..db3a0893291140ed91fa5b423bab2e43c77aa72f 100644 (file)
@@ -264,6 +264,10 @@ static int _pam_parse(const pam_handle_t *pamh, int flags, int argc, const char
                ctrl |= WINBIND_TRY_FIRST_PASS_ARG;
        }
 
+       if (iniparser_getint(d, "global:warn_pwd_expire", 0)) {
+               ctrl |= WINBIND_WARN_PWD_EXPIRE;
+       }
+
 config_from_pam:
        /* step through arguments */
        for (i=argc,v=argv; i-- > 0; ++v) {
@@ -1532,10 +1536,15 @@ int get_config_item_int(const pam_handle_t *pamh,
                              const char **argv,
                              int ctrl,
                              dictionary *d,
-                             const char *item)
+                             const char *item,
+                             int config_flag)
 {
        int i, parm_opt = -1;
 
+       if (!(ctrl & config_flag)) {
+               goto out;
+       }
+
        /* let the pam opt take precedence over the pam_winbind.conf option */
        for (i = 0; i < argc; i++) {
 
@@ -1597,7 +1606,7 @@ int get_warn_pwd_expire_from_config(const pam_handle_t *pamh,
 {
        int ret;
        ret = get_config_item_int(pamh, argc, argv, ctrl, d,
-                                 "warn_pwd_expire");
+                                 "warn_pwd_expire", WINBIND_WARN_PWD_EXPIRE);
        /* no or broken setting */
        if (ret <= 0) {
                return DEFAULT_DAYS_TO_WARN_BEFORE_PWD_EXPIRES;
index 159cb280593da6375f50188ac4019af80c60ccdc..59a2f39584cd7bb1a4cd0a480fca629260eb618b 100644 (file)
@@ -95,6 +95,7 @@ do {                             \
 #define WINBIND_CONFIG_FILE (1<<10)
 #define WINBIND_SILENT (1<<11)
 #define WINBIND_DEBUG_STATE (1<<12)
+#define WINBIND_WARN_PWD_EXPIRE (1<<13)
 
 /*
  * here is the string to inform the user that the new passwords they