[HEADS UP]: OpenLDAP+nss_ldap+nss_modules separated patch and more (SoC)

Michael Bushkov bushman at rsu.ru
Mon Aug 21 06:49:41 UTC 2006

First, thanks to all FreeBSD people and to Google for the great summer!
As the SoC deadline has almost arrived, I'm glad to post most of this 
summer's work results.

OpenLDAP + rewritten-from-scratch nss_ldap + nsswitch with separate 
shared nss-modules patch.
Patch for -current: http://www.rsu.ru/~bushman/soc2006/openldap_merged.diff
Nss_ldap was rewritten to be under BSD license and to support FreeBSD 
specific issues, like pw_class field of struct passwd. It supports 
rfc2307 and have nss_ldap.conf file similar to PADL's nss_ldap. To have 
it in the tree, OpenLDAP was also needed to be placed in the tree.
Separation of nss-modules from libc makes libc more lightweight, and 
makes nsswitch much more general and flexible. It also adds the 
'perform-actual-lookups' option support in the caching daemon (cached) 
for all nsswitch databases. From the developer point of view, one can 
effectively use nsdispatch(3) anywhere (not only in libc). That was 
impossible before.

Nsswitch regression tools patch.
Patch for -current: http://www.rsu.ru/~bushman/soc2006/regression.diff
This is a set of regression tests, that check nsswitch functions 
(getpw***(), getgr**(), getserv**(), etc...) results for correctness. 
There is also a "snapshot" feature. You can, for example, make a 
snapshot of the "services" nsswitch database results on RELENG_6, and 
then check -CURRENT "services" sources implementation to be compatible 
with RELENG_6 implementation using this snapshot.

Updated cached version with 'precache [cachename] yes|no' option added.
Patch for -current: http://www.rsu.ru/~bushman/soc2006/cached.diff
"precache [cachename] yes|no" option can be used for the particular 
cachename with "peform-actual-lookups" option and can significantly 
improve cached (and system) performance for huge databases like 
"services". Note: if the database is really huge, you should also set 
"keep-hot-count" option to the appropriate value.

The detailed description of the above projects can be found here: 
I'll be glad to hear your comments and suggestions on these patches. 
Though, the SoC has almost ended, I will be able to steadily spend my 
time contributing to these projects and (hopefully) to something else.

With best regards,
Michael Bushkov

More information about the freebsd-current mailing list