Author: gd Date: 2006-05-05 15:44:00 +0000 (Fri, 05 May 2006) New Revision: 15460
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=15460 Log: Prefer to use the indexed objectCategory attribute (instead of objectClass which is not indexed on AD) in LDAP queries. Guenther Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c branches/SAMBA_3_0/source/utils/net_ads.c trunk/source/nsswitch/winbindd_ads.c trunk/source/utils/net_ads.c Changeset: Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c =================================================================== --- branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c 2006-05-05 13:57:17 UTC (rev 15459) +++ branches/SAMBA_3_0/source/nsswitch/winbindd_ads.c 2006-05-05 15:44:00 UTC (rev 15460) @@ -173,7 +173,7 @@ goto done; } - rc = ads_search_retry(ads, &res, "(objectClass=user)", attrs); + rc = ads_search_retry(ads, &res, "(objectCategory=user)", attrs); if (!ADS_ERR_OK(rc) || !res) { DEBUG(1,("query_user_list ads_search: %s\n", ads_errstr(rc))); goto done; @@ -552,7 +552,7 @@ /* buggy server, no tokenGroups. Instead lookup what groups this user is a member of by DN search on member*/ - if (!(ldap_exp = talloc_asprintf(mem_ctx, "(&(member=%s)(objectClass=group))", escaped_dn))) { + if (!(ldap_exp = talloc_asprintf(mem_ctx, "(&(member=%s)(objectCategory=group))", escaped_dn))) { DEBUG(1,("lookup_usergroups(dn=%s) asprintf failed!\n", user_dn)); SAFE_FREE(escaped_dn); status = NT_STATUS_NO_MEMORY; Modified: branches/SAMBA_3_0/source/utils/net_ads.c =================================================================== --- branches/SAMBA_3_0/source/utils/net_ads.c 2006-05-05 13:57:17 UTC (rev 15459) +++ branches/SAMBA_3_0/source/utils/net_ads.c 2006-05-05 15:44:00 UTC (rev 15460) @@ -473,7 +473,7 @@ rc = ads_do_search_all_fn(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - "(objectclass=user)", + "(objectCategory=user)", opt_long_list_entries ? longattrs : shortattrs, usergrp_display, disp_fields); @@ -597,7 +597,7 @@ "\n-----------------------------\n"); rc = ads_do_search_all_fn(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - "(objectclass=group)", + "(objectCategory=group)", opt_long_list_entries ? longattrs : shortattrs, usergrp_display, disp_fields); Modified: trunk/source/nsswitch/winbindd_ads.c =================================================================== --- trunk/source/nsswitch/winbindd_ads.c 2006-05-05 13:57:17 UTC (rev 15459) +++ trunk/source/nsswitch/winbindd_ads.c 2006-05-05 15:44:00 UTC (rev 15460) @@ -173,7 +173,7 @@ goto done; } - rc = ads_search_retry(ads, &res, "(objectClass=user)", attrs); + rc = ads_search_retry(ads, &res, "(objectCategory=user)", attrs); if (!ADS_ERR_OK(rc) || !res) { DEBUG(1,("query_user_list ads_search: %s\n", ads_errstr(rc))); goto done; @@ -552,7 +552,7 @@ /* buggy server, no tokenGroups. Instead lookup what groups this user is a member of by DN search on member*/ - if (!(ldap_exp = talloc_asprintf(mem_ctx, "(&(member=%s)(objectClass=group))", escaped_dn))) { + if (!(ldap_exp = talloc_asprintf(mem_ctx, "(&(member=%s)(objectCategory=group))", escaped_dn))) { DEBUG(1,("lookup_usergroups(dn=%s) asprintf failed!\n", user_dn)); SAFE_FREE(escaped_dn); status = NT_STATUS_NO_MEMORY; Modified: trunk/source/utils/net_ads.c =================================================================== --- trunk/source/utils/net_ads.c 2006-05-05 13:57:17 UTC (rev 15459) +++ trunk/source/utils/net_ads.c 2006-05-05 15:44:00 UTC (rev 15460) @@ -473,7 +473,7 @@ rc = ads_do_search_all_fn(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - "(objectclass=user)", + "(objectCategory=user)", opt_long_list_entries ? longattrs : shortattrs, usergrp_display, disp_fields); @@ -597,7 +597,7 @@ "\n-----------------------------\n"); rc = ads_do_search_all_fn(ads, ads->config.bind_path, LDAP_SCOPE_SUBTREE, - "(objectclass=group)", + "(objectCategory=group)", opt_long_list_entries ? longattrs : shortattrs, usergrp_display, disp_fields);
