diff -ruN samba-3.0.21c-save/source/sam/idmap_ad.c samba-3.0.21c/source/sam/idmap_ad.c --- samba-3.0.21c-save/source/sam/idmap_ad.c 2006-03-21 14:14:41.000000000 +0000 +++ samba-3.0.21c/source/sam/idmap_ad.c 2006-03-21 16:06:04.000000000 +0000 @@ -46,8 +46,9 @@ return True; } + DEBUG(10,("ad_idmap_check_attr_mapping: checking for rfc2307, sfu\n")); if (use_nss_info("rfc2307")) { - + DEBUG(10,("ad_idmap_check_attr_mapping: rfc2307 selected\n")); if (!ads_check_mapping(ads)) { DEBUG(0,("ad_idmap_check_attr_mapping: failed to check for RFC2307 schema\n")); return False; @@ -57,7 +58,7 @@ attr_gidnumber = SMB_STRDUP(ads->schema.gidnumber_attr); } else if (use_nss_info("sfu")) { - + DEBUG(10,("ad_idmap_check_attr_mapping: sfu selected\n")); if (!ads_check_mapping(ads)) { DEBUG(0,("ad_idmap_check_attr_mapping: failed to check for SFU schema\n")); return False; @@ -67,10 +68,14 @@ attr_gidnumber = SMB_STRDUP(ads->schema.sfu_gidnumber_attr); } else { + DEBUG(10,("ad_idmap_check_attr_mapping: nothing selected\n")); attr_uidnumber = SMB_STRDUP("uidNumber"); attr_gidnumber = SMB_STRDUP("gidNumber"); } + DEBUG(10,("ad_idmap_check_attr_mapping: returning uidnumber = %s, gidnumber = %s\n", + attr_uidnumber, attr_gidnumber)); + return True; } @@ -256,7 +261,7 @@ { ADS_STATUS rc; NTSTATUS status = NT_STATUS_NONE_MAPPED; - char *attrs[] = { "sAMAccountType", attr_uidnumber, attr_gidnumber, NULL }; + char **attrs; void *res = NULL; void *msg = NULL; char *expr = NULL; @@ -266,6 +271,12 @@ int count; ADS_STRUCT *ads; + attrs = (char**)malloc(sizeof(char*)*4); + attrs[0] = "sAMAccountType"; + attrs[1] = attr_uidnumber; + attrs[2] = attr_gidnumber; + attrs[3] = NULL; + if (unid == NULL) { return NT_STATUS_INVALID_PARAMETER; } @@ -282,6 +293,8 @@ return NT_STATUS_NO_MEMORY; } + DEBUG(10,("ad_idmap_get_id_from_sid: fetching %s, %s, %s\n", + attrs[0], attrs[1], attrs[2])); rc = ads_search_retry(ads, &res, expr, (const char **)attrs); free(sidstr); free(expr);