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);

Reply via email to