diff options
author | Rich Megginson <rmeggins@redhat.com> | 2009-07-29 11:15:50 -0600 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2009-07-29 20:18:34 -0600 |
commit | 7c52ad591180095b747f08c92a1550d76c9e9532 (patch) | |
tree | aa3c51ca74401d7bb160c8d996b1667dd67c3d26 /ldap/servers/slapd/slap.h | |
parent | ff6d5df121f3c1db93a8dac7ffe69c96a14ae74a (diff) | |
download | ds-7c52ad591180095b747f08c92a1550d76c9e9532.tar.gz ds-7c52ad591180095b747f08c92a1550d76c9e9532.tar.xz ds-7c52ad591180095b747f08c92a1550d76c9e9532.zip |
Dereference support
This adds support for the newly proposed LDAP Dereference feature (not to
be confused with alias dereferencing). The details of the proposed feature
can be found here:
http://www.openldap.org/devel/cvsweb.cgi/~checkout~/doc/drafts/draft-masarati-ldap-deref-xx.txt
This adds a new deref plugin to the directory server. This is a pre op search
plugin. In order to allow the plugin to rewrite the controls sent back with
each entry, I changed the way pre-search and pre-entry plugins work. They now
have the ability to alter the entry and controls just before being sent back
to the client.
This plugin does not currently support internal operations. It should be easy
to add a call to register the plugin for internal ops if we need to do that.
The code supports real, computed (e.g. memberOf), and virtual attributes
both as the attibute to dereference and in the list of attributes to return
from each dereferenced entry. This will allow us to use attributes such as
nsRole as the derefattr.
Tested on RHEL5 x86_64 with various openldap 2.4.15+ and Net::LDAP clients.
valgrind output is clean
Diffstat (limited to 'ldap/servers/slapd/slap.h')
-rw-r--r-- | ldap/servers/slapd/slap.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h index 6eecd013..af8603db 100644 --- a/ldap/servers/slapd/slap.h +++ b/ldap/servers/slapd/slap.h @@ -1491,6 +1491,8 @@ typedef struct slapi_pblock { */ int pb_plugin_enabled; /* nsslapd-pluginEnabled: on|off */ /* used in plugin init; pb_plugin is not ready, then */ + LDAPControl **pb_search_ctrls; /* for search operations, allows plugins to provide + controls to pass for each entry or referral returned */ } slapi_pblock; /* index if substrlens */ |