Michael Ströder wrote:
> On 12/15/22 20:52, Quanah Gibson-Mount wrote:
>>> https://bugs.openldap.org/show_bug.cgi?id=8983
>>
>> That bug clearly notes it is implemented in OpenLDAP 2.5+
>
> Hmm, as I read ITS#8983 the control encoding has been implemented in libldap
> (see libraries/libldap/psearchctrl.c).
>
> But the original poster asked about the server-side implementation of
> draft-ietf-ldapext-psearch-03. And AFAIK this is *not* implemented in
> OpenLDAP.
git grep shows it is present in the slapd source, but indeed, it is only for
the replication consumer.
head> git grep LDAP_CONTROL_PERSIST
clients/tools/common.c: { LDAP_CONTROL_PERSIST_ENTRY_CHANGE_NOTICE,
TOOL_SEARCH, print_psearch },
clients/tools/common.c: case LDAP_CONTROL_PERSIST_ENTRY_CHANGE_ADD:
clients/tools/common.c: case LDAP_CONTROL_PERSIST_ENTRY_CHANGE_DELETE:
clients/tools/common.c: case LDAP_CONTROL_PERSIST_ENTRY_CHANGE_MODIFY:
clients/tools/common.c: case LDAP_CONTROL_PERSIST_ENTRY_CHANGE_RENAME:
clients/tools/ldapsearch.c: c[i].ldctl_oid =
LDAP_CONTROL_PERSIST_REQUEST;
include/ldap.h:#define LDAP_CONTROL_PERSIST_REQUEST
"2.16.840.1.113730.3.4.3"
include/ldap.h:#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_NOTICE
"2.16.840.1.113730.3.4.7"
include/ldap.h:#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_ADD 0x1
include/ldap.h:#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_DELETE 0x2
include/ldap.h:#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_MODIFY 0x4
include/ldap.h:#define LDAP_CONTROL_PERSIST_ENTRY_CHANGE_RENAME 0x8
libraries/libldap/psearchctrl.c: ld->ld_errno =
ldap_control_create( LDAP_CONTROL_PERSIST_REQUEST,
libraries/libldap/psearchctrl.c:
LDAP_CONTROL_PERSIST_ENTRY_CHANGE_ADD (1),
libraries/libldap/psearchctrl.c:
LDAP_CONTROL_PERSIST_ENTRY_CHANGE_DELETE (2),
libraries/libldap/psearchctrl.c:
LDAP_CONTROL_PERSIST_ENTRY_CHANGE_MODIFY (4), or
libraries/libldap/psearchctrl.c:
LDAP_CONTROL_PERSIST_ENTRY_CHANGE_RENAME (8).
servers/slapd/syncrepl.c: c[0].ldctl_oid =
LDAP_CONTROL_PERSIST_REQUEST;
servers/slapd/syncrepl.c: rc =
ldap_create_persistentsearch_control_value( si->si_ld,
LDAP_CONTROL_PERSIST_ENTRY_CHANGE_ADD,
servers/slapd/syncrepl.c: rctrlp
= ldap_control_find( LDAP_CONTROL_PERSIST_ENTRY_CHANGE_NOTICE, rctrls, &next );
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/