svn commit: samba r12171 - in trunk/source: include passdb rpc_server

vlendec at samba.org vlendec at samba.org
Sat Dec 10 23:58:06 GMT 2005


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


More information about the samba-cvs mailing list