LDAPI and AUTOBIND had been implemented some time back, but AUTOBIND did not have an option to enable at the configuration. The following review requests includes 1. introducing the congirutation option --enable-autobind, 2. cleaning up the Directory Server instance creation code to support AUTOBIND, and 3. bug fixes in the non-Linux part of slapd_get_socket_peer.
Also, I added a memo for LDAPI and AutoBind on the fedora project wiki: http://directory.fedoraproject.org/wiki/LDAPI_and_AutoBind
Thanks, --noriko
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Summary: LDAPI: introduce --enable-autobind to support AUTOBIND
https://bugzilla.redhat.com/show_bug.cgi?id=436388
------- Additional Comments From nhosoi@redhat.com 2008-05-09 18:35 EST ------- Created an attachment (id=304990) --> (https://bugzilla.redhat.com/attachment.cgi?id=304990&action=view) cvs diff configure.ac Makefile.am
Files: ldapserver/configure.ac ldapserver/Makefile.am
Description: introduced --enable-autobind By default, autobind is off.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Summary: LDAPI: cleaning up template-ldapi*.ldif files
https://bugzilla.redhat.com/show_bug.cgi?id=436400
------- Additional Comments From nhosoi@redhat.com 2008-05-09 18:52 EST ------- Created an attachment (id=304993) --> (https://bugzilla.redhat.com/attachment.cgi?id=304993&action=view) cvs diff template-ldapi-default.ldif.in DSCreate.pm.in
Files: ldap/ldif/template-ldapi-default.ldif.in ldap/admin/src/scripts/DSCreate.pm.in
Description: LDAPI itself requires these 2 configuration parameters. nsslapd-ldapifilepath: /var/run/slapd-<ID>.socket nsslapd-ldapilisten: on
The rest is needed only when autobind is enabled. Modified DSCreate to generate the following parameters when the DS is configured with --enable-autobind. nsslapd-ldapiautobind: off nsslapd-ldapimaprootdn: cn=Directory Manager nsslapd-ldapimaptoentries: off nsslapd-ldapiuidnumbertype: uidNumber nsslapd-ldapigidnumbertype: gidNumber nsslapd-ldapientrysearchbase: <your_suffix> nsslapd-ldapiautodnsuffix: cn=peercred,cn=external,cn=auth
Fixed nsslapd-ldapientrysearchbase value to set the server's suffix (instead of hardcoded dc=example,dc=com).
template-ldapi-default.ldif.in seems not used. But to reduce the confusion, I updated the file, as well, for the future use.
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Summary: LDAPI: enable all the platform supports for slapd_get_socket_peer and test them
https://bugzilla.redhat.com/show_bug.cgi?id=436390
------- Additional Comments From nhosoi@redhat.com 2008-05-09 19:52 EST ------- Created an attachment (id=304994) --> (https://bugzilla.redhat.com/attachment.cgi?id=304994&action=view) cvs diff slap.h getsocketpeer.c daemon.c
Files: ldap/servers/slapd/slap.h /getsocketpeer.c /daemon.c
Description: Debugged the basic code of slapd_get_socket_peer, which is used for Solaris9 and HP-UX. The recvmsg call returns an error immediately if no data is waiting to be received since the socket is set PR_SockOpt_Nonblocking (O_NONBLOCK). To make slapd_get_socket_peer more robust, we have to retry recvmsg if it returns EAGAIN. But set a retry count not to hang there.
Also introduced c_local_valid in the Connection handle to tell the autobind code that the uid/gid pair is valid or not.
389-devel@lists.fedoraproject.org