s3:winbindd:idmap: check loadparm in domain_has_idmap_config() helper as well.
authorGünther Deschner <gd@samba.org>
Thu, 10 Mar 2016 11:21:52 +0000 (12:21 +0100)
committerJeremy Allison <jra@samba.org>
Thu, 17 Mar 2016 00:08:32 +0000 (01:08 +0100)
Guenther

BUG: https://bugzilla.samba.org/show_bug.cgi?id=11786

Pair-Programmed-With: Michael Adam <obnox@samba.org>

Signed-off-by: Guenther Deschner <gd@samba.org>
Signed-off-by: Michael Adam <obnox@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
source3/winbindd/idmap.c

index 39ee230a3d57f6de5f3724aef84c84be953aebe7..faf0df267a486e82e2091a47cb15fbbc4d856679 100644 (file)
@@ -123,6 +123,9 @@ static bool idmap_init(void)
 bool domain_has_idmap_config(const char *domname)
 {
        int i;
+       char *config_option;
+       const char *range = NULL;
+       const char *backend = NULL;
 
        idmap_init();
 
@@ -132,6 +135,25 @@ bool domain_has_idmap_config(const char *domname)
                }
        }
 
+       /* fallback: also check loadparm */
+
+       config_option = talloc_asprintf(talloc_tos(), "idmap config %s",
+                                       domname);
+       if (config_option == NULL) {
+               DEBUG(0, ("out of memory\n"));
+               return false;
+       }
+
+       range = lp_parm_const_string(-1, config_option, "range", NULL);
+       backend = lp_parm_const_string(-1, config_option, "backend", NULL);
+       if (range != NULL && backend != NULL) {
+               DEBUG(5, ("idmap configuration specified for domain '%s'\n",
+                       domname));
+               TALLOC_FREE(config_option);
+               return true;
+       }
+
+       TALLOC_FREE(config_option);
        return false;
 }