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/