Author: vlendec Date: 2005-12-10 23:58:04 +0000 (Sat, 10 Dec 2005) New Revision: 12171
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12171 Log: Overhaul lsa_lookup_sids. My recent scalability tests have exposed an XP workstation that asks for the members of "domain admins" and does a lsa_lookupsids on all the members. Three times. Every login. When watching that with pdb_ldap on port 389 it looks *really* nasty. We do a pdb_getpwsid and pdb_getgrsid for every single sid. Not good. Lots of round-trips. This optimizes lsa_lookupsids to first collect all SIDs belonging to a domain and then hands that off to the appropriate lookup_rids function. The next step is to extend winbindd with a lookuprids operation. The lookupsids function I had started was a mistake I think. One place to collect the SIDs for a domain is enough, this is complex enough. lookup_global_sam_sid is now only called in the fallback default pdb_lookup_rids function, thus I made it static in pdb_interface.c. This needs thorough testing. (I really hope nobody does a mass-lookupnames....) Volker Modified: trunk/source/include/smb.h trunk/source/passdb/lookup_sid.c trunk/source/passdb/passdb.c trunk/source/passdb/pdb_interface.c trunk/source/passdb/util_wellknown.c trunk/source/rpc_server/srv_lsa_nt.c Changeset: Sorry, the patch is too large (1049 lines) to include; please use WebSVN to see it! WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=12171
