]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
r22158: BUG 4501 (partial): Fix a crash caused by not using the
authorGerald Carter <jerry@samba.org>
Tue, 10 Apr 2007 21:14:44 +0000 (21:14 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 17:19:17 +0000 (12:19 -0500)
nss_info_{rfc2307,sfu} plugin with idmap_ad.

source/nsswitch/idmap_ad.c

index 5ec543819ef6fe3e6f66062720fd02355f046626..eff3545d1575cbd2db8371c8ac9a4354337e61c3 100644 (file)
@@ -164,14 +164,10 @@ static NTSTATUS idmap_ad_initialize(struct idmap_domain *dom, const char *params
 {
        struct idmap_ad_context *ctx;
        char *config_option;
-       const char *range;
+       const char *range = NULL;
+       const char *schema_mode = NULL; 
        ADS_STRUCT *ads;
 
-       /* verify AD is reachable (not critical, we may just be offline at start) */
-       if ( (ads = ad_idmap_cached_connection()) == NULL ) {
-               DEBUG(1, ("WARNING: Could not init an AD connection! Mapping might not work.\n"));
-       }
-
        if ( (ctx = talloc_zero(dom, struct idmap_ad_context)) == NULL ) {
                DEBUG(0, ("Out of memory!\n"));
                return NT_STATUS_NO_MEMORY;
@@ -194,6 +190,20 @@ static NTSTATUS idmap_ad_initialize(struct idmap_domain *dom, const char *params
                }
        }
 
+       /* schema mode */
+       if ( ad_map_type == WB_POSIX_MAP_UNKNOWN )
+               ad_map_type = WB_POSIX_MAP_RFC2307;
+       schema_mode = lp_parm_const_string(-1, config_option, "schema_mode", NULL);
+       if ( schema_mode && schema_mode[0] ) {
+               if ( strequal(schema_mode, "sfu") )
+                       ad_map_type = WB_POSIX_MAP_SFU;
+               else if ( strequal(schema_mode, "rfc2307" ) )
+                       ad_map_type = WB_POSIX_MAP_RFC2307;
+               else
+                       DEBUG(0,("idmap_ad_initialize: Unknown schema_mode (%s)\n",
+                                schema_mode));
+       }
+
        dom->private_data = ctx;
 
        talloc_free(config_option);