summaryrefslogtreecommitdiffstats
path: root/servers/slapd
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:34:56 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-06-03 05:34:56 +0000
commit3102bdaf142acf3c952310cb620274258492a795 (patch)
tree907e389a831fe1f9dc5d94479d8457584b352434 /servers/slapd
parentAdding debian version 2.6.7+dfsg-1~exp1. (diff)
downloadopenldap-3102bdaf142acf3c952310cb620274258492a795.tar.xz
openldap-3102bdaf142acf3c952310cb620274258492a795.zip
Merging upstream version 2.6.8+dfsg.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'servers/slapd')
-rw-r--r--servers/slapd/Makefile.in2
-rw-r--r--servers/slapd/abandon.c2
-rw-r--r--servers/slapd/aci.c2
-rw-r--r--servers/slapd/acl.c2
-rw-r--r--servers/slapd/aclparse.c2
-rw-r--r--servers/slapd/ad.c2
-rw-r--r--servers/slapd/add.c2
-rw-r--r--servers/slapd/at.c2
-rw-r--r--servers/slapd/attr.c2
-rw-r--r--servers/slapd/ava.c2
-rw-r--r--servers/slapd/back-asyncmeta/Makefile.in2
-rw-r--r--servers/slapd/back-asyncmeta/add.c2
-rw-r--r--servers/slapd/back-asyncmeta/back-asyncmeta.h5
-rw-r--r--servers/slapd/back-asyncmeta/bind.c2
-rw-r--r--servers/slapd/back-asyncmeta/candidates.c2
-rw-r--r--servers/slapd/back-asyncmeta/compare.c2
-rw-r--r--servers/slapd/back-asyncmeta/config.c103
-rw-r--r--servers/slapd/back-asyncmeta/conn.c2
-rw-r--r--servers/slapd/back-asyncmeta/delete.c2
-rw-r--r--servers/slapd/back-asyncmeta/dncache.c2
-rw-r--r--servers/slapd/back-asyncmeta/init.c6
-rw-r--r--servers/slapd/back-asyncmeta/map.c2
-rw-r--r--servers/slapd/back-asyncmeta/message_queue.c2
-rw-r--r--servers/slapd/back-asyncmeta/meta_result.c2
-rw-r--r--servers/slapd/back-asyncmeta/modify.c2
-rw-r--r--servers/slapd/back-asyncmeta/modrdn.c2
-rw-r--r--servers/slapd/back-asyncmeta/proto-asyncmeta.h2
-rw-r--r--servers/slapd/back-asyncmeta/search.c2
-rw-r--r--servers/slapd/back-dnssrv/Makefile.in2
-rw-r--r--servers/slapd/back-dnssrv/bind.c2
-rw-r--r--servers/slapd/back-dnssrv/compare.c2
-rw-r--r--servers/slapd/back-dnssrv/config.c2
-rw-r--r--servers/slapd/back-dnssrv/init.c2
-rw-r--r--servers/slapd/back-dnssrv/proto-dnssrv.h2
-rw-r--r--servers/slapd/back-dnssrv/referral.c2
-rw-r--r--servers/slapd/back-dnssrv/search.c2
-rw-r--r--servers/slapd/back-ldap/Makefile.in2
-rw-r--r--servers/slapd/back-ldap/add.c2
-rw-r--r--servers/slapd/back-ldap/back-ldap.h2
-rw-r--r--servers/slapd/back-ldap/bind.c2
-rw-r--r--servers/slapd/back-ldap/chain.c2
-rw-r--r--servers/slapd/back-ldap/compare.c2
-rw-r--r--servers/slapd/back-ldap/config.c2
-rw-r--r--servers/slapd/back-ldap/delete.c2
-rw-r--r--servers/slapd/back-ldap/distproc.c2
-rw-r--r--servers/slapd/back-ldap/extended.c2
-rw-r--r--servers/slapd/back-ldap/init.c2
-rw-r--r--servers/slapd/back-ldap/modify.c2
-rw-r--r--servers/slapd/back-ldap/modrdn.c2
-rw-r--r--servers/slapd/back-ldap/monitor.c2
-rw-r--r--servers/slapd/back-ldap/pbind.c2
-rw-r--r--servers/slapd/back-ldap/proto-ldap.h2
-rw-r--r--servers/slapd/back-ldap/search.c2
-rw-r--r--servers/slapd/back-ldap/unbind.c2
-rw-r--r--servers/slapd/back-ldif/Makefile.in2
-rw-r--r--servers/slapd/back-ldif/ldif.c2
-rw-r--r--servers/slapd/back-mdb/Makefile.in2
-rw-r--r--servers/slapd/back-mdb/add.c2
-rw-r--r--servers/slapd/back-mdb/attr.c2
-rw-r--r--servers/slapd/back-mdb/back-mdb.h2
-rw-r--r--servers/slapd/back-mdb/bind.c2
-rw-r--r--servers/slapd/back-mdb/compare.c2
-rw-r--r--servers/slapd/back-mdb/config.c2
-rw-r--r--servers/slapd/back-mdb/delete.c2
-rw-r--r--servers/slapd/back-mdb/dn2entry.c2
-rw-r--r--servers/slapd/back-mdb/dn2id.c2
-rw-r--r--servers/slapd/back-mdb/extended.c2
-rw-r--r--servers/slapd/back-mdb/filterindex.c2
-rw-r--r--servers/slapd/back-mdb/id2entry.c2
-rw-r--r--servers/slapd/back-mdb/idl.c2
-rw-r--r--servers/slapd/back-mdb/idl.h2
-rw-r--r--servers/slapd/back-mdb/index.c2
-rw-r--r--servers/slapd/back-mdb/init.c2
-rw-r--r--servers/slapd/back-mdb/key.c2
-rw-r--r--servers/slapd/back-mdb/modify.c2
-rw-r--r--servers/slapd/back-mdb/modrdn.c2
-rw-r--r--servers/slapd/back-mdb/monitor.c2
-rw-r--r--servers/slapd/back-mdb/nextid.c2
-rw-r--r--servers/slapd/back-mdb/operational.c2
-rw-r--r--servers/slapd/back-mdb/proto-mdb.h2
-rw-r--r--servers/slapd/back-mdb/referral.c2
-rw-r--r--servers/slapd/back-mdb/search.c2
-rw-r--r--servers/slapd/back-mdb/tools.c2
-rw-r--r--servers/slapd/back-meta/Makefile.in2
-rw-r--r--servers/slapd/back-meta/add.c14
-rw-r--r--servers/slapd/back-meta/back-meta.h17
-rw-r--r--servers/slapd/back-meta/bind.c19
-rw-r--r--servers/slapd/back-meta/candidates.c6
-rw-r--r--servers/slapd/back-meta/compare.c12
-rw-r--r--servers/slapd/back-meta/config.c75
-rw-r--r--servers/slapd/back-meta/conn.c70
-rw-r--r--servers/slapd/back-meta/delete.c12
-rw-r--r--servers/slapd/back-meta/dncache.c2
-rw-r--r--servers/slapd/back-meta/init.c8
-rw-r--r--servers/slapd/back-meta/map.c2
-rw-r--r--servers/slapd/back-meta/modify.c12
-rw-r--r--servers/slapd/back-meta/modrdn.c12
-rw-r--r--servers/slapd/back-meta/proto-meta.h2
-rw-r--r--servers/slapd/back-meta/search.c12
-rw-r--r--servers/slapd/back-meta/suffixmassage.c2
-rw-r--r--servers/slapd/back-meta/unbind.c2
-rw-r--r--servers/slapd/back-monitor/Makefile.in2
-rw-r--r--servers/slapd/back-monitor/back-monitor.h2
-rw-r--r--servers/slapd/back-monitor/backend.c2
-rw-r--r--servers/slapd/back-monitor/bind.c2
-rw-r--r--servers/slapd/back-monitor/cache.c2
-rw-r--r--servers/slapd/back-monitor/compare.c2
-rw-r--r--servers/slapd/back-monitor/conn.c2
-rw-r--r--servers/slapd/back-monitor/database.c2
-rw-r--r--servers/slapd/back-monitor/entry.c2
-rw-r--r--servers/slapd/back-monitor/init.c2
-rw-r--r--servers/slapd/back-monitor/listener.c2
-rw-r--r--servers/slapd/back-monitor/log.c2
-rw-r--r--servers/slapd/back-monitor/modify.c2
-rw-r--r--servers/slapd/back-monitor/operation.c2
-rw-r--r--servers/slapd/back-monitor/operational.c2
-rw-r--r--servers/slapd/back-monitor/overlay.c2
-rw-r--r--servers/slapd/back-monitor/proto-back-monitor.h2
-rw-r--r--servers/slapd/back-monitor/rww.c2
-rw-r--r--servers/slapd/back-monitor/search.c2
-rw-r--r--servers/slapd/back-monitor/sent.c2
-rw-r--r--servers/slapd/back-monitor/thread.c2
-rw-r--r--servers/slapd/back-monitor/time.c2
-rw-r--r--servers/slapd/back-null/Makefile.in2
-rw-r--r--servers/slapd/back-null/null.c2
-rw-r--r--servers/slapd/back-passwd/Makefile.in2
-rw-r--r--servers/slapd/back-passwd/back-passwd.h2
-rw-r--r--servers/slapd/back-passwd/config.c2
-rw-r--r--servers/slapd/back-passwd/init.c2
-rw-r--r--servers/slapd/back-passwd/proto-passwd.h2
-rw-r--r--servers/slapd/back-passwd/search.c2
-rw-r--r--servers/slapd/back-perl/Makefile.in2
-rw-r--r--servers/slapd/back-perl/SampleLDAP.pm2
-rw-r--r--servers/slapd/back-perl/add.c2
-rw-r--r--servers/slapd/back-perl/asperl_undefs.h2
-rw-r--r--servers/slapd/back-perl/bind.c2
-rw-r--r--servers/slapd/back-perl/close.c2
-rw-r--r--servers/slapd/back-perl/compare.c2
-rw-r--r--servers/slapd/back-perl/config.c2
-rw-r--r--servers/slapd/back-perl/delete.c2
-rw-r--r--servers/slapd/back-perl/init.c2
-rw-r--r--servers/slapd/back-perl/modify.c2
-rw-r--r--servers/slapd/back-perl/modrdn.c2
-rw-r--r--servers/slapd/back-perl/perl_back.h2
-rw-r--r--servers/slapd/back-perl/proto-perl.h2
-rw-r--r--servers/slapd/back-perl/search.c2
-rw-r--r--servers/slapd/back-relay/Makefile.in2
-rw-r--r--servers/slapd/back-relay/back-relay.h2
-rw-r--r--servers/slapd/back-relay/init.c2
-rw-r--r--servers/slapd/back-relay/op.c2
-rw-r--r--servers/slapd/back-relay/proto-back-relay.h2
-rw-r--r--servers/slapd/back-sock/Makefile.in2
-rw-r--r--servers/slapd/back-sock/add.c2
-rw-r--r--servers/slapd/back-sock/back-sock.h2
-rw-r--r--servers/slapd/back-sock/bind.c2
-rw-r--r--servers/slapd/back-sock/compare.c2
-rw-r--r--servers/slapd/back-sock/config.c2
-rw-r--r--servers/slapd/back-sock/delete.c2
-rw-r--r--servers/slapd/back-sock/extended.c2
-rw-r--r--servers/slapd/back-sock/init.c2
-rw-r--r--servers/slapd/back-sock/modify.c2
-rw-r--r--servers/slapd/back-sock/modrdn.c2
-rw-r--r--servers/slapd/back-sock/opensock.c2
-rw-r--r--servers/slapd/back-sock/proto-sock.h2
-rw-r--r--servers/slapd/back-sock/result.c2
-rw-r--r--servers/slapd/back-sock/search.c2
-rw-r--r--servers/slapd/back-sock/searchexample.conf2
-rw-r--r--servers/slapd/back-sock/searchexample.pl2
-rw-r--r--servers/slapd/back-sock/unbind.c2
-rw-r--r--servers/slapd/back-sql/Makefile.in2
-rw-r--r--servers/slapd/back-sql/add.c2
-rw-r--r--servers/slapd/back-sql/api.c2
-rw-r--r--servers/slapd/back-sql/back-sql.h2
-rw-r--r--servers/slapd/back-sql/bind.c2
-rw-r--r--servers/slapd/back-sql/compare.c2
-rw-r--r--servers/slapd/back-sql/config.c2
-rw-r--r--servers/slapd/back-sql/delete.c2
-rw-r--r--servers/slapd/back-sql/entry-id.c2
-rw-r--r--servers/slapd/back-sql/init.c2
-rw-r--r--servers/slapd/back-sql/modify.c2
-rw-r--r--servers/slapd/back-sql/modrdn.c2
-rw-r--r--servers/slapd/back-sql/operational.c2
-rw-r--r--servers/slapd/back-sql/proto-sql.h2
-rw-r--r--servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/Makefile2
-rw-r--r--servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/dnreverse.cpp2
-rw-r--r--servers/slapd/back-sql/schema-map.c2
-rw-r--r--servers/slapd/back-sql/search.c2
-rw-r--r--servers/slapd/back-sql/sql-wrap.c2
-rw-r--r--servers/slapd/back-sql/util.c2
-rw-r--r--servers/slapd/back-wt/Makefile.in2
-rw-r--r--servers/slapd/back-wt/add.c2
-rw-r--r--servers/slapd/back-wt/attr.c2
-rw-r--r--servers/slapd/back-wt/back-wt.h2
-rw-r--r--servers/slapd/back-wt/bind.c2
-rw-r--r--servers/slapd/back-wt/cache.c2
-rw-r--r--servers/slapd/back-wt/compare.c2
-rw-r--r--servers/slapd/back-wt/config.c2
-rw-r--r--servers/slapd/back-wt/ctx.c2
-rw-r--r--servers/slapd/back-wt/delete.c2
-rw-r--r--servers/slapd/back-wt/dn2entry.c2
-rw-r--r--servers/slapd/back-wt/dn2id.c2
-rw-r--r--servers/slapd/back-wt/extended.c2
-rw-r--r--servers/slapd/back-wt/filterindex.c2
-rw-r--r--servers/slapd/back-wt/id2entry.c2
-rw-r--r--servers/slapd/back-wt/idl.c2
-rw-r--r--servers/slapd/back-wt/idl.h2
-rw-r--r--servers/slapd/back-wt/index.c2
-rw-r--r--servers/slapd/back-wt/init.c2
-rw-r--r--servers/slapd/back-wt/key.c2
-rw-r--r--servers/slapd/back-wt/modify.c2
-rw-r--r--servers/slapd/back-wt/modrdn.c2
-rw-r--r--servers/slapd/back-wt/nextid.c2
-rw-r--r--servers/slapd/back-wt/operational.c2
-rw-r--r--servers/slapd/back-wt/proto-wt.h2
-rw-r--r--servers/slapd/back-wt/search.c2
-rw-r--r--servers/slapd/back-wt/tools.c2
-rw-r--r--servers/slapd/backend.c2
-rw-r--r--servers/slapd/backglue.c2
-rw-r--r--servers/slapd/backover.c2
-rw-r--r--servers/slapd/bconfig.c3
-rw-r--r--servers/slapd/bind.c2
-rw-r--r--servers/slapd/cancel.c2
-rw-r--r--servers/slapd/ch_malloc.c2
-rw-r--r--servers/slapd/compare.c2
-rw-r--r--servers/slapd/component.c2
-rw-r--r--servers/slapd/component.h2
-rw-r--r--servers/slapd/config.c4
-rw-r--r--servers/slapd/connection.c2
-rw-r--r--servers/slapd/controls.c2
-rw-r--r--servers/slapd/cr.c2
-rw-r--r--servers/slapd/ctxcsn.c2
-rw-r--r--servers/slapd/daemon.c10
-rw-r--r--servers/slapd/delete.c2
-rw-r--r--servers/slapd/dn.c2
-rw-r--r--servers/slapd/entry.c2
-rw-r--r--servers/slapd/extended.c2
-rw-r--r--servers/slapd/filter.c2
-rw-r--r--servers/slapd/filterentry.c2
-rw-r--r--servers/slapd/frontend.c2
-rw-r--r--servers/slapd/globals.c2
-rw-r--r--servers/slapd/index.c2
-rw-r--r--servers/slapd/init.c2
-rw-r--r--servers/slapd/ldapsync.c2
-rw-r--r--servers/slapd/limits.c2
-rw-r--r--servers/slapd/lock.c2
-rw-r--r--servers/slapd/logging.c53
-rw-r--r--servers/slapd/main.c2
-rw-r--r--servers/slapd/matchedValues.c2
-rw-r--r--servers/slapd/modify.c2
-rw-r--r--servers/slapd/modrdn.c2
-rw-r--r--servers/slapd/mods.c2
-rw-r--r--servers/slapd/module.c2
-rw-r--r--servers/slapd/mr.c2
-rw-r--r--servers/slapd/mra.c2
-rw-r--r--servers/slapd/nt_svc.c2
-rw-r--r--servers/slapd/oc.c2
-rw-r--r--servers/slapd/oidm.c2
-rw-r--r--servers/slapd/operation.c2
-rw-r--r--servers/slapd/operational.c2
-rw-r--r--servers/slapd/overlays/Makefile.in6
-rw-r--r--servers/slapd/overlays/accesslog.c10
-rw-r--r--servers/slapd/overlays/auditlog.c2
-rw-r--r--servers/slapd/overlays/autoca.c2
-rw-r--r--servers/slapd/overlays/collect.c2
-rw-r--r--servers/slapd/overlays/constraint.c3
-rw-r--r--servers/slapd/overlays/dds.c2
-rw-r--r--servers/slapd/overlays/deref.c2
-rw-r--r--servers/slapd/overlays/dyngroup.c4
-rw-r--r--servers/slapd/overlays/dynlist.c5
-rw-r--r--servers/slapd/overlays/homedir.c2
-rw-r--r--servers/slapd/overlays/memberof.c119
-rw-r--r--servers/slapd/overlays/nestgroup.c909
-rw-r--r--servers/slapd/overlays/otp.c2
-rw-r--r--servers/slapd/overlays/overlays.c2
-rw-r--r--servers/slapd/overlays/pcache.c2
-rw-r--r--servers/slapd/overlays/ppolicy.c2
-rw-r--r--servers/slapd/overlays/refint.c3
-rw-r--r--servers/slapd/overlays/remoteauth.c2
-rw-r--r--servers/slapd/overlays/retcode.c2
-rw-r--r--servers/slapd/overlays/rwm.c2
-rw-r--r--servers/slapd/overlays/rwm.h2
-rw-r--r--servers/slapd/overlays/rwmconf.c2
-rw-r--r--servers/slapd/overlays/rwmdn.c2
-rw-r--r--servers/slapd/overlays/rwmmap.c2
-rw-r--r--servers/slapd/overlays/seqmod.c2
-rw-r--r--servers/slapd/overlays/sssvlv.c2
-rw-r--r--servers/slapd/overlays/syncprov.c10
-rw-r--r--servers/slapd/overlays/translucent.c2
-rw-r--r--servers/slapd/overlays/unique.c2
-rw-r--r--servers/slapd/overlays/valsort.c4
-rw-r--r--servers/slapd/passwd.c2
-rw-r--r--servers/slapd/phonetic.c2
-rw-r--r--servers/slapd/proto-slap.h2
-rw-r--r--servers/slapd/proxyp.c2
-rw-r--r--servers/slapd/pwmods/Makefile.in2
-rw-r--r--servers/slapd/pwmods/README.argon22
-rw-r--r--servers/slapd/pwmods/argon2.c2
-rw-r--r--servers/slapd/referral.c2
-rw-r--r--servers/slapd/result.c2
-rw-r--r--servers/slapd/root_dse.c2
-rw-r--r--servers/slapd/sasl.c2
-rw-r--r--servers/slapd/saslauthz.c2
-rw-r--r--servers/slapd/schema.c2
-rw-r--r--servers/slapd/schema/README2
-rw-r--r--servers/slapd/schema/collective.ldif2
-rw-r--r--servers/slapd/schema/corba.ldif2
-rw-r--r--servers/slapd/schema/cosine.ldif2
-rw-r--r--servers/slapd/schema/dsee.ldif2
-rw-r--r--servers/slapd/schema/dsee.schema2
-rw-r--r--servers/slapd/schema/duaconf.ldif2
-rw-r--r--servers/slapd/schema/dyngroup.ldif2
-rw-r--r--servers/slapd/schema/dyngroup.schema2
-rw-r--r--servers/slapd/schema/inetorgperson.ldif2
-rw-r--r--servers/slapd/schema/java.ldif2
-rw-r--r--servers/slapd/schema/misc.ldif2
-rw-r--r--servers/slapd/schema/misc.schema2
-rw-r--r--servers/slapd/schema/msuser.ldif2
-rw-r--r--servers/slapd/schema/msuser.schema2
-rw-r--r--servers/slapd/schema/namedobject.ldif2
-rw-r--r--servers/slapd/schema/nis.ldif2
-rw-r--r--servers/slapd/schema/nis.schema2
-rw-r--r--servers/slapd/schema/openldap.ldif2
-rw-r--r--servers/slapd/schema/openldap.schema2
-rw-r--r--servers/slapd/schema/pmi.ldif2
-rw-r--r--servers/slapd/schema_check.c2
-rw-r--r--servers/slapd/schema_init.c2
-rw-r--r--servers/slapd/schema_prep.c2
-rw-r--r--servers/slapd/schemaparse.c2
-rw-r--r--servers/slapd/search.c2
-rw-r--r--servers/slapd/sets.c2
-rw-r--r--servers/slapd/sets.h2
-rw-r--r--servers/slapd/sl_malloc.c2
-rw-r--r--servers/slapd/slap-cfglog.h2
-rw-r--r--servers/slapd/slap-config.h2
-rw-r--r--servers/slapd/slap.h2
-rw-r--r--servers/slapd/slapacl.c2
-rw-r--r--servers/slapd/slapadd.c2
-rw-r--r--servers/slapd/slapauth.c2
-rw-r--r--servers/slapd/slapcat.c2
-rw-r--r--servers/slapd/slapcommon.c2
-rw-r--r--servers/slapd/slapcommon.h2
-rw-r--r--servers/slapd/slapdn.c2
-rw-r--r--servers/slapd/slapi/Makefile.in2
-rw-r--r--servers/slapd/slapi/plugin.c4
-rw-r--r--servers/slapd/slapi/printmsg.c2
-rw-r--r--servers/slapd/slapi/proto-slapi.h2
-rw-r--r--servers/slapd/slapi/slapi.h2
-rw-r--r--servers/slapd/slapi/slapi_dn.c2
-rw-r--r--servers/slapd/slapi/slapi_ext.c2
-rw-r--r--servers/slapd/slapi/slapi_ops.c2
-rw-r--r--servers/slapd/slapi/slapi_overlay.c2
-rw-r--r--servers/slapd/slapi/slapi_pblock.c2
-rw-r--r--servers/slapd/slapi/slapi_utils.c2
-rw-r--r--servers/slapd/slapindex.c2
-rw-r--r--servers/slapd/slapmodify.c2
-rw-r--r--servers/slapd/slappasswd.c2
-rw-r--r--servers/slapd/slapschema.c2
-rw-r--r--servers/slapd/slaptest.c2
-rw-r--r--servers/slapd/starttls.c2
-rw-r--r--servers/slapd/str2filter.c2
-rw-r--r--servers/slapd/syncrepl.c2
-rw-r--r--servers/slapd/syntax.c2
-rw-r--r--servers/slapd/txn.c2
-rw-r--r--servers/slapd/unbind.c2
-rw-r--r--servers/slapd/user.c2
-rw-r--r--servers/slapd/value.c2
-rw-r--r--servers/slapd/verbs.c2
-rw-r--r--servers/slapd/zn_malloc.c2
368 files changed, 1641 insertions, 565 deletions
diff --git a/servers/slapd/Makefile.in b/servers/slapd/Makefile.in
index a1bc722..6f492a9 100644
--- a/servers/slapd/Makefile.in
+++ b/servers/slapd/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/abandon.c b/servers/slapd/abandon.c
index bec95e2..74cb4a5 100644
--- a/servers/slapd/abandon.c
+++ b/servers/slapd/abandon.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/aci.c b/servers/slapd/aci.c
index c8cc41d..4c14c84 100644
--- a/servers/slapd/aci.c
+++ b/servers/slapd/aci.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/acl.c b/servers/slapd/acl.c
index 4cfa172..f6f0587 100644
--- a/servers/slapd/acl.c
+++ b/servers/slapd/acl.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/aclparse.c b/servers/slapd/aclparse.c
index f08de6a..b41951d 100644
--- a/servers/slapd/aclparse.c
+++ b/servers/slapd/aclparse.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/ad.c b/servers/slapd/ad.c
index 6b643f5..da46cc9 100644
--- a/servers/slapd/ad.c
+++ b/servers/slapd/ad.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/add.c b/servers/slapd/add.c
index 7934d3e..d6029d0 100644
--- a/servers/slapd/add.c
+++ b/servers/slapd/add.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/at.c b/servers/slapd/at.c
index 353a641..c900262 100644
--- a/servers/slapd/at.c
+++ b/servers/slapd/at.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/attr.c b/servers/slapd/attr.c
index 0828a76..dd435f0 100644
--- a/servers/slapd/attr.c
+++ b/servers/slapd/attr.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/ava.c b/servers/slapd/ava.c
index ae9351d..f65f522 100644
--- a/servers/slapd/ava.c
+++ b/servers/slapd/ava.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-asyncmeta/Makefile.in b/servers/slapd/back-asyncmeta/Makefile.in
index c609458..6a375e7 100644
--- a/servers/slapd/back-asyncmeta/Makefile.in
+++ b/servers/slapd/back-asyncmeta/Makefile.in
@@ -2,7 +2,7 @@
## $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2016-2022 The OpenLDAP Foundation.
+## Copyright 2016-2024 The OpenLDAP Foundation.
## Portions Copyright 2016 Symas Corporation.
## All rights reserved.
##
diff --git a/servers/slapd/back-asyncmeta/add.c b/servers/slapd/back-asyncmeta/add.c
index 55277ee..a90322c 100644
--- a/servers/slapd/back-asyncmeta/add.c
+++ b/servers/slapd/back-asyncmeta/add.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/back-asyncmeta.h b/servers/slapd/back-asyncmeta/back-asyncmeta.h
index a5ae6cd..038d2fa 100644
--- a/servers/slapd/back-asyncmeta/back-asyncmeta.h
+++ b/servers/slapd/back-asyncmeta/back-asyncmeta.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
@@ -777,6 +777,9 @@ asyncmeta_db_has_pending_ops(a_metainfo_t *mi);
int
asyncmeta_db_has_mscs(a_metainfo_t *mi);
+void
+asyncmeta_target_free(a_metatarget_t *mt);
+
/* The the maximum time in seconds after a result has been received on a connection,
* after which it can be reset if a sender error occurs. Should this be configurable? */
#define META_BACK_RESULT_INTERVAL (2)
diff --git a/servers/slapd/back-asyncmeta/bind.c b/servers/slapd/back-asyncmeta/bind.c
index 78c0e57..f0dc2a6 100644
--- a/servers/slapd/back-asyncmeta/bind.c
+++ b/servers/slapd/back-asyncmeta/bind.c
@@ -3,7 +3,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/candidates.c b/servers/slapd/back-asyncmeta/candidates.c
index 5f3b228..9e22dc8 100644
--- a/servers/slapd/back-asyncmeta/candidates.c
+++ b/servers/slapd/back-asyncmeta/candidates.c
@@ -3,7 +3,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/compare.c b/servers/slapd/back-asyncmeta/compare.c
index 8f56719..f649433 100644
--- a/servers/slapd/back-asyncmeta/compare.c
+++ b/servers/slapd/back-asyncmeta/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/config.c b/servers/slapd/back-asyncmeta/config.c
index e4cc5ea..9271ba8 100644
--- a/servers/slapd/back-asyncmeta/config.c
+++ b/servers/slapd/back-asyncmeta/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
@@ -496,18 +496,14 @@ asyncmeta_cfadd( Operation *op, SlapReply *rs, Entry *p, ConfigArgs *c )
static int
asyncmeta_back_new_target(
- a_metatarget_t **mtp,
- a_metainfo_t *mi )
+ a_metatarget_t *mt,
+ a_metainfo_t *mi,
+ BackendDB *db )
{
- a_metatarget_t *mt;
-
- *mtp = NULL;
int i;
assert ( mi != NULL );
- mt = ch_calloc( sizeof( a_metatarget_t ), 1 );
-
- ldap_pvt_thread_mutex_init( &mt->mt_uri_mutex );
+ assert ( mt != NULL );
mt->mt_idassert_mode = LDAP_BACK_IDASSERT_LEGACY;
mt->mt_idassert_authmethod = LDAP_AUTH_NONE;
@@ -515,8 +511,9 @@ asyncmeta_back_new_target(
/* by default, use proxyAuthz control on each operation */
mt->mt_idassert_flags = LDAP_BACK_AUTH_PRESCRIPTIVE;
- *mtp = mt;
-
+ if ( !SLAP_DBOPEN(db) || !(slapMode & SLAP_SERVER_MODE)) {
+ return 0;
+ }
for ( i = 0; i < mi->mi_num_conns; i++ ) {
a_metaconn_t *mc = &mi->mi_conns[i];
mc->mc_conns = ch_realloc( mc->mc_conns, sizeof( a_metasingleconn_t ) * mi->mi_ntargets);
@@ -1884,7 +1881,6 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
LDAPURLDesc *ludp;
struct berval dn;
int j;
-
char **uris = NULL;
if ( c->be->be_nsuffix == NULL ) {
@@ -1894,39 +1890,6 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
return 1;
}
- i = mi->mi_ntargets++;
-
- mi->mi_targets = ( a_metatarget_t ** )ch_realloc( mi->mi_targets,
- sizeof( a_metatarget_t * ) * mi->mi_ntargets );
- if ( mi->mi_targets == NULL ) {
- snprintf( c->cr_msg, sizeof( c->cr_msg ),
- "out of memory while storing server name"
- " in \"%s <protocol>://<server>[:port]/<naming context>\"",
- c->argv[0] );
- Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
- return 1;
- }
-
- if ( asyncmeta_back_new_target( &mi->mi_targets[ i ], mi ) != 0 ) {
- snprintf( c->cr_msg, sizeof( c->cr_msg ),
- "unable to init server"
- " in \"%s <protocol>://<server>[:port]/<naming context>\"",
- c->argv[0] );
- Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
- return 1;
- }
-
- mt = mi->mi_targets[ i ];
-
- mt->mt_rebind_f = mi->mi_rebind_f;
- mt->mt_urllist_f = mi->mi_urllist_f;
- mt->mt_urllist_p = mt;
-
- if ( META_BACK_QUARANTINE( mi ) ) {
- ldap_pvt_thread_mutex_init( &mt->mt_quarantine_mutex );
- }
- mt->mt_mc = mi->mi_mc;
-
for ( j = 1; j < c->argc; j++ ) {
char **tmpuris = ldap_str2charray( c->argv[ j ], "\t" );
@@ -1948,6 +1911,8 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
}
}
+ mt = ch_calloc( sizeof( a_metatarget_t ), 1 );
+
for ( j = 0; uris[ j ] != NULL; j++ ) {
char *tmpuri = NULL;
@@ -1964,6 +1929,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
j-1, c->argv[0] );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return 1;
}
@@ -1980,6 +1946,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return 1;
}
@@ -1996,6 +1963,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return( 1 );
}
@@ -2018,6 +1986,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return( 1 );
}
@@ -2029,6 +1998,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return( 1 );
}
@@ -2040,6 +2010,7 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
snprintf( c->cr_msg, sizeof( c->cr_msg ), "no memory?" );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_charray_free( uris );
+ asyncmeta_target_free( mt );
return( 1 );
}
ldap_memfree( uris[ j ] );
@@ -2051,7 +2022,10 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
if ( mt->mt_uri == NULL) {
snprintf( c->cr_msg, sizeof( c->cr_msg ), "no memory?" );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ asyncmeta_target_free( mt );
return( 1 );
+ } else {
+ ldap_pvt_thread_mutex_init( &mt->mt_uri_mutex );
}
/*
@@ -2067,8 +2041,47 @@ asyncmeta_back_cf_gen( ConfigArgs *c )
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"<naming context> of URI must be within the naming context of this database." );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ asyncmeta_target_free( mt );
+ return 1;
+ }
+
+ i = mi->mi_ntargets++;
+
+ mi->mi_targets = ( a_metatarget_t ** )ch_realloc( mi->mi_targets,
+ sizeof( a_metatarget_t * ) * mi->mi_ntargets );
+ if ( mi->mi_targets == NULL ) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "out of memory while storing server name"
+ " in \"%s <protocol>://<server>[:port]/<naming context>\"",
+ c->argv[0] );
+ Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ asyncmeta_target_free( mt );
return 1;
}
+
+ mi->mi_targets[ i ] = mt;
+ if ( asyncmeta_back_new_target( mt, mi, c->be ) != 0 ) {
+ /* does not currently happen, asyncmeta back_new_target always returns 0 */
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "unable to init server"
+ " in \"%s <protocol>://<server>[:port]/<naming context>\"",
+ c->argv[0] );
+ Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ asyncmeta_target_free( mt );
+ mi->mi_ntargets--;
+ return 1;
+ }
+
+
+ mt->mt_rebind_f = mi->mi_rebind_f;
+ mt->mt_urllist_f = mi->mi_urllist_f;
+ mt->mt_urllist_p = mt;
+
+ if ( META_BACK_QUARANTINE( mi ) ) {
+ ldap_pvt_thread_mutex_init( &mt->mt_quarantine_mutex );
+ }
+ mt->mt_mc = mi->mi_mc;
+
c->ca_private = mt;
config_push_cleanup( c, asyncmeta_cf_cleanup );
} break;
diff --git a/servers/slapd/back-asyncmeta/conn.c b/servers/slapd/back-asyncmeta/conn.c
index 19c100e..fd04d70 100644
--- a/servers/slapd/back-asyncmeta/conn.c
+++ b/servers/slapd/back-asyncmeta/conn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/delete.c b/servers/slapd/back-asyncmeta/delete.c
index b85d463..63bd39c 100644
--- a/servers/slapd/back-asyncmeta/delete.c
+++ b/servers/slapd/back-asyncmeta/delete.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/dncache.c b/servers/slapd/back-asyncmeta/dncache.c
index a588290..89f615a 100644
--- a/servers/slapd/back-asyncmeta/dncache.c
+++ b/servers/slapd/back-asyncmeta/dncache.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/init.c b/servers/slapd/back-asyncmeta/init.c
index 2b43958..def4494 100644
--- a/servers/slapd/back-asyncmeta/init.c
+++ b/servers/slapd/back-asyncmeta/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
@@ -275,7 +275,7 @@ asyncmeta_back_db_open(
ber_dupbv ( &mi->mi_suffix, &be->be_suffix[0] );
- if ( mi->mi_ntargets > 0 ) {
+ if ( ( slapMode & SLAP_SERVER_MODE ) && mi->mi_ntargets > 0 ) {
ldap_pvt_thread_mutex_lock( &slapd_rq.rq_mutex );
mi->mi_task = ldap_pvt_runqueue_insert( &slapd_rq, 1,
asyncmeta_timeout_loop, mi, "asyncmeta_timeout_loop", mi->mi_suffix.bv_val );
@@ -325,7 +325,7 @@ asyncmeta_back_clear_miconns( a_metainfo_t *mi )
free(mi->mi_conns);
}
-static void
+void
asyncmeta_target_free(
a_metatarget_t *mt )
{
diff --git a/servers/slapd/back-asyncmeta/map.c b/servers/slapd/back-asyncmeta/map.c
index 66bb8b0..2de4915 100644
--- a/servers/slapd/back-asyncmeta/map.c
+++ b/servers/slapd/back-asyncmeta/map.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/message_queue.c b/servers/slapd/back-asyncmeta/message_queue.c
index 29087c5..3eb704c 100644
--- a/servers/slapd/back-asyncmeta/message_queue.c
+++ b/servers/slapd/back-asyncmeta/message_queue.c
@@ -3,7 +3,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/meta_result.c b/servers/slapd/back-asyncmeta/meta_result.c
index 0ce279a..80a02c8 100644
--- a/servers/slapd/back-asyncmeta/meta_result.c
+++ b/servers/slapd/back-asyncmeta/meta_result.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/modify.c b/servers/slapd/back-asyncmeta/modify.c
index 14105ae..bfa9a6a 100644
--- a/servers/slapd/back-asyncmeta/modify.c
+++ b/servers/slapd/back-asyncmeta/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/modrdn.c b/servers/slapd/back-asyncmeta/modrdn.c
index 6793686..3bbcf78 100644
--- a/servers/slapd/back-asyncmeta/modrdn.c
+++ b/servers/slapd/back-asyncmeta/modrdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/proto-asyncmeta.h b/servers/slapd/back-asyncmeta/proto-asyncmeta.h
index 54041fa..d57855a 100644
--- a/servers/slapd/back-asyncmeta/proto-asyncmeta.h
+++ b/servers/slapd/back-asyncmeta/proto-asyncmeta.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-asyncmeta/search.c b/servers/slapd/back-asyncmeta/search.c
index ab32c48..bf91056 100644
--- a/servers/slapd/back-asyncmeta/search.c
+++ b/servers/slapd/back-asyncmeta/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2016-2022 The OpenLDAP Foundation.
+ * Copyright 2016-2024 The OpenLDAP Foundation.
* Portions Copyright 2016 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/Makefile.in b/servers/slapd/back-dnssrv/Makefile.in
index cf571e0..a88a556 100644
--- a/servers/slapd/back-dnssrv/Makefile.in
+++ b/servers/slapd/back-dnssrv/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## Portions Copyright 1998-2003 Kurt D. Zeilenga.
## All rights reserved.
##
diff --git a/servers/slapd/back-dnssrv/bind.c b/servers/slapd/back-dnssrv/bind.c
index 705c503..974c2b8 100644
--- a/servers/slapd/back-dnssrv/bind.c
+++ b/servers/slapd/back-dnssrv/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/compare.c b/servers/slapd/back-dnssrv/compare.c
index 28a0f6c..c64bb09 100644
--- a/servers/slapd/back-dnssrv/compare.c
+++ b/servers/slapd/back-dnssrv/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/config.c b/servers/slapd/back-dnssrv/config.c
index 32e412e..cf7852e 100644
--- a/servers/slapd/back-dnssrv/config.c
+++ b/servers/slapd/back-dnssrv/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/init.c b/servers/slapd/back-dnssrv/init.c
index a253be7..d086925 100644
--- a/servers/slapd/back-dnssrv/init.c
+++ b/servers/slapd/back-dnssrv/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/proto-dnssrv.h b/servers/slapd/back-dnssrv/proto-dnssrv.h
index 23b01aa..c92faf0 100644
--- a/servers/slapd/back-dnssrv/proto-dnssrv.h
+++ b/servers/slapd/back-dnssrv/proto-dnssrv.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-dnssrv/referral.c b/servers/slapd/back-dnssrv/referral.c
index c3b801a..8a10079 100644
--- a/servers/slapd/back-dnssrv/referral.c
+++ b/servers/slapd/back-dnssrv/referral.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-dnssrv/search.c b/servers/slapd/back-dnssrv/search.c
index 4403248..6f76e9e 100644
--- a/servers/slapd/back-dnssrv/search.c
+++ b/servers/slapd/back-dnssrv/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/back-ldap/Makefile.in b/servers/slapd/back-ldap/Makefile.in
index 4b10d77..0e37e83 100644
--- a/servers/slapd/back-ldap/Makefile.in
+++ b/servers/slapd/back-ldap/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-ldap/add.c b/servers/slapd/back-ldap/add.c
index 32ceda2..3a72179 100644
--- a/servers/slapd/back-ldap/add.c
+++ b/servers/slapd/back-ldap/add.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/back-ldap.h b/servers/slapd/back-ldap/back-ldap.h
index 96bc6f3..d2273b7 100644
--- a/servers/slapd/back-ldap/back-ldap.h
+++ b/servers/slapd/back-ldap/back-ldap.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/bind.c b/servers/slapd/back-ldap/bind.c
index 16a09bf..4afbedb 100644
--- a/servers/slapd/back-ldap/bind.c
+++ b/servers/slapd/back-ldap/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/chain.c b/servers/slapd/back-ldap/chain.c
index fece74d..d1cf9f2 100644
--- a/servers/slapd/back-ldap/chain.c
+++ b/servers/slapd/back-ldap/chain.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/back-ldap/compare.c b/servers/slapd/back-ldap/compare.c
index 1e410db..7f18a5e 100644
--- a/servers/slapd/back-ldap/compare.c
+++ b/servers/slapd/back-ldap/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/config.c b/servers/slapd/back-ldap/config.c
index fb97e8e..57e3d01 100644
--- a/servers/slapd/back-ldap/config.c
+++ b/servers/slapd/back-ldap/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/delete.c b/servers/slapd/back-ldap/delete.c
index 470aa0b..6bf83ad 100644
--- a/servers/slapd/back-ldap/delete.c
+++ b/servers/slapd/back-ldap/delete.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/distproc.c b/servers/slapd/back-ldap/distproc.c
index a2417a3..eea915b 100644
--- a/servers/slapd/back-ldap/distproc.c
+++ b/servers/slapd/back-ldap/distproc.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/back-ldap/extended.c b/servers/slapd/back-ldap/extended.c
index b6f4ec5..61a3663 100644
--- a/servers/slapd/back-ldap/extended.c
+++ b/servers/slapd/back-ldap/extended.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-ldap/init.c b/servers/slapd/back-ldap/init.c
index e2db2a0..8f2f006 100644
--- a/servers/slapd/back-ldap/init.c
+++ b/servers/slapd/back-ldap/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/modify.c b/servers/slapd/back-ldap/modify.c
index 53e8a68..8f42dbc 100644
--- a/servers/slapd/back-ldap/modify.c
+++ b/servers/slapd/back-ldap/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/modrdn.c b/servers/slapd/back-ldap/modrdn.c
index 9c441eb..e3de243 100644
--- a/servers/slapd/back-ldap/modrdn.c
+++ b/servers/slapd/back-ldap/modrdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/monitor.c b/servers/slapd/back-ldap/monitor.c
index 16c2d6f..c4df22d 100644
--- a/servers/slapd/back-ldap/monitor.c
+++ b/servers/slapd/back-ldap/monitor.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/pbind.c b/servers/slapd/back-ldap/pbind.c
index f5841e9..e53d078 100644
--- a/servers/slapd/back-ldap/pbind.c
+++ b/servers/slapd/back-ldap/pbind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003-2010 Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/back-ldap/proto-ldap.h b/servers/slapd/back-ldap/proto-ldap.h
index 445d551..4003b0d 100644
--- a/servers/slapd/back-ldap/proto-ldap.h
+++ b/servers/slapd/back-ldap/proto-ldap.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-ldap/search.c b/servers/slapd/back-ldap/search.c
index 90b5b65..7ff0d32 100644
--- a/servers/slapd/back-ldap/search.c
+++ b/servers/slapd/back-ldap/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldap/unbind.c b/servers/slapd/back-ldap/unbind.c
index 071380e..2c292ff 100644
--- a/servers/slapd/back-ldap/unbind.c
+++ b/servers/slapd/back-ldap/unbind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-ldif/Makefile.in b/servers/slapd/back-ldif/Makefile.in
index 50f2553..c6ac68b 100644
--- a/servers/slapd/back-ldif/Makefile.in
+++ b/servers/slapd/back-ldif/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2005-2022 The OpenLDAP Foundation.
+## Copyright 2005-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-ldif/ldif.c b/servers/slapd/back-ldif/ldif.c
index 2de8b8a..a20095e 100644
--- a/servers/slapd/back-ldif/ldif.c
+++ b/servers/slapd/back-ldif/ldif.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/Makefile.in b/servers/slapd/back-mdb/Makefile.in
index ad38048..1d3a649 100644
--- a/servers/slapd/back-mdb/Makefile.in
+++ b/servers/slapd/back-mdb/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2011-2022 The OpenLDAP Foundation.
+## Copyright 2011-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/add.c b/servers/slapd/back-mdb/add.c
index f1632e2..5b17808 100644
--- a/servers/slapd/back-mdb/add.c
+++ b/servers/slapd/back-mdb/add.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/attr.c b/servers/slapd/back-mdb/attr.c
index 7219705..3ee0a48 100644
--- a/servers/slapd/back-mdb/attr.c
+++ b/servers/slapd/back-mdb/attr.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/back-mdb.h b/servers/slapd/back-mdb/back-mdb.h
index 4dba1a0..e2d7351 100644
--- a/servers/slapd/back-mdb/back-mdb.h
+++ b/servers/slapd/back-mdb/back-mdb.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/bind.c b/servers/slapd/back-mdb/bind.c
index 6df3f2d..a7c08c7 100644
--- a/servers/slapd/back-mdb/bind.c
+++ b/servers/slapd/back-mdb/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/compare.c b/servers/slapd/back-mdb/compare.c
index 10a6ccd..24b8467 100644
--- a/servers/slapd/back-mdb/compare.c
+++ b/servers/slapd/back-mdb/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/config.c b/servers/slapd/back-mdb/config.c
index 8676ac3..0f86f76 100644
--- a/servers/slapd/back-mdb/config.c
+++ b/servers/slapd/back-mdb/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/delete.c b/servers/slapd/back-mdb/delete.c
index d4e6b8d..186127b 100644
--- a/servers/slapd/back-mdb/delete.c
+++ b/servers/slapd/back-mdb/delete.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/dn2entry.c b/servers/slapd/back-mdb/dn2entry.c
index 2262147..c26ac99 100644
--- a/servers/slapd/back-mdb/dn2entry.c
+++ b/servers/slapd/back-mdb/dn2entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/dn2id.c b/servers/slapd/back-mdb/dn2id.c
index 68000ca..06172c2 100644
--- a/servers/slapd/back-mdb/dn2id.c
+++ b/servers/slapd/back-mdb/dn2id.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/extended.c b/servers/slapd/back-mdb/extended.c
index 9ede8b7..24804ff 100644
--- a/servers/slapd/back-mdb/extended.c
+++ b/servers/slapd/back-mdb/extended.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/filterindex.c b/servers/slapd/back-mdb/filterindex.c
index 70cb37b..ed67a78 100644
--- a/servers/slapd/back-mdb/filterindex.c
+++ b/servers/slapd/back-mdb/filterindex.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/id2entry.c b/servers/slapd/back-mdb/id2entry.c
index cfe02f0..bebe07b 100644
--- a/servers/slapd/back-mdb/id2entry.c
+++ b/servers/slapd/back-mdb/id2entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/idl.c b/servers/slapd/back-mdb/idl.c
index c7ffbfa..c433372 100644
--- a/servers/slapd/back-mdb/idl.c
+++ b/servers/slapd/back-mdb/idl.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/idl.h b/servers/slapd/back-mdb/idl.h
index 1405571..02cfd64 100644
--- a/servers/slapd/back-mdb/idl.h
+++ b/servers/slapd/back-mdb/idl.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/index.c b/servers/slapd/back-mdb/index.c
index fa9006c..7dcdb71 100644
--- a/servers/slapd/back-mdb/index.c
+++ b/servers/slapd/back-mdb/index.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/init.c b/servers/slapd/back-mdb/init.c
index 606edbc..02ba8b2 100644
--- a/servers/slapd/back-mdb/init.c
+++ b/servers/slapd/back-mdb/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/key.c b/servers/slapd/back-mdb/key.c
index b0b453b..d55667f 100644
--- a/servers/slapd/back-mdb/key.c
+++ b/servers/slapd/back-mdb/key.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/modify.c b/servers/slapd/back-mdb/modify.c
index f2233e8..0da0890 100644
--- a/servers/slapd/back-mdb/modify.c
+++ b/servers/slapd/back-mdb/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/modrdn.c b/servers/slapd/back-mdb/modrdn.c
index 840812c..41ecb81 100644
--- a/servers/slapd/back-mdb/modrdn.c
+++ b/servers/slapd/back-mdb/modrdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/monitor.c b/servers/slapd/back-mdb/monitor.c
index fc77bc6..e8995df 100644
--- a/servers/slapd/back-mdb/monitor.c
+++ b/servers/slapd/back-mdb/monitor.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/nextid.c b/servers/slapd/back-mdb/nextid.c
index b342b48..4035d01 100644
--- a/servers/slapd/back-mdb/nextid.c
+++ b/servers/slapd/back-mdb/nextid.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/operational.c b/servers/slapd/back-mdb/operational.c
index e2d4495..a01b8c7 100644
--- a/servers/slapd/back-mdb/operational.c
+++ b/servers/slapd/back-mdb/operational.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/proto-mdb.h b/servers/slapd/back-mdb/proto-mdb.h
index 58191e1..e24a6a7 100644
--- a/servers/slapd/back-mdb/proto-mdb.h
+++ b/servers/slapd/back-mdb/proto-mdb.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/referral.c b/servers/slapd/back-mdb/referral.c
index 3164890..ca86f69 100644
--- a/servers/slapd/back-mdb/referral.c
+++ b/servers/slapd/back-mdb/referral.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/search.c b/servers/slapd/back-mdb/search.c
index a3d629c..880aa1a 100644
--- a/servers/slapd/back-mdb/search.c
+++ b/servers/slapd/back-mdb/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-mdb/tools.c b/servers/slapd/back-mdb/tools.c
index 3a468b2..2a94147 100644
--- a/servers/slapd/back-mdb/tools.c
+++ b/servers/slapd/back-mdb/tools.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2011-2022 The OpenLDAP Foundation.
+ * Copyright 2011-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-meta/Makefile.in b/servers/slapd/back-meta/Makefile.in
index 05b7ec7..0279abe 100644
--- a/servers/slapd/back-meta/Makefile.in
+++ b/servers/slapd/back-meta/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-meta/add.c b/servers/slapd/back-meta/add.c
index ec75db1..10adcd7 100644
--- a/servers/slapd/back-meta/add.c
+++ b/servers/slapd/back-meta/add.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -47,15 +47,17 @@ meta_back_add( Operation *op, SlapReply *rs )
int msgid;
ldap_back_send_t retrying = LDAP_BACK_RETRYING;
LDAPControl **ctrls = NULL;
-
+ SlapReply *candidates = NULL;
Debug(LDAP_DEBUG_ARGS, "==> meta_back_add: %s\n",
op->o_req_dn.bv_val );
/*
* get the current connection
*/
- mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR );
- if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR ) ) {
+ candidates = meta_back_candidates_get( op );
+ mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR, candidates );
+ if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR, candidates ) ) {
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
@@ -181,7 +183,7 @@ retry:;
mt->mt_timeout[ SLAP_OP_ADD ], ( LDAP_BACK_SENDRESULT | retrying ) );
if ( rs->sr_err == LDAP_UNAVAILABLE && retrying ) {
retrying &= ~LDAP_BACK_RETRYING;
- if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR ) ) {
+ if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR, candidates ) ) {
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
goto retry;
@@ -205,7 +207,7 @@ done:;
if ( mc ) {
meta_back_release_conn( mi, mc );
}
-
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/back-meta.h b/servers/slapd/back-meta/back-meta.h
index 82b2105..c767fa2 100644
--- a/servers/slapd/back-meta/back-meta.h
+++ b/servers/slapd/back-meta/back-meta.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -489,7 +489,8 @@ meta_back_getconn(
Operation *op,
SlapReply *rs,
int *candidate,
- ldap_back_send_t sendok );
+ ldap_back_send_t sendok,
+ SlapReply *candidates );
extern void
meta_back_release_conn_lock(
@@ -504,7 +505,8 @@ meta_back_retry(
SlapReply *rs,
metaconn_t **mcp,
int candidate,
- ldap_back_send_t sendok );
+ ldap_back_send_t sendok,
+ SlapReply *candidates );
extern void
meta_back_conn_free(
@@ -538,7 +540,8 @@ meta_back_dobind(
Operation *op,
SlapReply *rs,
metaconn_t *mc,
- ldap_back_send_t sendok );
+ ldap_back_send_t sendok,
+ SlapReply *candidates );
extern int
meta_back_single_dobind(
@@ -625,7 +628,8 @@ meta_back_select_unique_candidate(
extern int
meta_clear_unused_candidates(
Operation *op,
- int candidate );
+ int candidate,
+ SlapReply *candidates );
extern int
meta_clear_one_candidate(
@@ -681,6 +685,9 @@ meta_target_finish( metainfo_t *mi, metatarget_t *mt,
const char *log, char *msg, size_t msize
);
+extern void
+meta_back_target_free( metatarget_t *mt );
+
extern LDAP_REBIND_PROC meta_back_default_rebind;
extern LDAP_URLLIST_PROC meta_back_default_urllist;
diff --git a/servers/slapd/back-meta/bind.c b/servers/slapd/back-meta/bind.c
index edfabbb..2fce8dd 100644
--- a/servers/slapd/back-meta/bind.c
+++ b/servers/slapd/back-meta/bind.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -89,10 +89,11 @@ meta_back_bind( Operation *op, SlapReply *rs )
return rs->sr_err;
}
+ candidates = meta_back_candidates_get( op );
/* we need meta_back_getconn() not send result even on error,
* because we want to intercept the error and make it
* invalidCredentials */
- mc = meta_back_getconn( op, rs, NULL, LDAP_BACK_BIND_DONTSEND );
+ mc = meta_back_getconn( op, rs, NULL, LDAP_BACK_BIND_DONTSEND, candidates );
if ( !mc ) {
Debug(LDAP_DEBUG_ANY,
"%s meta_back_bind: no target " "for dn \"%s\" (%d%s%s).\n",
@@ -110,11 +111,10 @@ meta_back_bind( Operation *op, SlapReply *rs )
break;
}
send_ldap_result( op, rs );
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
- candidates = meta_back_candidates_get( op );
-
/*
* Each target is scanned ...
*/
@@ -284,10 +284,12 @@ meta_back_bind( Operation *op, SlapReply *rs )
rs->sr_err = slap_map_api2result( rs );
}
send_ldap_result( op, rs );
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return LDAP_SUCCESS;
}
@@ -672,7 +674,8 @@ meta_back_dobind(
Operation *op,
SlapReply *rs,
metaconn_t *mc,
- ldap_back_send_t sendok )
+ ldap_back_send_t sendok,
+ SlapReply *candidates )
{
metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private;
@@ -680,8 +683,6 @@ meta_back_dobind(
i,
isroot = 0;
- SlapReply *candidates;
-
if ( be_isroot( op ) ) {
isroot = 1;
}
@@ -704,8 +705,6 @@ meta_back_dobind(
goto done;
}
- candidates = meta_back_candidates_get( op );
-
for ( i = 0; i < mi->mi_ntargets; i++ ) {
metatarget_t *mt = mi->mi_targets[ i ];
metasingleconn_t *msc = &mc->mc_conns[ i ];
@@ -761,7 +760,7 @@ retry_binding:;
if ( rc == LDAP_UNAVAILABLE ) {
/* FIXME: meta_back_retry() already re-calls
* meta_back_single_dobind() */
- if ( meta_back_retry( op, rs, &mc, i, sendok ) ) {
+ if ( meta_back_retry( op, rs, &mc, i, sendok, candidates ) ) {
goto retry_ok;
}
diff --git a/servers/slapd/back-meta/candidates.c b/servers/slapd/back-meta/candidates.c
index ffb5992..4baae2e 100644
--- a/servers/slapd/back-meta/candidates.c
+++ b/servers/slapd/back-meta/candidates.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -222,11 +222,11 @@ meta_back_select_unique_candidate(
int
meta_clear_unused_candidates(
Operation *op,
- int candidate )
+ int candidate,
+ SlapReply *candidates )
{
metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private;
int i;
- SlapReply *candidates = meta_back_candidates_get( op );
for ( i = 0; i < mi->mi_ntargets; ++i ) {
if ( i == candidate ) {
diff --git a/servers/slapd/back-meta/compare.c b/servers/slapd/back-meta/compare.c
index f6fd54d..0fdc81c 100644
--- a/servers/slapd/back-meta/compare.c
+++ b/servers/slapd/back-meta/compare.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -46,9 +46,12 @@ meta_back_compare( Operation *op, SlapReply *rs )
int msgid;
ldap_back_send_t retrying = LDAP_BACK_RETRYING;
LDAPControl **ctrls = NULL;
+ SlapReply *candidates = NULL;
- mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR );
- if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR ) ) {
+ candidates = meta_back_candidates_get( op );
+ mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR, candidates );
+ if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR, candidates ) ) {
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
@@ -127,7 +130,7 @@ retry:;
mt->mt_timeout[ SLAP_OP_COMPARE ], ( LDAP_BACK_SENDRESULT | retrying ) );
if ( rs->sr_err == LDAP_UNAVAILABLE && retrying ) {
retrying &= ~LDAP_BACK_RETRYING;
- if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR ) ) {
+ if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR, candidates ) ) {
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
goto retry;
@@ -149,6 +152,7 @@ cleanup:;
meta_back_release_conn( mi, mc );
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/config.c b/servers/slapd/back-meta/config.c
index 6b1e607..8b2cdbe 100644
--- a/servers/slapd/back-meta/config.c
+++ b/servers/slapd/back-meta/config.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -565,16 +565,10 @@ meta_rwi_init( struct rewrite_info **rwm_rw )
static int
meta_back_new_target(
- metatarget_t **mtp )
+ metatarget_t *mt )
{
- metatarget_t *mt;
-
- *mtp = NULL;
-
- mt = ch_calloc( sizeof( metatarget_t ), 1 );
if ( meta_rwi_init( &mt->mt_rwmap.rwm_rw )) {
- ch_free( mt );
return -1;
}
@@ -587,8 +581,6 @@ meta_back_new_target(
/* by default, use proxyAuthz control on each operation */
mt->mt_idassert_flags = LDAP_BACK_AUTH_PRESCRIPTIVE;
- *mtp = mt;
-
return 0;
}
@@ -1960,7 +1952,6 @@ meta_back_cf_gen( ConfigArgs *c )
LDAPURLDesc *ludp;
struct berval dn;
int j;
-
char **uris = NULL;
if ( c->be->be_nsuffix == NULL ) {
@@ -1970,39 +1961,17 @@ meta_back_cf_gen( ConfigArgs *c )
return 1;
}
- i = mi->mi_ntargets++;
-
- mi->mi_targets = ( metatarget_t ** )ch_realloc( mi->mi_targets,
- sizeof( metatarget_t * ) * mi->mi_ntargets );
- if ( mi->mi_targets == NULL ) {
- snprintf( c->cr_msg, sizeof( c->cr_msg ),
- "out of memory while storing server name"
- " in \"%s <protocol>://<server>[:port]/<naming context>\"",
- c->argv[0] );
- Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
- return 1;
- }
-
- if ( meta_back_new_target( &mi->mi_targets[ i ] ) != 0 ) {
+ mt = ch_calloc( sizeof( metatarget_t ), 1 );
+ if ( meta_back_new_target( mt ) != 0 ) {
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"unable to init server"
" in \"%s <protocol>://<server>[:port]/<naming context>\"",
c->argv[0] );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ meta_back_target_free( mt );
return 1;
}
- mt = mi->mi_targets[ i ];
-
- mt->mt_rebind_f = mi->mi_rebind_f;
- mt->mt_urllist_f = mi->mi_urllist_f;
- mt->mt_urllist_p = mt;
-
- if ( META_BACK_QUARANTINE( mi ) ) {
- ldap_pvt_thread_mutex_init( &mt->mt_quarantine_mutex );
- }
- mt->mt_mc = mi->mi_mc;
-
for ( j = 1; j < c->argc; j++ ) {
char **tmpuris = ldap_str2charray( c->argv[ j ], "\t" );
@@ -2012,6 +1981,7 @@ meta_back_cf_gen( ConfigArgs *c )
" in \"%s <protocol>://<server>[:port]/<naming context>\"",
j-1, c->argv[0] );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ meta_back_target_free( mt );
return 1;
}
@@ -2040,6 +2010,7 @@ meta_back_cf_gen( ConfigArgs *c )
j-1, c->argv[0] );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return 1;
}
@@ -2056,6 +2027,7 @@ meta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return 1;
}
@@ -2072,6 +2044,7 @@ meta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return( 1 );
}
@@ -2094,6 +2067,7 @@ meta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return( 1 );
}
@@ -2105,6 +2079,7 @@ meta_back_cf_gen( ConfigArgs *c )
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_free_urllist( ludp );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return( 1 );
}
@@ -2116,6 +2091,7 @@ meta_back_cf_gen( ConfigArgs *c )
snprintf( c->cr_msg, sizeof( c->cr_msg ), "no memory?" );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
ldap_charray_free( uris );
+ meta_back_target_free( mt );
return( 1 );
}
ldap_memfree( uris[ j ] );
@@ -2127,6 +2103,7 @@ meta_back_cf_gen( ConfigArgs *c )
if ( mt->mt_uri == NULL) {
snprintf( c->cr_msg, sizeof( c->cr_msg ), "no memory?" );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ meta_back_target_free( mt );
return( 1 );
}
@@ -2143,8 +2120,34 @@ meta_back_cf_gen( ConfigArgs *c )
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"<naming context> of URI must be within the naming context of this database." );
Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ meta_back_target_free( mt );
return 1;
}
+
+ i = mi->mi_ntargets++;
+
+ mi->mi_targets = ( metatarget_t ** )ch_realloc( mi->mi_targets,
+ sizeof( metatarget_t * ) * mi->mi_ntargets );
+ if ( mi->mi_targets == NULL ) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "out of memory while storing server name"
+ " in \"%s <protocol>://<server>[:port]/<naming context>\"",
+ c->argv[0] );
+ Debug( LDAP_DEBUG_ANY, "%s: %s.\n", c->log, c->cr_msg );
+ meta_back_target_free( mt );
+ return 1;
+ }
+
+ mi->mi_targets[i] = mt;
+ mt->mt_rebind_f = mi->mi_rebind_f;
+ mt->mt_urllist_f = mi->mi_urllist_f;
+ mt->mt_urllist_p = mt;
+
+ if ( META_BACK_QUARANTINE( mi ) ) {
+ ldap_pvt_thread_mutex_init( &mt->mt_quarantine_mutex );
+ }
+
+ mt->mt_mc = mi->mi_mc;
c->ca_private = mt;
config_push_cleanup( c, meta_cf_cleanup );
} break;
diff --git a/servers/slapd/back-meta/conn.c b/servers/slapd/back-meta/conn.c
index 91fdad3..f9a1f23 100644
--- a/servers/slapd/back-meta/conn.c
+++ b/servers/slapd/back-meta/conn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -699,7 +699,8 @@ meta_back_retry(
SlapReply *rs,
metaconn_t **mcp,
int candidate,
- ldap_back_send_t sendok )
+ ldap_back_send_t sendok,
+ SlapReply *candidates )
{
metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private;
metatarget_t *mt = mi->mi_targets[ candidate ];
@@ -971,64 +972,14 @@ meta_back_get_candidate(
return candidate;
}
-static void *meta_back_candidates_dummy;
-
-static void
-meta_back_candidates_keyfree(
- void *key,
- void *data )
-{
- metacandidates_t *mc = (metacandidates_t *)data;
-
- ber_memfree_x( mc->mc_candidates, NULL );
- ber_memfree_x( data, NULL );
-}
-
SlapReply *
meta_back_candidates_get( Operation *op )
{
metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private;
- metacandidates_t *mc;
-
- if ( op->o_threadctx ) {
- void *data = NULL;
-
- ldap_pvt_thread_pool_getkey( op->o_threadctx,
- &meta_back_candidates_dummy, &data, NULL );
- mc = (metacandidates_t *)data;
+ SlapReply *candidates;
- } else {
- mc = mi->mi_candidates;
- }
-
- if ( mc == NULL ) {
- mc = ch_calloc( sizeof( metacandidates_t ), 1 );
- mc->mc_ntargets = mi->mi_ntargets;
- mc->mc_candidates = ch_calloc( sizeof( SlapReply ), mc->mc_ntargets );
- if ( op->o_threadctx ) {
- void *data = NULL;
-
- data = (void *)mc;
- ldap_pvt_thread_pool_setkey( op->o_threadctx,
- &meta_back_candidates_dummy, data,
- meta_back_candidates_keyfree,
- NULL, NULL );
-
- } else {
- mi->mi_candidates = mc;
- }
-
- } else if ( mc->mc_ntargets < mi->mi_ntargets ) {
- /* NOTE: in the future, may want to allow back-config
- * to add/remove targets from back-meta... */
- mc->mc_candidates = ch_realloc( mc->mc_candidates,
- sizeof( SlapReply ) * mi->mi_ntargets );
- memset( &mc->mc_candidates[ mc->mc_ntargets ], 0,
- sizeof( SlapReply ) * ( mi->mi_ntargets - mc->mc_ntargets ) );
- mc->mc_ntargets = mi->mi_ntargets;
- }
-
- return mc->mc_candidates;
+ candidates = op->o_tmpcalloc( mi->mi_ntargets, sizeof( SlapReply ), op->o_tmpmemctx );
+ return candidates;
}
/*
@@ -1066,10 +1017,11 @@ meta_back_candidates_get( Operation *op )
*/
metaconn_t *
meta_back_getconn(
- Operation *op,
+ Operation *op,
SlapReply *rs,
int *candidate,
- ldap_back_send_t sendok )
+ ldap_back_send_t sendok,
+ SlapReply *candidates )
{
metainfo_t *mi = ( metainfo_t * )op->o_bd->be_private;
metaconn_t *mc = NULL,
@@ -1090,8 +1042,6 @@ meta_back_getconn(
struct berval ndn = op->o_req_ndn,
pndn;
- SlapReply *candidates = meta_back_candidates_get( op );
-
/* Internal searches are privileged and shared. So is root. */
if ( ( !BER_BVISEMPTY( &op->o_ndn ) && META_BACK_PROXYAUTHZ_ALWAYS( mi ) )
|| ( BER_BVISEMPTY( &op->o_ndn ) && META_BACK_PROXYAUTHZ_ANON( mi ) )
@@ -1474,7 +1424,7 @@ retry_lock2:;
/*
* Clear all other candidates
*/
- ( void )meta_clear_unused_candidates( op, i );
+ ( void )meta_clear_unused_candidates( op, i, candidates );
mt = mi->mi_targets[ i ];
msc = &mc->mc_conns[ i ];
diff --git a/servers/slapd/back-meta/delete.c b/servers/slapd/back-meta/delete.c
index bec437a..6174e44 100644
--- a/servers/slapd/back-meta/delete.c
+++ b/servers/slapd/back-meta/delete.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -43,9 +43,12 @@ meta_back_delete( Operation *op, SlapReply *rs )
int msgid;
ldap_back_send_t retrying = LDAP_BACK_RETRYING;
LDAPControl **ctrls = NULL;
+ SlapReply *candidates = NULL;
- mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR );
- if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR ) ) {
+ candidates = meta_back_candidates_get( op );
+ mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR, candidates );
+ if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR, candidates ) ) {
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
@@ -79,7 +82,7 @@ retry:;
mt->mt_timeout[ SLAP_OP_DELETE ], ( LDAP_BACK_SENDRESULT | retrying ) );
if ( rs->sr_err == LDAP_UNAVAILABLE && retrying ) {
retrying &= ~LDAP_BACK_RETRYING;
- if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR ) ) {
+ if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR, candidates ) ) {
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
goto retry;
@@ -98,6 +101,7 @@ cleanup:;
meta_back_release_conn( mi, mc );
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/dncache.c b/servers/slapd/back-meta/dncache.c
index a3e7958..2781b8c 100644
--- a/servers/slapd/back-meta/dncache.c
+++ b/servers/slapd/back-meta/dncache.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-meta/init.c b/servers/slapd/back-meta/init.c
index 8639109..08890a7 100644
--- a/servers/slapd/back-meta/init.c
+++ b/servers/slapd/back-meta/init.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -326,8 +326,8 @@ meta_back_map_free( struct ldapmap *lm )
lm->map = NULL;
}
-static void
-target_free(
+void
+meta_back_target_free(
metatarget_t *mt )
{
if ( mt->mt_uri ) {
@@ -433,7 +433,7 @@ meta_back_db_destroy(
ldap_pvt_thread_mutex_destroy( &mt->mt_quarantine_mutex );
}
- target_free( mt );
+ meta_back_target_free( mt );
}
free( mi->mi_targets );
diff --git a/servers/slapd/back-meta/map.c b/servers/slapd/back-meta/map.c
index 6591341..b606d70 100644
--- a/servers/slapd/back-meta/map.c
+++ b/servers/slapd/back-meta/map.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-meta/modify.c b/servers/slapd/back-meta/modify.c
index 459e835..9485eee 100644
--- a/servers/slapd/back-meta/modify.c
+++ b/servers/slapd/back-meta/modify.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -49,9 +49,12 @@ meta_back_modify( Operation *op, SlapReply *rs )
int msgid;
ldap_back_send_t retrying = LDAP_BACK_RETRYING;
LDAPControl **ctrls = NULL;
+ SlapReply *candidates = NULL;
- mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR );
- if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR ) ) {
+ candidates = meta_back_candidates_get( op );
+ mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR, candidates );
+ if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR, candidates ) ) {
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
@@ -180,7 +183,7 @@ retry:;
mt->mt_timeout[ SLAP_OP_MODIFY ], ( LDAP_BACK_SENDRESULT | retrying ) );
if ( rs->sr_err == LDAP_UNAVAILABLE && retrying ) {
retrying &= ~LDAP_BACK_RETRYING;
- if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR ) ) {
+ if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR, candidates ) ) {
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
goto retry;
@@ -205,6 +208,7 @@ cleanup:;
meta_back_release_conn( mi, mc );
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/modrdn.c b/servers/slapd/back-meta/modrdn.c
index cf6e1be..818ac37 100644
--- a/servers/slapd/back-meta/modrdn.c
+++ b/servers/slapd/back-meta/modrdn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -45,9 +45,12 @@ meta_back_modrdn( Operation *op, SlapReply *rs )
ldap_back_send_t retrying = LDAP_BACK_RETRYING;
LDAPControl **ctrls = NULL;
struct berval newrdn = BER_BVNULL;
+ SlapReply *candidates = NULL;
- mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR );
- if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR ) ) {
+ candidates = meta_back_candidates_get( op );
+ mc = meta_back_getconn( op, rs, &candidate, LDAP_BACK_SENDERR, candidates );
+ if ( !mc || !meta_back_dobind( op, rs, mc, LDAP_BACK_SENDERR, candidates ) ) {
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
@@ -142,7 +145,7 @@ retry:;
mt->mt_timeout[ SLAP_OP_MODRDN ], ( LDAP_BACK_SENDRESULT | retrying ) );
if ( rs->sr_err == LDAP_UNAVAILABLE && retrying ) {
retrying &= ~LDAP_BACK_RETRYING;
- if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR ) ) {
+ if ( meta_back_retry( op, rs, &mc, candidate, LDAP_BACK_SENDERR, candidates ) ) {
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
goto retry;
@@ -172,6 +175,7 @@ cleanup:;
meta_back_release_conn( mi, mc );
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/proto-meta.h b/servers/slapd/back-meta/proto-meta.h
index f6c16b2..e299ce3 100644
--- a/servers/slapd/back-meta/proto-meta.h
+++ b/servers/slapd/back-meta/proto-meta.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-meta/search.c b/servers/slapd/back-meta/search.c
index cfd2f4b..fd4407d 100644
--- a/servers/slapd/back-meta/search.c
+++ b/servers/slapd/back-meta/search.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
@@ -177,7 +177,6 @@ meta_search_dobind_init(
/* NOTE: this obsoletes pseudorootdn */
if ( op->o_conn != NULL &&
- !op->o_do_not_cache &&
( BER_BVISNULL( &msc->msc_bound_ndn ) ||
BER_BVISEMPTY( &msc->msc_bound_ndn ) ||
( mt->mt_idassert_flags & LDAP_BACK_AUTH_OVERRIDE ) ) )
@@ -723,7 +722,7 @@ retry:;
break;
case LDAP_SERVER_DOWN:
- if ( nretries && meta_back_retry( op, rs, mcp, candidate, LDAP_BACK_DONTSEND ) ) {
+ if ( nretries && meta_back_retry( op, rs, mcp, candidate, LDAP_BACK_DONTSEND, candidates ) ) {
nretries = 0;
/* if the identity changed, there might be need to re-authz */
(void)mi->mi_ldap_extra->controls_free( op, rs, &ctrls );
@@ -799,8 +798,9 @@ meta_back_search( Operation *op, SlapReply *rs )
* FIXME: in case of values return filter, we might want
* to map attrs and maybe rewrite value
*/
+ candidates = meta_back_candidates_get( op );
getconn:;
- mc = meta_back_getconn( op, rs, NULL, sendok );
+ mc = meta_back_getconn( op, rs, NULL, sendok, candidates );
if ( !mc ) {
return rs->sr_err;
}
@@ -808,7 +808,6 @@ getconn:;
dc.conn = op->o_conn;
dc.rs = rs;
- if ( candidates == NULL ) candidates = meta_back_candidates_get( op );
/*
* Inits searches
*/
@@ -1147,7 +1146,7 @@ really_bad:;
if ( candidates[ i ].sr_type == REP_INTERMEDIATE ) {
candidates[ i ].sr_type = REP_RESULT;
- if ( meta_back_retry( op, rs, &mc, i, LDAP_BACK_DONTSEND ) ) {
+ if ( meta_back_retry( op, rs, &mc, i, LDAP_BACK_DONTSEND, candidates ) ) {
candidates[ i ].sr_msgid = META_MSGID_IGNORE;
switch ( meta_back_search_start( op, rs, &dc, &mc, i, candidates, NULL, 0 ) )
{
@@ -1998,6 +1997,7 @@ finish:;
ldap_pvt_thread_mutex_unlock( &mi->mi_conninfo.lai_mutex );
}
+ op->o_tmpfree( candidates, op->o_tmpmemctx );
return rs->sr_err;
}
diff --git a/servers/slapd/back-meta/suffixmassage.c b/servers/slapd/back-meta/suffixmassage.c
index 8d0b5e7..26be544 100644
--- a/servers/slapd/back-meta/suffixmassage.c
+++ b/servers/slapd/back-meta/suffixmassage.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-meta/unbind.c b/servers/slapd/back-meta/unbind.c
index 6c2928d..2c5720b 100644
--- a/servers/slapd/back-meta/unbind.c
+++ b/servers/slapd/back-meta/unbind.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* Portions Copyright 1999-2003 Howard Chu.
* All rights reserved.
diff --git a/servers/slapd/back-monitor/Makefile.in b/servers/slapd/back-monitor/Makefile.in
index e3b30a0..426365d 100644
--- a/servers/slapd/back-monitor/Makefile.in
+++ b/servers/slapd/back-monitor/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-monitor/back-monitor.h b/servers/slapd/back-monitor/back-monitor.h
index 27966d7..30851af 100644
--- a/servers/slapd/back-monitor/back-monitor.h
+++ b/servers/slapd/back-monitor/back-monitor.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/backend.c b/servers/slapd/back-monitor/backend.c
index d3afdf1..fc428a7 100644
--- a/servers/slapd/back-monitor/backend.c
+++ b/servers/slapd/back-monitor/backend.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/bind.c b/servers/slapd/back-monitor/bind.c
index 718c001..f9b9166 100644
--- a/servers/slapd/back-monitor/bind.c
+++ b/servers/slapd/back-monitor/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/cache.c b/servers/slapd/back-monitor/cache.c
index 990c88e..8598f87 100644
--- a/servers/slapd/back-monitor/cache.c
+++ b/servers/slapd/back-monitor/cache.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/compare.c b/servers/slapd/back-monitor/compare.c
index e17b4f1..21cbeb9 100644
--- a/servers/slapd/back-monitor/compare.c
+++ b/servers/slapd/back-monitor/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/conn.c b/servers/slapd/back-monitor/conn.c
index adfb626..2c24708 100644
--- a/servers/slapd/back-monitor/conn.c
+++ b/servers/slapd/back-monitor/conn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/database.c b/servers/slapd/back-monitor/database.c
index dc1100d..d2aec13 100644
--- a/servers/slapd/back-monitor/database.c
+++ b/servers/slapd/back-monitor/database.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/entry.c b/servers/slapd/back-monitor/entry.c
index 027dcc3..d83f9c9 100644
--- a/servers/slapd/back-monitor/entry.c
+++ b/servers/slapd/back-monitor/entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c
index af79fb4..84e59a9 100644
--- a/servers/slapd/back-monitor/init.c
+++ b/servers/slapd/back-monitor/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/listener.c b/servers/slapd/back-monitor/listener.c
index 18e5d01..63ab3b9 100644
--- a/servers/slapd/back-monitor/listener.c
+++ b/servers/slapd/back-monitor/listener.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/log.c b/servers/slapd/back-monitor/log.c
index c3d7d53..c8e56bf 100644
--- a/servers/slapd/back-monitor/log.c
+++ b/servers/slapd/back-monitor/log.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/modify.c b/servers/slapd/back-monitor/modify.c
index bc6543f..c0567fc 100644
--- a/servers/slapd/back-monitor/modify.c
+++ b/servers/slapd/back-monitor/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/operation.c b/servers/slapd/back-monitor/operation.c
index 921ee95..c850772 100644
--- a/servers/slapd/back-monitor/operation.c
+++ b/servers/slapd/back-monitor/operation.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/operational.c b/servers/slapd/back-monitor/operational.c
index 994b254..cb07c80 100644
--- a/servers/slapd/back-monitor/operational.c
+++ b/servers/slapd/back-monitor/operational.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/overlay.c b/servers/slapd/back-monitor/overlay.c
index aac6767..ab631db 100644
--- a/servers/slapd/back-monitor/overlay.c
+++ b/servers/slapd/back-monitor/overlay.c
@@ -1,7 +1,7 @@
/* overlay.c - deals with overlay subsystem */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/proto-back-monitor.h b/servers/slapd/back-monitor/proto-back-monitor.h
index 662ac6d..71e0834 100644
--- a/servers/slapd/back-monitor/proto-back-monitor.h
+++ b/servers/slapd/back-monitor/proto-back-monitor.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/rww.c b/servers/slapd/back-monitor/rww.c
index db1b318..90c09b2 100644
--- a/servers/slapd/back-monitor/rww.c
+++ b/servers/slapd/back-monitor/rww.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/search.c b/servers/slapd/back-monitor/search.c
index f58ff11..9a0653d 100644
--- a/servers/slapd/back-monitor/search.c
+++ b/servers/slapd/back-monitor/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/sent.c b/servers/slapd/back-monitor/sent.c
index 24cc3b6..a99136e 100644
--- a/servers/slapd/back-monitor/sent.c
+++ b/servers/slapd/back-monitor/sent.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/thread.c b/servers/slapd/back-monitor/thread.c
index a29a875..d79eeb3 100644
--- a/servers/slapd/back-monitor/thread.c
+++ b/servers/slapd/back-monitor/thread.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-monitor/time.c b/servers/slapd/back-monitor/time.c
index 53e0ac6..92041af 100644
--- a/servers/slapd/back-monitor/time.c
+++ b/servers/slapd/back-monitor/time.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* Portions Copyright 2001-2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-null/Makefile.in b/servers/slapd/back-null/Makefile.in
index 707c780..1ef6116 100644
--- a/servers/slapd/back-null/Makefile.in
+++ b/servers/slapd/back-null/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-null/null.c b/servers/slapd/back-null/null.c
index c8d3292..04f5447 100644
--- a/servers/slapd/back-null/null.c
+++ b/servers/slapd/back-null/null.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/Makefile.in b/servers/slapd/back-passwd/Makefile.in
index 937cf88..91ea524 100644
--- a/servers/slapd/back-passwd/Makefile.in
+++ b/servers/slapd/back-passwd/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/back-passwd.h b/servers/slapd/back-passwd/back-passwd.h
index d1957cc..f697702 100644
--- a/servers/slapd/back-passwd/back-passwd.h
+++ b/servers/slapd/back-passwd/back-passwd.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/config.c b/servers/slapd/back-passwd/config.c
index 9168e4b..116283f 100644
--- a/servers/slapd/back-passwd/config.c
+++ b/servers/slapd/back-passwd/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/init.c b/servers/slapd/back-passwd/init.c
index b855c15..c0ed3f6 100644
--- a/servers/slapd/back-passwd/init.c
+++ b/servers/slapd/back-passwd/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/proto-passwd.h b/servers/slapd/back-passwd/proto-passwd.h
index 96bc73e..1ff8482 100644
--- a/servers/slapd/back-passwd/proto-passwd.h
+++ b/servers/slapd/back-passwd/proto-passwd.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-passwd/search.c b/servers/slapd/back-passwd/search.c
index 19d847c..6354e39 100644
--- a/servers/slapd/back-passwd/search.c
+++ b/servers/slapd/back-passwd/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-perl/Makefile.in b/servers/slapd/back-perl/Makefile.in
index 3fed1e3..1f27e55 100644
--- a/servers/slapd/back-perl/Makefile.in
+++ b/servers/slapd/back-perl/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## Portions Copyright 1999 John C. Quillan.
## All rights reserved.
##
diff --git a/servers/slapd/back-perl/SampleLDAP.pm b/servers/slapd/back-perl/SampleLDAP.pm
index 91e9ae3..3746fce 100644
--- a/servers/slapd/back-perl/SampleLDAP.pm
+++ b/servers/slapd/back-perl/SampleLDAP.pm
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## Portions Copyright 1999 John C. Quillan.
## All rights reserved.
##
diff --git a/servers/slapd/back-perl/add.c b/servers/slapd/back-perl/add.c
index 2e6cd5c..3e64f34 100644
--- a/servers/slapd/back-perl/add.c
+++ b/servers/slapd/back-perl/add.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/asperl_undefs.h b/servers/slapd/back-perl/asperl_undefs.h
index 80a9243..874d4dc 100644
--- a/servers/slapd/back-perl/asperl_undefs.h
+++ b/servers/slapd/back-perl/asperl_undefs.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-perl/bind.c b/servers/slapd/back-perl/bind.c
index 915c911..1f4220f 100644
--- a/servers/slapd/back-perl/bind.c
+++ b/servers/slapd/back-perl/bind.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/close.c b/servers/slapd/back-perl/close.c
index 88b0a2f..e380b3b 100644
--- a/servers/slapd/back-perl/close.c
+++ b/servers/slapd/back-perl/close.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/compare.c b/servers/slapd/back-perl/compare.c
index 08e62c9..83ee631 100644
--- a/servers/slapd/back-perl/compare.c
+++ b/servers/slapd/back-perl/compare.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/config.c b/servers/slapd/back-perl/config.c
index 21f198b..e9f56cf 100644
--- a/servers/slapd/back-perl/config.c
+++ b/servers/slapd/back-perl/config.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/delete.c b/servers/slapd/back-perl/delete.c
index 68c1b3a..c18c27b 100644
--- a/servers/slapd/back-perl/delete.c
+++ b/servers/slapd/back-perl/delete.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/init.c b/servers/slapd/back-perl/init.c
index 644c855..2e80ecc 100644
--- a/servers/slapd/back-perl/init.c
+++ b/servers/slapd/back-perl/init.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/modify.c b/servers/slapd/back-perl/modify.c
index 94fed62..43dfb76 100644
--- a/servers/slapd/back-perl/modify.c
+++ b/servers/slapd/back-perl/modify.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/modrdn.c b/servers/slapd/back-perl/modrdn.c
index 4f2dc81..c47bcf2 100644
--- a/servers/slapd/back-perl/modrdn.c
+++ b/servers/slapd/back-perl/modrdn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/perl_back.h b/servers/slapd/back-perl/perl_back.h
index 9446c2d..ec07e6d 100644
--- a/servers/slapd/back-perl/perl_back.h
+++ b/servers/slapd/back-perl/perl_back.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/proto-perl.h b/servers/slapd/back-perl/proto-perl.h
index b6cb387..46491c1 100644
--- a/servers/slapd/back-perl/proto-perl.h
+++ b/servers/slapd/back-perl/proto-perl.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-perl/search.c b/servers/slapd/back-perl/search.c
index 7566b06..86e8bc3 100644
--- a/servers/slapd/back-perl/search.c
+++ b/servers/slapd/back-perl/search.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 John C. Quillan.
* Portions Copyright 2002 myinternet Limited.
* All rights reserved.
diff --git a/servers/slapd/back-relay/Makefile.in b/servers/slapd/back-relay/Makefile.in
index 5f111bc..1bca50b 100644
--- a/servers/slapd/back-relay/Makefile.in
+++ b/servers/slapd/back-relay/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-relay/back-relay.h b/servers/slapd/back-relay/back-relay.h
index e5c0e17..a458f42 100644
--- a/servers/slapd/back-relay/back-relay.h
+++ b/servers/slapd/back-relay/back-relay.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-relay/init.c b/servers/slapd/back-relay/init.c
index efad958..f1fb6c3 100644
--- a/servers/slapd/back-relay/init.c
+++ b/servers/slapd/back-relay/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-relay/op.c b/servers/slapd/back-relay/op.c
index 40e9e88..078001b 100644
--- a/servers/slapd/back-relay/op.c
+++ b/servers/slapd/back-relay/op.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-relay/proto-back-relay.h b/servers/slapd/back-relay/proto-back-relay.h
index 854be4e..7c11ff4 100644
--- a/servers/slapd/back-relay/proto-back-relay.h
+++ b/servers/slapd/back-relay/proto-back-relay.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/back-sock/Makefile.in b/servers/slapd/back-sock/Makefile.in
index 1db07bf..7930cbe 100644
--- a/servers/slapd/back-sock/Makefile.in
+++ b/servers/slapd/back-sock/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2007-2022 The OpenLDAP Foundation.
+## Copyright 2007-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/add.c b/servers/slapd/back-sock/add.c
index 0e96d95..5566779 100644
--- a/servers/slapd/back-sock/add.c
+++ b/servers/slapd/back-sock/add.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/back-sock.h b/servers/slapd/back-sock/back-sock.h
index 55dbe75..31f1c25 100644
--- a/servers/slapd/back-sock/back-sock.h
+++ b/servers/slapd/back-sock/back-sock.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/bind.c b/servers/slapd/back-sock/bind.c
index 8e8ec97..87bf15b 100644
--- a/servers/slapd/back-sock/bind.c
+++ b/servers/slapd/back-sock/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/compare.c b/servers/slapd/back-sock/compare.c
index 735e688..f13a90d 100644
--- a/servers/slapd/back-sock/compare.c
+++ b/servers/slapd/back-sock/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/config.c b/servers/slapd/back-sock/config.c
index e6d3183..c23e20a 100644
--- a/servers/slapd/back-sock/config.c
+++ b/servers/slapd/back-sock/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/delete.c b/servers/slapd/back-sock/delete.c
index 89a268f..ce0aa55 100644
--- a/servers/slapd/back-sock/delete.c
+++ b/servers/slapd/back-sock/delete.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/extended.c b/servers/slapd/back-sock/extended.c
index e065761..8c4e06e 100644
--- a/servers/slapd/back-sock/extended.c
+++ b/servers/slapd/back-sock/extended.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/init.c b/servers/slapd/back-sock/init.c
index 02b7bc8..963229c 100644
--- a/servers/slapd/back-sock/init.c
+++ b/servers/slapd/back-sock/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/modify.c b/servers/slapd/back-sock/modify.c
index a5ec012..b7ebceb 100644
--- a/servers/slapd/back-sock/modify.c
+++ b/servers/slapd/back-sock/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/modrdn.c b/servers/slapd/back-sock/modrdn.c
index c5a9195..61967f6 100644
--- a/servers/slapd/back-sock/modrdn.c
+++ b/servers/slapd/back-sock/modrdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/opensock.c b/servers/slapd/back-sock/opensock.c
index 9b4826d..838f909 100644
--- a/servers/slapd/back-sock/opensock.c
+++ b/servers/slapd/back-sock/opensock.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/proto-sock.h b/servers/slapd/back-sock/proto-sock.h
index 0808329..7a2a2e2 100644
--- a/servers/slapd/back-sock/proto-sock.h
+++ b/servers/slapd/back-sock/proto-sock.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/result.c b/servers/slapd/back-sock/result.c
index 55a4060..f4b366f 100644
--- a/servers/slapd/back-sock/result.c
+++ b/servers/slapd/back-sock/result.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/search.c b/servers/slapd/back-sock/search.c
index 9812e99..44cc130 100644
--- a/servers/slapd/back-sock/search.c
+++ b/servers/slapd/back-sock/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/searchexample.conf b/servers/slapd/back-sock/searchexample.conf
index 842d6aa..2b1b320 100644
--- a/servers/slapd/back-sock/searchexample.conf
+++ b/servers/slapd/back-sock/searchexample.conf
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2007-2022 The OpenLDAP Foundation.
+## Copyright 2007-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/searchexample.pl b/servers/slapd/back-sock/searchexample.pl
index f867005..f600025 100644
--- a/servers/slapd/back-sock/searchexample.pl
+++ b/servers/slapd/back-sock/searchexample.pl
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2007-2022 The OpenLDAP Foundation.
+## Copyright 2007-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sock/unbind.c b/servers/slapd/back-sock/unbind.c
index 0b349e1..8fef2f3 100644
--- a/servers/slapd/back-sock/unbind.c
+++ b/servers/slapd/back-sock/unbind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2007-2022 The OpenLDAP Foundation.
+ * Copyright 2007-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sql/Makefile.in b/servers/slapd/back-sql/Makefile.in
index b90bb31..b0fc537 100644
--- a/servers/slapd/back-sql/Makefile.in
+++ b/servers/slapd/back-sql/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-sql/add.c b/servers/slapd/back-sql/add.c
index 3098521..15bf504 100644
--- a/servers/slapd/back-sql/add.c
+++ b/servers/slapd/back-sql/add.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/api.c b/servers/slapd/back-sql/api.c
index 7ef1d9f..699d09a 100644
--- a/servers/slapd/back-sql/api.c
+++ b/servers/slapd/back-sql/api.c
@@ -1,6 +1,6 @@
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/back-sql.h b/servers/slapd/back-sql/back-sql.h
index 556ea6f..4abbad3 100644
--- a/servers/slapd/back-sql/back-sql.h
+++ b/servers/slapd/back-sql/back-sql.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Mararati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/bind.c b/servers/slapd/back-sql/bind.c
index ac78fc8..8c106d0 100644
--- a/servers/slapd/back-sql/bind.c
+++ b/servers/slapd/back-sql/bind.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/compare.c b/servers/slapd/back-sql/compare.c
index d457085..3d87d6c 100644
--- a/servers/slapd/back-sql/compare.c
+++ b/servers/slapd/back-sql/compare.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/config.c b/servers/slapd/back-sql/config.c
index 51a6be3..e97eefa 100644
--- a/servers/slapd/back-sql/config.c
+++ b/servers/slapd/back-sql/config.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/delete.c b/servers/slapd/back-sql/delete.c
index 489d4d3..14b9f9c 100644
--- a/servers/slapd/back-sql/delete.c
+++ b/servers/slapd/back-sql/delete.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/entry-id.c b/servers/slapd/back-sql/entry-id.c
index c2d78a7..54f97e4 100644
--- a/servers/slapd/back-sql/entry-id.c
+++ b/servers/slapd/back-sql/entry-id.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/init.c b/servers/slapd/back-sql/init.c
index 1b45f8f..633b5df 100644
--- a/servers/slapd/back-sql/init.c
+++ b/servers/slapd/back-sql/init.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/modify.c b/servers/slapd/back-sql/modify.c
index 83afec3..9980b46 100644
--- a/servers/slapd/back-sql/modify.c
+++ b/servers/slapd/back-sql/modify.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/modrdn.c b/servers/slapd/back-sql/modrdn.c
index 39114b3..0ee82d4 100644
--- a/servers/slapd/back-sql/modrdn.c
+++ b/servers/slapd/back-sql/modrdn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/operational.c b/servers/slapd/back-sql/operational.c
index 3eb1ec2..d252164 100644
--- a/servers/slapd/back-sql/operational.c
+++ b/servers/slapd/back-sql/operational.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/proto-sql.h b/servers/slapd/back-sql/proto-sql.h
index 169be76..c1e4575 100644
--- a/servers/slapd/back-sql/proto-sql.h
+++ b/servers/slapd/back-sql/proto-sql.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Mararati.
* All rights reserved.
diff --git a/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/Makefile b/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/Makefile
index 1b0b1ee..f9c2b66 100644
--- a/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/Makefile
+++ b/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/Makefile
@@ -1,4 +1,4 @@
-## Copyright 1997-2022 The OpenLDAP Foundation, All Rights Reserved.
+## Copyright 1997-2024 The OpenLDAP Foundation, All Rights Reserved.
## COPYING RESTRICTIONS APPLY, see COPYRIGHT file
#
diff --git a/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/dnreverse.cpp b/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/dnreverse.cpp
index 7407b4e..5fad825 100644
--- a/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/dnreverse.cpp
+++ b/servers/slapd/back-sql/rdbms_depend/timesten/dnreverse/dnreverse.cpp
@@ -1,4 +1,4 @@
-// Copyright 1997-2022 The OpenLDAP Foundation, All Rights Reserved.
+// Copyright 1997-2024 The OpenLDAP Foundation, All Rights Reserved.
// COPYING RESTRICTIONS APPLY, see COPYRIGHT file
// (c) Copyright 1999-2001 TimesTen Performance Software. All rights reserved.
diff --git a/servers/slapd/back-sql/schema-map.c b/servers/slapd/back-sql/schema-map.c
index f6294bb..7e56762 100644
--- a/servers/slapd/back-sql/schema-map.c
+++ b/servers/slapd/back-sql/schema-map.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/search.c b/servers/slapd/back-sql/search.c
index d4177f6..a37e13d 100644
--- a/servers/slapd/back-sql/search.c
+++ b/servers/slapd/back-sql/search.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/sql-wrap.c b/servers/slapd/back-sql/sql-wrap.c
index 289b590..7affbea 100644
--- a/servers/slapd/back-sql/sql-wrap.c
+++ b/servers/slapd/back-sql/sql-wrap.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* Portions Copyright 2004 Mark Adamson.
diff --git a/servers/slapd/back-sql/util.c b/servers/slapd/back-sql/util.c
index 94a00ca..6f6c20d 100644
--- a/servers/slapd/back-sql/util.c
+++ b/servers/slapd/back-sql/util.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 Dmitry Kovalev.
* Portions Copyright 2002 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/back-wt/Makefile.in b/servers/slapd/back-wt/Makefile.in
index 054025e..a88f1a0 100644
--- a/servers/slapd/back-wt/Makefile.in
+++ b/servers/slapd/back-wt/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/add.c b/servers/slapd/back-wt/add.c
index 04c08a1..40ad1ed 100644
--- a/servers/slapd/back-wt/add.c
+++ b/servers/slapd/back-wt/add.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/attr.c b/servers/slapd/back-wt/attr.c
index 70f278c..6131b11 100644
--- a/servers/slapd/back-wt/attr.c
+++ b/servers/slapd/back-wt/attr.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/back-wt.h b/servers/slapd/back-wt/back-wt.h
index 386dd85..fd4fa8d 100644
--- a/servers/slapd/back-wt/back-wt.h
+++ b/servers/slapd/back-wt/back-wt.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/bind.c b/servers/slapd/back-wt/bind.c
index 43abe87..99a2b7e 100644
--- a/servers/slapd/back-wt/bind.c
+++ b/servers/slapd/back-wt/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/cache.c b/servers/slapd/back-wt/cache.c
index ee393a0..69ca3a6 100644
--- a/servers/slapd/back-wt/cache.c
+++ b/servers/slapd/back-wt/cache.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/compare.c b/servers/slapd/back-wt/compare.c
index 038b273..6f719cf 100644
--- a/servers/slapd/back-wt/compare.c
+++ b/servers/slapd/back-wt/compare.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/config.c b/servers/slapd/back-wt/config.c
index 804e25b..dcdb03d 100644
--- a/servers/slapd/back-wt/config.c
+++ b/servers/slapd/back-wt/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/ctx.c b/servers/slapd/back-wt/ctx.c
index de6578e..b5723b6 100644
--- a/servers/slapd/back-wt/ctx.c
+++ b/servers/slapd/back-wt/ctx.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/delete.c b/servers/slapd/back-wt/delete.c
index 9673662..52853d2 100644
--- a/servers/slapd/back-wt/delete.c
+++ b/servers/slapd/back-wt/delete.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/dn2entry.c b/servers/slapd/back-wt/dn2entry.c
index 84cb13d..e1f198d 100644
--- a/servers/slapd/back-wt/dn2entry.c
+++ b/servers/slapd/back-wt/dn2entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/dn2id.c b/servers/slapd/back-wt/dn2id.c
index d8765ce..a1b7d3d 100644
--- a/servers/slapd/back-wt/dn2id.c
+++ b/servers/slapd/back-wt/dn2id.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/extended.c b/servers/slapd/back-wt/extended.c
index 595672f..ab12f93 100644
--- a/servers/slapd/back-wt/extended.c
+++ b/servers/slapd/back-wt/extended.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/filterindex.c b/servers/slapd/back-wt/filterindex.c
index f321128..6667c4c 100644
--- a/servers/slapd/back-wt/filterindex.c
+++ b/servers/slapd/back-wt/filterindex.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/id2entry.c b/servers/slapd/back-wt/id2entry.c
index 95b197c..a9bba18 100644
--- a/servers/slapd/back-wt/id2entry.c
+++ b/servers/slapd/back-wt/id2entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/idl.c b/servers/slapd/back-wt/idl.c
index 0f3167d..c42aa3a 100644
--- a/servers/slapd/back-wt/idl.c
+++ b/servers/slapd/back-wt/idl.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/idl.h b/servers/slapd/back-wt/idl.h
index d323e54..e25a98c 100644
--- a/servers/slapd/back-wt/idl.h
+++ b/servers/slapd/back-wt/idl.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/index.c b/servers/slapd/back-wt/index.c
index 3301977..d99b069 100644
--- a/servers/slapd/back-wt/index.c
+++ b/servers/slapd/back-wt/index.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/init.c b/servers/slapd/back-wt/init.c
index cc0c53a..0be7d0d 100644
--- a/servers/slapd/back-wt/init.c
+++ b/servers/slapd/back-wt/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/key.c b/servers/slapd/back-wt/key.c
index ea86829..5658987 100644
--- a/servers/slapd/back-wt/key.c
+++ b/servers/slapd/back-wt/key.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/modify.c b/servers/slapd/back-wt/modify.c
index d78c438..26d844f 100644
--- a/servers/slapd/back-wt/modify.c
+++ b/servers/slapd/back-wt/modify.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/modrdn.c b/servers/slapd/back-wt/modrdn.c
index faef948..07104fe 100644
--- a/servers/slapd/back-wt/modrdn.c
+++ b/servers/slapd/back-wt/modrdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/nextid.c b/servers/slapd/back-wt/nextid.c
index 99620e9..1874686 100644
--- a/servers/slapd/back-wt/nextid.c
+++ b/servers/slapd/back-wt/nextid.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/operational.c b/servers/slapd/back-wt/operational.c
index df9d0c6..e2cf380 100644
--- a/servers/slapd/back-wt/operational.c
+++ b/servers/slapd/back-wt/operational.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/proto-wt.h b/servers/slapd/back-wt/proto-wt.h
index 7fa2666..00df3fd 100644
--- a/servers/slapd/back-wt/proto-wt.h
+++ b/servers/slapd/back-wt/proto-wt.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/search.c b/servers/slapd/back-wt/search.c
index 8a313b3..d759b7c 100644
--- a/servers/slapd/back-wt/search.c
+++ b/servers/slapd/back-wt/search.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/back-wt/tools.c b/servers/slapd/back-wt/tools.c
index 795e81d..b6fc7c6 100644
--- a/servers/slapd/back-wt/tools.c
+++ b/servers/slapd/back-wt/tools.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c
index 30a32db..e50b1e2 100644
--- a/servers/slapd/backend.c
+++ b/servers/slapd/backend.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c
index 00a672d..69be561 100644
--- a/servers/slapd/backglue.c
+++ b/servers/slapd/backglue.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/backover.c b/servers/slapd/backover.c
index dbf67e6..b80833e 100644
--- a/servers/slapd/backover.c
+++ b/servers/slapd/backover.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c
index 58ce3a5..572bcc4 100644
--- a/servers/slapd/bconfig.c
+++ b/servers/slapd/bconfig.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -285,6 +285,7 @@ static OidRec OidMacros[] = {
* OLcfgOv{Oc|At}:21 -> sssvlv
* OLcfgOv{Oc|At}:22 -> autoca
* OLcfgOv{Oc|At}:24 -> remoteauth
+ * OLcfgOv{Oc|At}:25 -> nestgroup
*/
/* alphabetical ordering */
diff --git a/servers/slapd/bind.c b/servers/slapd/bind.c
index 19598f1..1422491 100644
--- a/servers/slapd/bind.c
+++ b/servers/slapd/bind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/cancel.c b/servers/slapd/cancel.c
index 3e5ee99..38b3423 100644
--- a/servers/slapd/cancel.c
+++ b/servers/slapd/cancel.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/ch_malloc.c b/servers/slapd/ch_malloc.c
index 6acf831..9cc715b 100644
--- a/servers/slapd/ch_malloc.c
+++ b/servers/slapd/ch_malloc.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/compare.c b/servers/slapd/compare.c
index e7a4f88..989a7ec 100644
--- a/servers/slapd/compare.c
+++ b/servers/slapd/compare.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/component.c b/servers/slapd/component.c
index 37ce97d..1ab54e9 100644
--- a/servers/slapd/component.c
+++ b/servers/slapd/component.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 by IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/component.h b/servers/slapd/component.h
index 202773e..7d076db 100644
--- a/servers/slapd/component.h
+++ b/servers/slapd/component.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 by IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/config.c b/servers/slapd/config.c
index 80333f3..b82d287 100644
--- a/servers/slapd/config.c
+++ b/servers/slapd/config.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -151,7 +151,7 @@ int config_check_vals(ConfigTable *Conf, ConfigArgs *c, int check_only ) {
int rc, arg_user, arg_type, arg_syn, iarg;
unsigned uiarg;
long larg;
- size_t ularg;
+ unsigned long ularg;
ber_len_t barg;
if(Conf->arg_type == ARG_IGNORED) {
diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c
index 9b363fe..717934b 100644
--- a/servers/slapd/connection.c
+++ b/servers/slapd/connection.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c
index beabe44..ed856b3 100644
--- a/servers/slapd/controls.c
+++ b/servers/slapd/controls.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/cr.c b/servers/slapd/cr.c
index a828aa8..aa3ac4e 100644
--- a/servers/slapd/cr.c
+++ b/servers/slapd/cr.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/ctxcsn.c b/servers/slapd/ctxcsn.c
index a8f73c3..e0e0ef8 100644
--- a/servers/slapd/ctxcsn.c
+++ b/servers/slapd/ctxcsn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c
index 18db97a..eb0f538 100644
--- a/servers/slapd/daemon.c
+++ b/servers/slapd/daemon.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 2007 by Howard Chu, Symas Corporation.
* All rights reserved.
*
@@ -41,8 +41,8 @@
#include "ldap_rq.h"
-#ifdef HAVE_SYSTEMD_SD_DAEMON_H
-#include <systemd/sd-daemon.h>
+#ifdef HAVE_SYSTEMD
+#include "sd-notify.h"
#endif
#ifdef HAVE_POLL
@@ -2261,9 +2261,9 @@ slap_listener(
STRLENOF( "gidNumber=4294967295+uidNumber=4294967295,"
"cn=peercred,cn=external,cn=auth" ) + 1 );
authid.bv_len = sprintf( authid.bv_val,
- "gidNumber=%d+uidNumber=%d,"
+ "gidNumber=%u+uidNumber=%u,"
"cn=peercred,cn=external,cn=auth",
- (int) gid, (int) uid );
+ gid, uid );
assert( authid.bv_len <=
STRLENOF( "gidNumber=4294967295+uidNumber=4294967295,"
"cn=peercred,cn=external,cn=auth" ) );
diff --git a/servers/slapd/delete.c b/servers/slapd/delete.c
index 0329154..0f9138e 100644
--- a/servers/slapd/delete.c
+++ b/servers/slapd/delete.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/dn.c b/servers/slapd/dn.c
index 9b82f55..c2a5a57 100644
--- a/servers/slapd/dn.c
+++ b/servers/slapd/dn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/entry.c b/servers/slapd/entry.c
index 8e1463c..e104135 100644
--- a/servers/slapd/entry.c
+++ b/servers/slapd/entry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/extended.c b/servers/slapd/extended.c
index 3f17889..0a55019 100644
--- a/servers/slapd/extended.c
+++ b/servers/slapd/extended.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/filter.c b/servers/slapd/filter.c
index 9d000bc..f7b83c5 100644
--- a/servers/slapd/filter.c
+++ b/servers/slapd/filter.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c
index 61b64ff..4334091 100644
--- a/servers/slapd/filterentry.c
+++ b/servers/slapd/filterentry.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/frontend.c b/servers/slapd/frontend.c
index d0ca419..633384f 100644
--- a/servers/slapd/frontend.c
+++ b/servers/slapd/frontend.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/globals.c b/servers/slapd/globals.c
index c785165..4fac656 100644
--- a/servers/slapd/globals.c
+++ b/servers/slapd/globals.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/index.c b/servers/slapd/index.c
index 303cb9a..4aa28fa 100644
--- a/servers/slapd/index.c
+++ b/servers/slapd/index.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/init.c b/servers/slapd/init.c
index 591276b..1cf82de 100644
--- a/servers/slapd/init.c
+++ b/servers/slapd/init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/ldapsync.c b/servers/slapd/ldapsync.c
index f922cd5..e726867 100644
--- a/servers/slapd/ldapsync.c
+++ b/servers/slapd/ldapsync.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/limits.c b/servers/slapd/limits.c
index 2e4d051..d91c606 100644
--- a/servers/slapd/limits.c
+++ b/servers/slapd/limits.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/lock.c b/servers/slapd/lock.c
index 91a4e34..9eb9a75 100644
--- a/servers/slapd/lock.c
+++ b/servers/slapd/lock.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/logging.c b/servers/slapd/logging.c
index 95f7ff2..b766138 100644
--- a/servers/slapd/logging.c
+++ b/servers/slapd/logging.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2021-2022 The OpenLDAP Foundation.
+ * Copyright 2021-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -44,6 +44,7 @@ static long logfile_fslimit;
static int logfile_age, logfile_only, logfile_max;
static char *syslog_prefix;
static int splen;
+static int logfile_rotfail, logfile_openfail;
typedef enum { LFMT_DEFAULT, LFMT_DEBUG, LFMT_SYSLOG_UTC, LFMT_SYSLOG_LOCAL } LogFormat;
static LogFormat logfile_format;
@@ -129,11 +130,42 @@ slap_debug_print( const char *data )
if ( logfile_age && tv.tv_sec - logfile_fcreated >= logfile_age )
rotate |= 2;
if ( rotate ) {
- close( logfile_fd );
- logfile_fd = -1;
+ int rc, savefd;
strcpy( logpaths[0]+logpathlen, ".tmp" );
- rename( logfile_path, logpaths[0] );
- logfile_open( logfile_path );
+ if ( rename( logfile_path, logpaths[0] )) {
+ rc = errno;
+ if ( !logfile_rotfail ) {
+ char buf[BUFSIZ];
+ char ebuf[128];
+ int len = snprintf(buf, sizeof( buf ), "ERROR! logfile rotate failure, err=%d \"%s\"\n",
+ rc, AC_STRERROR_R( rc, ebuf, sizeof(ebuf) ));
+ if ( !logfile_only )
+ !write( 2, buf, len );
+ !write( logfile_fd, buf, len );
+ logfile_rotfail = 1;
+ }
+ rotate = 0; /* don't bother since it will fail */
+ } else {
+ logfile_rotfail = 0;
+ }
+ savefd = logfile_fd;
+ logfile_fd = -1;
+ if (( rc = logfile_open( logfile_path ))) {
+ logfile_fd = savefd;
+ if ( !logfile_openfail ) {
+ char buf[BUFSIZ];
+ char ebuf[128];
+ int len = snprintf(buf, sizeof( buf ), "ERROR! logfile couldn't be reopened, err=%d \"%s\"\n",
+ rc, AC_STRERROR_R( rc, ebuf, sizeof(ebuf) ));
+ if ( !logfile_only )
+ !write( 2, buf, len );
+ !write( logfile_fd, buf, len );
+ logfile_openfail = 1;
+ }
+ } else {
+ close( savefd );
+ logfile_openfail = 0;
+ }
}
}
@@ -205,7 +237,7 @@ logfile_open( const char *path )
if ( !( slapMode & SLAP_SERVER_MODE ))
return 0;
- fd = open( path, O_CREAT|O_WRONLY, 0640 );
+ fd = open( path, O_CREAT|O_WRONLY|O_APPEND, 0640 );
if ( fd < 0 ) {
saved_errno = errno;
fail:
@@ -233,7 +265,6 @@ fail:
logfile_fsize = st.st_size;
logfile_fcreated = st.st_ctime; /* not strictly true but close enough */
logfile_fd = fd;
- lseek( fd, 0, SEEK_END );
return 0;
}
@@ -760,6 +791,14 @@ reset:
case CFG_LOGFILE:
rc = logfile_open( c->value_string );
+ if ( rc ) {
+ char ebuf[128];
+ snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> unable to open logfile, err=%d \"%s\"",
+ c->argv[0], rc, AC_STRERROR_R( rc, ebuf, sizeof(ebuf) ) );
+ Debug( LDAP_DEBUG_ANY, "%s: %s \"%s\"\n",
+ c->log, c->cr_msg, c->argv[1]);
+ return( 1 );
+ }
ch_free( c->value_string );
break;
diff --git a/servers/slapd/main.c b/servers/slapd/main.c
index a02d663..6a7c956 100644
--- a/servers/slapd/main.c
+++ b/servers/slapd/main.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/matchedValues.c b/servers/slapd/matchedValues.c
index 574e085..a6317b3 100644
--- a/servers/slapd/matchedValues.c
+++ b/servers/slapd/matchedValues.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/modify.c b/servers/slapd/modify.c
index 0da8953..5d19ee8 100644
--- a/servers/slapd/modify.c
+++ b/servers/slapd/modify.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c
index 77a20d1..8d3e950 100644
--- a/servers/slapd/modrdn.c
+++ b/servers/slapd/modrdn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/mods.c b/servers/slapd/mods.c
index 989274f..08fff7d 100644
--- a/servers/slapd/mods.c
+++ b/servers/slapd/mods.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/module.c b/servers/slapd/module.c
index 048ce8d..d3cffcf 100644
--- a/servers/slapd/module.c
+++ b/servers/slapd/module.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/mr.c b/servers/slapd/mr.c
index 8170345..2b8a10f 100644
--- a/servers/slapd/mr.c
+++ b/servers/slapd/mr.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/mra.c b/servers/slapd/mra.c
index 10cf117..acf9b1c 100644
--- a/servers/slapd/mra.c
+++ b/servers/slapd/mra.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/nt_svc.c b/servers/slapd/nt_svc.c
index 1d2c1c3..1fbd3a7 100644
--- a/servers/slapd/nt_svc.c
+++ b/servers/slapd/nt_svc.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/oc.c b/servers/slapd/oc.c
index d88c88c..e2b15a1 100644
--- a/servers/slapd/oc.c
+++ b/servers/slapd/oc.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/oidm.c b/servers/slapd/oidm.c
index 19725ac..1dc7f56 100644
--- a/servers/slapd/oidm.c
+++ b/servers/slapd/oidm.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/operation.c b/servers/slapd/operation.c
index b4b4830..d5048af 100644
--- a/servers/slapd/operation.c
+++ b/servers/slapd/operation.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/operational.c b/servers/slapd/operational.c
index 77dce46..f22edf8 100644
--- a/servers/slapd/operational.c
+++ b/servers/slapd/operational.c
@@ -1,7 +1,7 @@
/* operational.c - routines to deal with on-the-fly operational attrs */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/overlays/Makefile.in b/servers/slapd/overlays/Makefile.in
index e6711fe..6d886f8 100644
--- a/servers/slapd/overlays/Makefile.in
+++ b/servers/slapd/overlays/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2003-2022 The OpenLDAP Foundation.
+## Copyright 2003-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
@@ -24,6 +24,7 @@ SRCS = overlays.c \
dynlist.c \
homedir.c \
memberof.c \
+ nestgroup.c \
otp.c \
pcache.c \
collect.c \
@@ -96,6 +97,9 @@ homedir.la : homedir.lo
memberof.la : memberof.lo
$(LTLINK_MOD) -module -o $@ memberof.lo version.lo $(LINK_LIBS)
+nestgroup.la : nestgroup.lo
+ $(LTLINK_MOD) -module -o $@ nestgroup.lo version.lo $(LINK_LIBS)
+
otp.la : otp.lo
$(LTLINK_MOD) -module -o $@ otp.lo version.lo $(LINK_LIBS)
diff --git a/servers/slapd/overlays/accesslog.c b/servers/slapd/overlays/accesslog.c
index 182be57..19bbdbf 100644
--- a/servers/slapd/overlays/accesslog.c
+++ b/servers/slapd/overlays/accesslog.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions copyright 2004-2005 Symas Corporation.
* All rights reserved.
*
@@ -1567,7 +1567,7 @@ accesslog_response(Operation *op, SlapReply *rs)
lo = logops+logop+EN_OFFSET;
/* can't do anything if logDB isn't open */
- if ( !SLAP_DBOPEN( li->li_db ) ) {
+ if ( !li->li_db || !SLAP_DBOPEN( li->li_db ) ) {
goto skip;
}
@@ -2497,7 +2497,13 @@ accesslog_db_root(
attr_merge_one( e, slap_schema.si_ad_entryCSN,
&a->a_vals[0], &a->a_nvals[0] );
attr_merge( e, a->a_desc, a->a_vals, a->a_nvals );
+
+ /* Populate minCSN */
attr_merge( e, ad_minCSN, a->a_vals, a->a_nvals );
+ ber_bvarray_dup_x( &li->li_mincsn, a->a_vals, NULL );
+ li->li_numcsns = a->a_numvals;
+ li->li_sids = slap_parse_csn_sids( li->li_mincsn, li->li_numcsns, NULL );
+ slap_sort_csn_sids( li->li_mincsn, li->li_sids, li->li_numcsns, NULL );
}
be_entry_release_rw( op, e_ctx, 0 );
}
diff --git a/servers/slapd/overlays/auditlog.c b/servers/slapd/overlays/auditlog.c
index 9292d4a..69482e7 100644
--- a/servers/slapd/overlays/auditlog.c
+++ b/servers/slapd/overlays/auditlog.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions copyright 2004-2005 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/autoca.c b/servers/slapd/overlays/autoca.c
index 5fcd204..692d9d5 100644
--- a/servers/slapd/overlays/autoca.c
+++ b/servers/slapd/overlays/autoca.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2009-2022 The OpenLDAP Foundation.
+ * Copyright 2009-2024 The OpenLDAP Foundation.
* Copyright 2009-2018 by Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/collect.c b/servers/slapd/overlays/collect.c
index bbc6219..b133cd2 100644
--- a/servers/slapd/overlays/collect.c
+++ b/servers/slapd/overlays/collect.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/constraint.c b/servers/slapd/overlays/constraint.c
index f939b37..9622c29 100644
--- a/servers/slapd/overlays/constraint.c
+++ b/servers/slapd/overlays/constraint.c
@@ -369,6 +369,7 @@ constraint_cf_gen( ConfigArgs *c )
ap.attrs[i] = NULL;
if ( slap_str2ad( ap.lud->lud_attrs[i], &ap.attrs[i], &text ) ) {
ch_free( ap.attrs );
+ ap.attrs = NULL;
snprintf( c->cr_msg, sizeof( c->cr_msg ),
"%s <%s>: %s\n", c->argv[0], ap.lud->lud_attrs[i], text );
rc = ARG_BAD_CONF;
@@ -557,7 +558,7 @@ done:;
a2->restrict_filter = ap.restrict_filter;
a2->restrict_val = ap.restrict_val;
- for ( app = &on->on_bi.bi_private; *app; app = &(*app)->ap_next )
+ for ( app = (constraint **)&on->on_bi.bi_private; *app; app = &(*app)->ap_next )
/* Get to the end */ ;
a2->ap_next = *app;
diff --git a/servers/slapd/overlays/dds.c b/servers/slapd/overlays/dds.c
index c19f042..422183a 100644
--- a/servers/slapd/overlays/dds.c
+++ b/servers/slapd/overlays/dds.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions Copyright 2005-2006 SysNet s.n.c.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/deref.c b/servers/slapd/overlays/deref.c
index 93b7f69..aed4f68 100644
--- a/servers/slapd/overlays/deref.c
+++ b/servers/slapd/overlays/deref.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 2008 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/dyngroup.c b/servers/slapd/overlays/dyngroup.c
index 5d890d6..2c9ba7e 100644
--- a/servers/slapd/overlays/dyngroup.c
+++ b/servers/slapd/overlays/dyngroup.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Copyright 2003 by Howard Chu.
* All rights reserved.
*
@@ -111,7 +111,7 @@ static int dgroup_cf( ConfigArgs *c )
*/
a2 = ch_malloc( sizeof(adpair) );
- for ( app = &on->on_bi.bi_private; *app; app = &(*app)->ap_next )
+ for ( app = (adpair **)&on->on_bi.bi_private; *app; app = &(*app)->ap_next )
/* Get to the end */ ;
a2->ap_mem = ap.ap_mem;
diff --git a/servers/slapd/overlays/dynlist.c b/servers/slapd/overlays/dynlist.c
index 5c38b64..eb3a313 100644
--- a/servers/slapd/overlays/dynlist.c
+++ b/servers/slapd/overlays/dynlist.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2004-2005 Pierangelo Masarati.
* Portions Copyright 2008 Emmanuel Dreyfus.
* All rights reserved.
@@ -1648,6 +1648,9 @@ dynlist_search2resp( Operation *op, SlapReply *rs )
dynlist_name_t *dyn;
int rc;
+ if ( op->o_abandon )
+ return SLAP_CB_CONTINUE;
+
if ( rs->sr_type == REP_SEARCH && rs->sr_entry != NULL ) {
rc = SLAP_CB_CONTINUE;
/* See if this is one of our dynamic groups */
diff --git a/servers/slapd/overlays/homedir.c b/servers/slapd/overlays/homedir.c
index 159090e..78e3886 100644
--- a/servers/slapd/overlays/homedir.c
+++ b/servers/slapd/overlays/homedir.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2009-2022 The OpenLDAP Foundation.
+ * Copyright 2009-2024 The OpenLDAP Foundation.
* Portions copyright 2009-2010 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/memberof.c b/servers/slapd/overlays/memberof.c
index 5affbbf..351aa56 100644
--- a/servers/slapd/overlays/memberof.c
+++ b/servers/slapd/overlays/memberof.c
@@ -159,6 +159,7 @@ typedef struct memberof_t {
#define MEMBEROF_FDANGLING_MASK (MEMBEROF_FDANGLING_DROP|MEMBEROF_FDANGLING_ERROR)
#define MEMBEROF_FREFINT 0x04U
#define MEMBEROF_FREVERSE 0x08U
+#define MEMBEROF_FADDCHECK 0x10U
ber_int_t mo_dangling_err;
@@ -174,6 +175,8 @@ typedef struct memberof_t {
MEMBEROF_CHK((mo),MEMBEROF_FREFINT)
#define MEMBEROF_REVERSE(mo) \
MEMBEROF_CHK((mo),MEMBEROF_FREVERSE)
+#define MEMBEROF_ADDCHECK(mo) \
+ MEMBEROF_CHK((mo),MEMBEROF_FADDCHECK)
} memberof_t;
typedef enum memberof_is_t {
@@ -385,6 +388,10 @@ memberof_value_modify(
op2.orm_no_opattrs = 1;
op2.o_dont_replicate = 1;
+ /* main op has already completed if we got here, so even
+ * if its abandon flag was set we must complete as well. */
+ op2.o_abandon = 0;
+
if ( !BER_BVISNULL( &mo->mo_ndn ) ) {
ml = &mod[ mcnt ];
ml->sml_numvals = 1;
@@ -521,6 +528,87 @@ static int memberof_res_delete( Operation *op, SlapReply *rs );
static int memberof_res_modify( Operation *op, SlapReply *rs );
static int memberof_res_modrdn( Operation *op, SlapReply *rs );
+typedef struct mo_addcheck_t {
+ memberof_t *ma_mo;
+ Entry *ma_e;
+ Attribute *ma_a;
+} mo_addcheck_t;
+
+static int memberof_res_addcheck( Operation *op, SlapReply *rs )
+{
+ mo_addcheck_t *ma = op->o_callback->sc_private;
+ if ( rs->sr_type == REP_SEARCH ) {
+ if ( !ma->ma_a ) {
+ attr_merge_one( ma->ma_e, ma->ma_mo->mo_ad_memberof,
+ &rs->sr_entry->e_name, &rs->sr_entry->e_nname );
+ ma->ma_a = attr_find( ma->ma_e->e_attrs, ma->ma_mo->mo_ad_memberof );
+ } else {
+ if ( attr_valfind( ma->ma_a, SLAP_MR_EQUALITY | SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH |
+ SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH, &rs->sr_entry->e_nname, NULL, NULL )) {
+ attr_valadd( ma->ma_a, &rs->sr_entry->e_name, &rs->sr_entry->e_nname, 1 );
+ }
+ }
+ }
+ return 0;
+}
+
+/* Check if an entry being added is already a member of existing groups;
+ * add those groups to the entry's memberof if any.
+ */
+static void
+memberof_addcheck( Operation *op )
+{
+ slap_overinst *on = (slap_overinst *)op->o_bd->bd_info;
+ memberof_t *mo = (memberof_t *)on->on_bi.bi_private;
+ Operation o = *op;
+ Filter mf;
+ AttributeAssertion mava;
+ slap_callback sc = {0};
+ mo_addcheck_t ma;
+ SlapReply rs = {REP_SEARCH};
+
+ o.o_dn = op->o_bd->be_rootdn;
+ o.o_ndn = op->o_bd->be_rootndn;
+ o.o_bd->bd_info = (BackendInfo *)on->on_info;
+ o.o_tag = LDAP_REQ_SEARCH;
+ o.o_req_dn = op->o_bd->be_suffix[0];
+ o.o_req_ndn = op->o_bd->be_nsuffix[0];
+ o.o_do_not_cache = 1;
+ o.ors_scope = LDAP_SCOPE_SUBTREE;
+ o.ors_slimit = SLAP_NO_LIMIT;
+ o.ors_tlimit = SLAP_NO_LIMIT;
+ o.ors_limit = NULL;
+ o.ors_attrsonly = 1;
+ o.ors_attrs = slap_anlist_no_attrs;
+ mf.f_choice = LDAP_FILTER_EQUALITY;
+ mf.f_ava = &mava;
+ mf.f_next = NULL;
+ mf.f_av_desc = mo->mo_ad_member;
+ mf.f_av_value = op->o_req_ndn;
+ o.ors_filter = &mf;
+ o.ors_filterstr.bv_val = op->o_tmpalloc( mo->mo_ad_member->ad_cname.bv_len + 2
+ + op->o_req_ndn.bv_len + 2, op->o_tmpmemctx );
+ {
+ char *ptr = o.ors_filterstr.bv_val;
+ *ptr++ = '(';
+ ptr = lutil_strcopy( ptr, mo->mo_ad_member->ad_cname.bv_val );
+ *ptr++ = '=';
+ ptr = lutil_strcopy( ptr, op->o_req_ndn.bv_val );
+ *ptr++ = ')';
+ *ptr = '\0';
+ }
+ sc.sc_private = &ma;
+ sc.sc_response = memberof_res_addcheck;
+ ma.ma_mo = mo;
+ ma.ma_e = op->ora_e;
+ ma.ma_a = attr_find( op->ora_e->e_attrs, mo->mo_ad_memberof );
+ o.o_callback = &sc;
+
+ o.o_bd->be_search( &o, &rs );
+ o.o_bd->bd_info = (BackendInfo *)on;
+ op->o_tmpfree( o.ors_filterstr.bv_val, op->o_tmpmemctx );
+}
+
static int
memberof_op_add( Operation *op, SlapReply *rs )
{
@@ -549,6 +637,10 @@ memberof_op_add( Operation *op, SlapReply *rs )
return SLAP_CB_CONTINUE;
}
+ if ( MEMBEROF_ADDCHECK( mo )) {
+ memberof_addcheck( op );
+ }
+
if ( MEMBEROF_REVERSE( mo ) ) {
for ( ap = &op->ora_e->e_attrs; *ap; ap = &(*ap)->a_next ) {
Attribute *a = *ap;
@@ -1649,6 +1741,7 @@ enum {
#endif
MO_DANGLING_ERROR,
+ MO_ADDCHECK,
MO_LAST
};
@@ -1730,6 +1823,14 @@ static ConfigTable mo_cfg[] = {
"SYNTAX OMsDirectoryString SINGLE-VALUE )",
NULL, NULL },
+ { "memberof-addcheck", "true|FALSE",
+ 2, 2, 0, ARG_MAGIC|ARG_ON_OFF|MO_ADDCHECK, mo_cf_gen,
+ "( OLcfgOvAt:18.8 NAME 'olcMemberOfAddCheck' "
+ "DESC 'Check for memberships on added entries' "
+ "EQUALITY booleanMatch "
+ "SYNTAX OMsBoolean SINGLE-VALUE )",
+ NULL, NULL },
+
{ NULL, NULL, 0, 0, 0, ARG_IGNORED }
};
@@ -1749,6 +1850,7 @@ static ConfigOCs mo_ocs[] = {
#if 0
"$ olcMemberOfReverse "
#endif
+ "$ olcMemberOfAddCheck "
") "
")",
Cft_Overlay, mo_cfg, NULL, NULL },
@@ -1887,6 +1989,10 @@ mo_cf_gen( ConfigArgs *c )
c->value_ad = mo->mo_ad_memberof;
break;
+ case MO_ADDCHECK:
+ c->value_int = MEMBEROF_ADDCHECK( mo );
+ break;
+
default:
assert( 0 );
return 1;
@@ -1937,6 +2043,10 @@ mo_cf_gen( ConfigArgs *c )
memberof_make_member_filter( mo );
break;
+ case MO_ADDCHECK:
+ mo->mo_flags &= ~MEMBEROF_FADDCHECK;
+ break;
+
default:
assert( 0 );
return 1;
@@ -2046,6 +2156,15 @@ mo_cf_gen( ConfigArgs *c )
memberof_make_member_filter( mo );
} break;
+ case MO_ADDCHECK:
+ if ( c->value_int ) {
+ mo->mo_flags |= MEMBEROF_FADDCHECK;
+
+ } else {
+ mo->mo_flags &= ~MEMBEROF_FADDCHECK;
+ }
+ break;
+
default:
assert( 0 );
return 1;
diff --git a/servers/slapd/overlays/nestgroup.c b/servers/slapd/overlays/nestgroup.c
new file mode 100644
index 0000000..ca5c928
--- /dev/null
+++ b/servers/slapd/overlays/nestgroup.c
@@ -0,0 +1,909 @@
+/* nestgroup.c - nested group overlay */
+/* $OpenLDAP$ */
+/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
+ *
+ * Copyright 2024 The OpenLDAP Foundation.
+ * Copyright 2024 by Howard Chu.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted only as authorized by the OpenLDAP
+ * Public License.
+ *
+ * A copy of this license is available in the file LICENSE in the
+ * top-level directory of the distribution or, alternatively, at
+ * <http://www.OpenLDAP.org/license.html>.
+ */
+/* ACKNOWLEDGEMENTS:
+ * This work was initially developed by Howard Chu for inclusion in
+ * OpenLDAP Software.
+ */
+
+#include "portable.h"
+
+#ifdef SLAPD_OVER_NESTGROUP
+
+#include <stdio.h>
+
+#include <ac/string.h>
+#include <ac/socket.h>
+
+#include "lutil.h"
+#include "slap.h"
+#include "slap-config.h"
+
+/* This overlay dynamically constructs member and memberOf attributes
+ * for nested groups.
+ */
+
+#define SLAPD_MEMBEROF_ATTR "memberOf"
+
+#define NG_MBR_VALUES 0x01
+#define NG_MBR_FILTER 0x02
+#define NG_MOF_VALUES 0x04
+#define NG_MOF_FILTER 0x08
+#define NG_NEGATED 0x10
+
+static AttributeDescription *ad_member;
+static AttributeDescription *ad_memberOf;
+
+static slap_verbmasks nestgroup_flags[] = {
+ { BER_BVC("member-values"), NG_MBR_VALUES },
+ { BER_BVC("member-filter"), NG_MBR_FILTER },
+ { BER_BVC("memberof-values"), NG_MOF_VALUES },
+ { BER_BVC("memberof-filter"), NG_MOF_FILTER },
+ { BER_BVNULL, 0 }
+};
+
+enum {
+ NG_MEMBER = 1,
+ NG_MEMBEROF,
+ NG_GROUPBASE,
+ NG_FLAGS
+};
+
+typedef struct nestgroup_info_t {
+ AttributeDescription *ngi_member;
+ AttributeDescription *ngi_memberOf;
+ BerVarray ngi_groupBase;
+ BerVarray ngi_ngroupBase;
+ int ngi_flags;
+} nestgroup_info_t;
+
+static int ngroup_cf( ConfigArgs *c )
+{
+ slap_overinst *on = (slap_overinst *)c->bi;
+ nestgroup_info_t *ngi = (nestgroup_info_t *)on->on_bi.bi_private;
+ int rc = 1;
+
+ if ( c->op == SLAP_CONFIG_EMIT ) {
+ switch( c->type ) {
+ case NG_MEMBER:
+ if ( ngi->ngi_member ) {
+ value_add_one( &c->rvalue_vals, &ngi->ngi_member->ad_cname );
+ rc = 0;
+ }
+ break;
+ case NG_MEMBEROF:
+ if ( ngi->ngi_memberOf ) {
+ value_add_one( &c->rvalue_vals, &ngi->ngi_memberOf->ad_cname );
+ rc = 0;
+ }
+ break;
+ case NG_GROUPBASE:
+ if ( ngi->ngi_groupBase ) {
+ value_add( &c->rvalue_vals, ngi->ngi_groupBase );
+ value_add( &c->rvalue_nvals, ngi->ngi_ngroupBase );
+ rc = 0;
+ }
+ break;
+ case NG_FLAGS:
+ return mask_to_verbs( nestgroup_flags, ngi->ngi_flags, &c->rvalue_vals );
+ default:
+ break;
+ }
+ return rc;
+ } else if ( c->op == LDAP_MOD_DELETE ) {
+ switch( c->type ) {
+ case NG_MEMBER:
+ ngi->ngi_member = ad_member;
+ rc = 0;
+ break;
+ case NG_MEMBEROF:
+ ngi->ngi_memberOf = ad_memberOf;
+ rc = 0;
+ break;
+ case NG_GROUPBASE:
+ if ( c->valx < 0 ) {
+ ber_bvarray_free( ngi->ngi_groupBase );
+ ber_bvarray_free( ngi->ngi_ngroupBase );
+ ngi->ngi_groupBase = NULL;
+ ngi->ngi_ngroupBase = NULL;
+ } else {
+ int i = c->valx;
+ ch_free( ngi->ngi_groupBase[i].bv_val );
+ ch_free( ngi->ngi_ngroupBase[i].bv_val );
+ do {
+ ngi->ngi_groupBase[i] = ngi->ngi_groupBase[i+1];
+ ngi->ngi_ngroupBase[i] = ngi->ngi_ngroupBase[i+1];
+ i++;
+ } while ( !BER_BVISNULL( &ngi->ngi_groupBase[i] ));
+ }
+ rc = 0;
+ break;
+ case NG_FLAGS:
+ if ( !c->line ) {
+ ngi->ngi_flags = 0;
+ } else {
+ int i = verb_to_mask( c->line, nestgroup_flags );
+ ngi->ngi_flags &= ~nestgroup_flags[i].mask;
+ }
+ rc = 0;
+ break;
+ default:
+ break;
+ }
+ return rc;
+ }
+
+ switch( c->type ) {
+ case NG_MEMBER:
+ if ( !is_at_syntax( c->value_ad->ad_type, SLAPD_DN_SYNTAX ) &&
+ !is_at_syntax( c->value_ad->ad_type, SLAPD_NAMEUID_SYNTAX )) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "member attribute=\"%s\" must use DN (%s) or NAMEUID (%s) syntax",
+ c->argv[1], SLAPD_DN_SYNTAX, SLAPD_NAMEUID_SYNTAX );
+ Debug( LDAP_DEBUG_CONFIG|LDAP_DEBUG_NONE,
+ "%s: %s\n", c->log, c->cr_msg );
+ return ARG_BAD_CONF;
+ }
+ ngi->ngi_member = c->value_ad;
+ rc = 0;
+ break;
+ case NG_MEMBEROF:
+ if ( !is_at_syntax( c->value_ad->ad_type, SLAPD_DN_SYNTAX ) &&
+ !is_at_syntax( c->value_ad->ad_type, SLAPD_NAMEUID_SYNTAX )) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "memberOf attribute=\"%s\" must use DN (%s) or NAMEUID (%s) syntax",
+ c->argv[1], SLAPD_DN_SYNTAX, SLAPD_NAMEUID_SYNTAX );
+ Debug( LDAP_DEBUG_CONFIG|LDAP_DEBUG_NONE,
+ "%s: %s\n", c->log, c->cr_msg );
+ return ARG_BAD_CONF;
+ }
+ ngi->ngi_memberOf = c->value_ad;
+ rc = 0;
+ break;
+ case NG_GROUPBASE:
+ ber_bvarray_add( &ngi->ngi_groupBase, &c->value_dn );
+ ber_bvarray_add( &ngi->ngi_ngroupBase, &c->value_ndn );
+ rc = 0;
+ break;
+ case NG_FLAGS: {
+ slap_mask_t flags = 0;
+ int i;
+ if ( c->op != SLAP_CONFIG_ADD && c->argc > 2 ) {
+ /* We wouldn't know how to delete these values later */
+ snprintf( c->cr_msg, sizeof( c->cr_msg ),
+ "Please insert multiple names as separate %s values",
+ c->argv[0] );
+ Debug( LDAP_DEBUG_CONFIG|LDAP_DEBUG_NONE,
+ "%s: %s\n", c->log, c->cr_msg );
+ rc = LDAP_INVALID_SYNTAX;
+ break;
+ }
+ i = verbs_to_mask( c->argc, c->argv, nestgroup_flags, &flags );
+ if ( i ) {
+ snprintf( c->cr_msg, sizeof( c->cr_msg ), "<%s> unknown option", c->argv[0] );
+ Debug(LDAP_DEBUG_ANY, "%s: %s %s\n",
+ c->log, c->cr_msg, c->argv[i]);
+ return(1);
+ }
+ ngi->ngi_flags |= flags;
+ rc = 0;
+ break; }
+ default:
+ break;
+ }
+
+ return rc;
+}
+
+static ConfigTable ngroupcfg[] = {
+ { "nestgroup-member", "member-ad", 2, 2, 0,
+ ARG_MAGIC|ARG_ATDESC|NG_MEMBER, ngroup_cf,
+ "( OLcfgOvAt:25.1 NAME 'olcNestGroupMember' "
+ "EQUALITY caseIgnoreMatch "
+ "DESC 'Member attribute' "
+ "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
+ { "nestgroup-memberof", "memberOf-ad", 2, 2, 0,
+ ARG_MAGIC|ARG_ATDESC|NG_MEMBEROF, ngroup_cf,
+ "( OLcfgOvAt:25.2 NAME 'olcNestGroupMemberOf' "
+ "EQUALITY caseIgnoreMatch "
+ "DESC 'MemberOf attribute' "
+ "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL },
+ { "nestgroup-base", "dn", 2, 2, 0,
+ ARG_DN|ARG_QUOTE|ARG_MAGIC|NG_GROUPBASE, ngroup_cf,
+ "( OLcfgOvAt:25.3 NAME 'olcNestGroupBase' "
+ "EQUALITY distinguishedNameMatch "
+ "DESC 'Base[s] of group subtree[s]' "
+ "SYNTAX OMsDN )", NULL, NULL },
+ { "nestgroup-flags", "options", 2, 0, 0,
+ ARG_MAGIC|NG_FLAGS, ngroup_cf,
+ "( OLcfgOvAt:25.4 NAME 'olcNestGroupFlags' "
+ "EQUALITY caseIgnoreMatch "
+ "DESC 'Features to use' "
+ "SYNTAX OMsDirectoryString )", NULL, NULL },
+ { NULL, NULL, 0, 0, 0, ARG_IGNORED }
+};
+
+static ConfigOCs ngroupocs[] = {
+ { "( OLcfgOvOc:25.1 "
+ "NAME 'olcNestGroupConfig' "
+ "DESC 'Nested Group configuration' "
+ "SUP olcOverlayConfig "
+ "MAY ( olcNestGroupMember $ olcNestGroupMemberOf $ "
+ " olcNestGroupBase $ olcNestGroupFlags ) ) ",
+ Cft_Overlay, ngroupcfg },
+ { NULL, 0, NULL }
+};
+
+typedef struct nestgroup_filterinst_t {
+ Filter *nf_f;
+ Filter *nf_new;
+ Entry *nf_e;
+} nestgroup_filterinst_t;
+
+/* Record occurrences of ad in filter. Ignore in negated filters. */
+static void
+nestgroup_filter_instances( Operation *op, AttributeDescription *ad, Filter *f, int not,
+ int *nfn, nestgroup_filterinst_t **nfp, int *negated )
+{
+ if ( !f )
+ return;
+
+ switch( f->f_choice & SLAPD_FILTER_MASK ) {
+ case LDAP_FILTER_EQUALITY:
+ if ( f->f_av_desc == ad ) {
+ if ( not ) {
+ *negated = 1;
+ } else {
+ nestgroup_filterinst_t *nf = *nfp;
+ int n = *nfn;
+ nf = op->o_tmprealloc( nf, (n + 1) * sizeof(nestgroup_filterinst_t), op->o_tmpmemctx );
+ nf[n].nf_f = f;
+ nf[n].nf_new = NULL;
+ nf[n++].nf_e = NULL;
+ *nfp = nf;
+ *nfn = n;
+ }
+ }
+ break;
+ case SLAPD_FILTER_COMPUTED:
+ case LDAP_FILTER_PRESENT:
+ case LDAP_FILTER_GE:
+ case LDAP_FILTER_LE:
+ case LDAP_FILTER_APPROX:
+ case LDAP_FILTER_SUBSTRINGS:
+ case LDAP_FILTER_EXT:
+ break;
+ case LDAP_FILTER_NOT: not ^= 1;
+ /* FALLTHRU */
+ case LDAP_FILTER_AND:
+ case LDAP_FILTER_OR:
+ for ( f = f->f_list; f; f = f->f_next )
+ nestgroup_filter_instances( op, ad, f, not, nfn, nfp, negated );
+ }
+}
+
+static int
+nestgroup_check_needed( Operation *op, int attrflags, AttributeDescription *ad )
+{
+ if ( is_at_operational( ad->ad_type )) {
+ if ( SLAP_OPATTRS( attrflags ))
+ return 1;
+ } else {
+ if ( SLAP_USERATTRS( attrflags ))
+ return 1;
+ }
+ return ( ad_inlist( ad, op->ors_attrs ));
+}
+
+typedef struct DNpair {
+ struct berval dp_ndn;
+ struct berval dp_dn;
+ struct DNpair *dp_next;
+ int dp_flag;
+} DNpair;
+
+typedef struct gdn_info {
+ TAvlnode *gi_DNs;
+ DNpair *gi_DNlist;
+ nestgroup_info_t *gi_ngi;
+ int gi_numDNs;
+ int gi_saveDN;
+ Attribute *gi_merge;
+} gdn_info;
+
+static int
+nestgroup_dncmp( const void *v1, const void *v2 )
+{
+ return ber_bvcmp((const struct berval *)v1, (const struct berval *)v2);
+}
+
+static int
+nestgroup_gotDNresp( Operation *op, SlapReply *rs )
+{
+ if ( rs->sr_type == REP_SEARCH ) {
+ gdn_info *gi = (gdn_info *)(op->o_callback+1);
+ DNpair *dp = op->o_tmpalloc( sizeof(DNpair), op->o_tmpmemctx );
+ dp->dp_ndn = rs->sr_entry->e_nname;
+ if ( ldap_tavl_insert( &gi->gi_DNs, dp, nestgroup_dncmp, ldap_avl_dup_error )) {
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ } else {
+ ber_dupbv_x( &dp->dp_ndn, &rs->sr_entry->e_nname, op->o_tmpmemctx );
+ if ( gi->gi_saveDN )
+ ber_dupbv_x( &dp->dp_dn, &rs->sr_entry->e_name, op->o_tmpmemctx );
+ gi->gi_numDNs++;
+ dp->dp_next = gi->gi_DNlist;
+ dp->dp_flag = 0;
+ gi->gi_DNlist = dp;
+ }
+ }
+ return 0;
+}
+
+static void
+nestgroup_get_parentDNs( Operation *op, struct berval *ndn )
+{
+ SlapReply r = { REP_SEARCH };
+ gdn_info *gi = (gdn_info *)(op->o_callback+1);
+ nestgroup_info_t *ngi = gi->gi_ngi;
+ int i;
+
+ op->ors_filter->f_av_value = *ndn;
+ for ( i=0; !BER_BVISEMPTY( &ngi->ngi_ngroupBase[i] ); i++ ) {
+ op->o_req_dn = ngi->ngi_groupBase[i];
+ op->o_req_ndn = ngi->ngi_ngroupBase[i];
+ op->o_bd->be_search( op, &r );
+ }
+ gi->gi_numDNs = 0; /* ignore first count, that's just the original member= result set */
+
+ while ( gi->gi_DNlist ) {
+ int prevnum;
+ DNpair *dp = gi->gi_DNlist;
+ gi->gi_DNlist = NULL;
+ for ( ; dp; dp=dp->dp_next ) {
+ op->ors_filter->f_av_value = dp->dp_ndn;
+ prevnum = gi->gi_numDNs;
+ for ( i=0; !BER_BVISEMPTY( &ngi->ngi_ngroupBase[i] ); i++ ) {
+ op->o_req_dn = ngi->ngi_groupBase[i];
+ op->o_req_ndn = ngi->ngi_ngroupBase[i];
+ op->o_bd->be_search( op, &r );
+ }
+ if ( gi->gi_numDNs > prevnum )
+ dp->dp_flag = 1; /* this group had a parent */
+ }
+ }
+}
+
+static void
+nestgroup_memberFilter( Operation *op, int mbr_nf, nestgroup_filterinst_t *mbr_f )
+{
+ slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+ AttributeDescription *ad = mbr_f[0].nf_f->f_av_desc;
+ slap_callback *sc;
+ gdn_info *gi;
+ Filter mf;
+ AttributeAssertion mava;
+ Operation o = *op;
+ int i;
+
+ o.o_managedsait = SLAP_CONTROL_CRITICAL;
+ sc = op->o_tmpcalloc( 1, sizeof(slap_callback) + sizeof(gdn_info), op->o_tmpmemctx);
+ gi = (gdn_info *)(sc+1);
+ gi->gi_ngi = ngi;
+ o.o_callback = sc;
+ sc->sc_response = nestgroup_gotDNresp;
+ o.ors_attrs = slap_anlist_no_attrs;
+
+ mf.f_choice = LDAP_FILTER_EQUALITY;
+ mf.f_ava = &mava;
+ mf.f_av_desc = ad;
+ mf.f_next = NULL;
+
+ o.ors_scope = LDAP_SCOPE_SUBTREE;
+ o.ors_deref = LDAP_DEREF_NEVER;
+ o.ors_limit = NULL;
+ o.ors_tlimit = SLAP_NO_LIMIT;
+ o.ors_slimit = SLAP_NO_LIMIT;
+ o.ors_filter = &mf;
+ o.o_bd->bd_info = (BackendInfo *)on->on_info;
+
+ for ( i=0; i<mbr_nf; i++ ) {
+ gi->gi_DNs = NULL;
+ gi->gi_numDNs = 0;
+ nestgroup_get_parentDNs( &o, &mbr_f[i].nf_f->f_av_value );
+ if ( gi->gi_numDNs ) {
+ int j;
+ Filter *f, *nf;
+ TAvlnode *t;
+ DNpair *dp;
+
+ f = op->o_tmpalloc( sizeof(Filter), op->o_tmpmemctx );
+ f->f_next = NULL;
+ t = ldap_tavl_end( gi->gi_DNs, TAVL_DIR_RIGHT );
+ do {
+ dp = t->avl_data;
+ if ( dp->dp_flag ) {
+ nf = f;
+ nf->f_ava = op->o_tmpcalloc( 1, sizeof( AttributeAssertion ), op->o_tmpmemctx );
+ nf->f_choice = LDAP_FILTER_EQUALITY;
+ nf->f_av_desc = ad;
+ nf->f_av_value = dp->dp_ndn;
+ f = op->o_tmpalloc( sizeof(Filter), op->o_tmpmemctx );
+ f->f_next = nf;
+ }
+ t = ldap_tavl_next( t, TAVL_DIR_LEFT );
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ } while ( t );
+ ldap_tavl_free( gi->gi_DNs, NULL );
+ f->f_choice = LDAP_FILTER_EQUALITY;
+ f->f_ava = mbr_f[i].nf_f->f_ava;
+ mbr_f[i].nf_new = f;
+ }
+ }
+ o.o_bd->bd_info = (BackendInfo *)on->on_info;
+ op->o_tmpfree( sc, op->o_tmpmemctx );
+}
+
+static void
+nestgroup_addUnique( Operation *op, Attribute *old, Attribute *new )
+{
+ /* strip out any duplicates from new before adding */
+ struct berval *bv, *nbv;
+ int i, j, flags;
+
+ bv = op->o_tmpalloc( (new->a_numvals + 1) * 2 * sizeof(struct berval), op->o_tmpmemctx );
+ nbv = bv + new->a_numvals+1;
+
+ flags = SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH|SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH;
+ for (i=0,j=0; i<new->a_numvals; i++) {
+ int rc = attr_valfind( old, flags, &new->a_nvals[i], NULL, NULL );
+ if ( rc ) {
+ bv[j] = new->a_vals[i];
+ nbv[j++] = new->a_nvals[i];
+ }
+ }
+ BER_BVZERO( &bv[j] );
+ BER_BVZERO( &nbv[j] );
+ attr_valadd( old, bv, nbv, j );
+ op->o_tmpfree( bv, op->o_tmpmemctx );
+}
+
+static void
+nestgroup_get_childDNs( Operation *op, slap_overinst *on, gdn_info *gi, struct berval *ndn )
+{
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+ Entry *e;
+ Attribute *a;
+
+ if ( overlay_entry_get_ov( op, ndn, NULL, NULL, 0, &e, on ) != LDAP_SUCCESS || e == NULL )
+ return;
+
+ a = attr_find( e->e_attrs, ngi->ngi_member );
+ if ( a ) {
+ int i, j;
+ for (i = 0; i<a->a_numvals; i++ ) {
+ /* record all group entries */
+ for (j = 0; !BER_BVISEMPTY( &ngi->ngi_groupBase[j] ); j++) {
+ if ( dnIsSuffix( &a->a_nvals[i], &ngi->ngi_ngroupBase[j] )) {
+ DNpair *dp = op->o_tmpalloc( sizeof(DNpair), op->o_tmpmemctx );
+ dp->dp_ndn = a->a_nvals[i];
+ if ( ldap_tavl_insert( &gi->gi_DNs, dp, nestgroup_dncmp, ldap_avl_dup_error )) {
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ } else {
+ ber_dupbv_x( &dp->dp_ndn, &a->a_nvals[i], op->o_tmpmemctx );
+ gi->gi_numDNs++;
+ dp->dp_next = gi->gi_DNlist;
+ gi->gi_DNlist = dp;
+ }
+ break;
+ }
+ }
+ }
+ if ( gi->gi_merge ) {
+ nestgroup_addUnique( op, gi->gi_merge, a );
+ }
+ }
+ overlay_entry_release_ov( op, e, 0, on );
+}
+
+static void
+nestgroup_memberOfFilter( Operation *op, int mof_nf, nestgroup_filterinst_t *mof_f )
+{
+ slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
+ AttributeDescription *ad = mof_f[0].nf_f->f_av_desc;
+ gdn_info gi = {0};
+ int i;
+
+ for ( i=0; i<mof_nf; i++ ) {
+ gi.gi_DNs = NULL;
+ gi.gi_numDNs = 0;
+ nestgroup_get_childDNs( op, on, &gi, &mof_f[i].nf_f->f_av_value );
+
+ while ( gi.gi_DNlist ) {
+ DNpair *dp = gi.gi_DNlist;
+ gi.gi_DNlist = NULL;
+ for ( ; dp; dp=dp->dp_next ) {
+ nestgroup_get_childDNs( op, on, &gi, &dp->dp_ndn );
+ }
+ }
+
+ if ( gi.gi_numDNs ) {
+ int j;
+ Filter *f, *nf;
+ TAvlnode *t;
+ DNpair *dp;
+
+ f = op->o_tmpalloc( sizeof(Filter), op->o_tmpmemctx );
+ f->f_next = NULL;
+ t = ldap_tavl_end( gi.gi_DNs, TAVL_DIR_RIGHT );
+ do {
+ dp = t->avl_data;
+ nf = f;
+ nf->f_ava = op->o_tmpcalloc( 1, sizeof( AttributeAssertion ), op->o_tmpmemctx );
+ nf->f_choice = LDAP_FILTER_EQUALITY;
+ nf->f_av_desc = ad;
+ nf->f_av_value = dp->dp_ndn;
+ f = op->o_tmpalloc( sizeof(Filter), op->o_tmpmemctx );
+ f->f_next = nf;
+ t = ldap_tavl_next( t, TAVL_DIR_LEFT );
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ } while ( t );
+ ldap_tavl_free( gi.gi_DNs, NULL );
+ f->f_choice = LDAP_FILTER_EQUALITY;
+ f->f_ava = mof_f[i].nf_f->f_ava;
+ mof_f[i].nf_new = f;
+ }
+ }
+}
+
+static void
+nestgroup_memberOfVals( Operation *op, slap_overinst *on, Attribute *a )
+{
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+ Operation o = *op;
+ slap_callback *sc;
+ gdn_info *gi;
+ Filter mf;
+ AttributeAssertion mava;
+ int i;
+
+ o.o_managedsait = SLAP_CONTROL_CRITICAL;
+ sc = op->o_tmpcalloc( 1, sizeof(slap_callback) + sizeof(gdn_info), op->o_tmpmemctx);
+ gi = (gdn_info *)(sc+1);
+ gi->gi_ngi = ngi;
+ o.o_callback = sc;
+ sc->sc_response = nestgroup_gotDNresp;
+ o.ors_attrs = slap_anlist_no_attrs;
+
+ mf.f_choice = LDAP_FILTER_EQUALITY;
+ mf.f_ava = &mava;
+ mf.f_av_desc = ngi->ngi_member;
+ mf.f_next = NULL;
+
+ o.ors_filter = &mf;
+ o.ors_scope = LDAP_SCOPE_SUBTREE;
+ o.ors_deref = LDAP_DEREF_NEVER;
+ o.ors_limit = NULL;
+ o.ors_tlimit = SLAP_NO_LIMIT;
+ o.ors_slimit = SLAP_NO_LIMIT;
+ o.o_bd->bd_info = (BackendInfo *)on->on_info;
+ gi->gi_saveDN = 1;
+
+ for ( i=0; i<a->a_numvals; i++ ) {
+ nestgroup_get_parentDNs( &o, &a->a_nvals[i] );
+
+ while ( gi->gi_DNlist ) {
+ DNpair *dp = gi->gi_DNlist;
+ gi->gi_DNlist = NULL;
+ for ( ; dp; dp=dp->dp_next ) {
+ nestgroup_get_parentDNs( &o, &dp->dp_ndn );
+ }
+ }
+ }
+ if ( gi->gi_DNs ) {
+ TAvlnode *p = ldap_tavl_end( gi->gi_DNs, TAVL_DIR_LEFT );
+ int flags = SLAP_MR_ASSERTED_VALUE_NORMALIZED_MATCH|SLAP_MR_ATTRIBUTE_VALUE_NORMALIZED_MATCH;
+ do {
+ DNpair *dp = p->avl_data;
+ int rc = attr_valfind( a, flags, &dp->dp_ndn, NULL, NULL );
+ if ( rc )
+ attr_valadd( a, &dp->dp_dn, &dp->dp_ndn, 1 );
+ op->o_tmpfree( dp->dp_dn.bv_val, op->o_tmpmemctx );
+ op->o_tmpfree( dp->dp_ndn.bv_val, op->o_tmpmemctx );
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ p = ldap_tavl_next( p, TAVL_DIR_RIGHT );
+ } while ( p );
+ ldap_tavl_free( gi->gi_DNs, NULL );
+ }
+ o.o_bd->bd_info = (BackendInfo *)on->on_info;
+ op->o_tmpfree( sc, op->o_tmpmemctx );
+}
+
+typedef struct nestgroup_cbinfo {
+ slap_overinst *nc_on;
+ int nc_needed;
+} nestgroup_cbinfo;
+
+static int
+nestgroup_searchresp( Operation *op, SlapReply *rs )
+{
+ if (rs->sr_type == REP_SEARCH ) {
+ nestgroup_cbinfo *nc = op->o_callback->sc_private;
+ slap_overinst *on = nc->nc_on;
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+ Attribute *a;
+
+ if ( nc->nc_needed & NG_MBR_VALUES ) {
+ a = attr_find( rs->sr_entry->e_attrs, ngi->ngi_member );
+ if ( a ) {
+ gdn_info gi = {0};
+ int i, j;
+ if ( !( rs->sr_flags & REP_ENTRY_MODIFIABLE )) {
+ Entry *e = entry_dup( rs->sr_entry );
+ rs_replace_entry( op, rs, on, e );
+ rs->sr_flags |= REP_ENTRY_MODIFIABLE | REP_ENTRY_MUSTBEFREED;
+ a = attr_find( e->e_attrs, ngi->ngi_member );
+ }
+ gi.gi_merge = a;
+
+ for ( i=0; i<a->a_numvals; i++ ) {
+ for ( j=0; !BER_BVISEMPTY( &ngi->ngi_ngroupBase[j] ); j++ ) {
+ if ( dnIsSuffix( &a->a_nvals[i], &ngi->ngi_ngroupBase[j] )) {
+ nestgroup_get_childDNs( op, on, &gi, &a->a_nvals[i] );
+
+ while ( gi.gi_DNlist ) {
+ DNpair *dp = gi.gi_DNlist;
+ gi.gi_DNlist = NULL;
+ for ( ; dp; dp=dp->dp_next ) {
+ nestgroup_get_childDNs( op, on, &gi, &dp->dp_ndn );
+ }
+ }
+ break;
+ }
+ }
+ }
+ if ( gi.gi_numDNs ) {
+ TAvlnode *p = ldap_tavl_end( gi.gi_DNs, TAVL_DIR_LEFT );
+ do {
+ DNpair *dp = p->avl_data;
+ op->o_tmpfree( dp->dp_ndn.bv_val, op->o_tmpmemctx );
+ op->o_tmpfree( dp, op->o_tmpmemctx );
+ p = ldap_tavl_next( p, TAVL_DIR_RIGHT );
+ } while ( p );
+ ldap_tavl_free( gi.gi_DNs, NULL );
+ }
+ }
+ }
+
+ if ( nc->nc_needed & NG_MOF_VALUES ) {
+ a = attr_find( rs->sr_entry->e_attrs, ngi->ngi_memberOf );
+ if ( a ) {
+ if ( !( rs->sr_flags & REP_ENTRY_MODIFIABLE )) {
+ Entry *e = entry_dup( rs->sr_entry );
+ rs_replace_entry( op, rs, on, e );
+ rs->sr_flags |= REP_ENTRY_MODIFIABLE | REP_ENTRY_MUSTBEFREED;
+ a = attr_find( e->e_attrs, ngi->ngi_memberOf );
+ }
+ nestgroup_memberOfVals( op, on, a );
+ }
+ }
+ if (( nc->nc_needed & NG_NEGATED ) &&
+ test_filter( op, rs->sr_entry, op->ors_filter ) != LDAP_COMPARE_TRUE )
+ return 0;
+ }
+ return SLAP_CB_CONTINUE;
+}
+
+static int
+nestgroup_op_search( Operation *op, SlapReply *rs )
+{
+ slap_overinst *on = (slap_overinst *) op->o_bd->bd_info;
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+ int mbr_nf = 0, mof_nf = 0, negated = 0;
+ nestgroup_filterinst_t *mbr_f = NULL, *mof_f = NULL;
+
+ if ( get_manageDSAit( op ))
+ return SLAP_CB_CONTINUE;
+
+ /* groupBase must be explicitly configured */
+ if ( !ngi->ngi_ngroupBase )
+ return SLAP_CB_CONTINUE;
+
+ /* handle attrs in filter */
+ if ( ngi->ngi_flags & NG_MBR_FILTER ) {
+ nestgroup_filter_instances( op, ngi->ngi_member, op->ors_filter, 0, &mbr_nf, &mbr_f, &negated );
+ if ( mbr_nf ) {
+ /* find member=(parent groups) */
+ nestgroup_memberFilter( op, mbr_nf, mbr_f );
+ }
+ }
+ if ( ngi->ngi_flags & NG_MOF_FILTER ) {
+ nestgroup_filter_instances( op, ngi->ngi_memberOf, op->ors_filter, 0, &mof_nf, &mof_f, &negated );
+ if ( mof_nf ) {
+ /* find memberOf=(child groups) */
+ nestgroup_memberOfFilter( op, mof_nf, mof_f );
+ }
+ }
+ if ( mbr_nf ) {
+ int i;
+ for ( i=0; i<mbr_nf; i++ ) {
+ if ( mbr_f[i].nf_new ) {
+ mbr_f[i].nf_f->f_choice = LDAP_FILTER_OR;
+ mbr_f[i].nf_f->f_list = mbr_f[i].nf_new;
+ }
+ }
+ op->o_tmpfree( mbr_f, op->o_tmpmemctx );
+ }
+ if ( mof_nf ) {
+ int i;
+ for ( i=0; i<mof_nf; i++ ) {
+ if ( mof_f[i].nf_new ) {
+ mof_f[i].nf_f->f_choice = LDAP_FILTER_OR;
+ mof_f[i].nf_f->f_list = mof_f[i].nf_new;
+ }
+ }
+ op->o_tmpfree( mof_f, op->o_tmpmemctx );
+ }
+
+ if ( ngi->ngi_flags & ( NG_MBR_VALUES|NG_MOF_VALUES )) {
+ /* check for attrs in attrlist */
+ int attrflags = slap_attr_flags( op->ors_attrs );
+ int needed = 0;
+ if (( ngi->ngi_flags & NG_MBR_VALUES ) &&
+ nestgroup_check_needed( op, attrflags, ngi->ngi_member )) {
+ /* collect all members from child groups */
+ needed |= NG_MBR_VALUES;
+ }
+ if (( ngi->ngi_flags & NG_MOF_VALUES ) &&
+ nestgroup_check_needed( op, attrflags, ngi->ngi_memberOf )) {
+ /* collect DNs of all parent groups */
+ needed |= NG_MOF_VALUES;
+ }
+ if ( needed ) {
+ nestgroup_cbinfo *nc;
+ slap_callback *sc = op->o_tmpcalloc( 1, sizeof(slap_callback)+sizeof(nestgroup_cbinfo), op->o_tmpmemctx );
+ nc = (nestgroup_cbinfo *)(sc+1);
+ sc->sc_private = nc;
+ nc->nc_needed = needed;
+ nc->nc_on = on;
+ sc->sc_response = nestgroup_searchresp;
+ sc->sc_next = op->o_callback;
+ op->o_callback = sc;
+ if ( negated ) nc->nc_needed |= NG_NEGATED;
+ }
+ }
+ return SLAP_CB_CONTINUE;
+}
+
+static int
+nestgroup_db_init(
+ BackendDB *be,
+ ConfigReply *cr)
+{
+ slap_overinst *on = (slap_overinst *)be->bd_info;
+ nestgroup_info_t *ngi;
+ int rc;
+ const char *text = NULL;
+
+ ngi = (nestgroup_info_t *)ch_calloc( 1, sizeof( *ngi ));
+ on->on_bi.bi_private = ngi;
+
+ if ( !ad_memberOf ) {
+ rc = slap_str2ad( SLAPD_MEMBEROF_ATTR, &ad_memberOf, &text );
+ if ( rc != LDAP_SUCCESS ) {
+ Debug( LDAP_DEBUG_ANY, "nestgroup_db_init: "
+ "unable to find attribute=\"%s\": %s (%d)\n",
+ SLAPD_MEMBEROF_ATTR, text, rc );
+ return rc;
+ }
+ }
+
+ if ( !ad_member ) {
+ rc = slap_str2ad( SLAPD_GROUP_ATTR, &ad_member, &text );
+ if ( rc != LDAP_SUCCESS ) {
+ Debug( LDAP_DEBUG_ANY, "nestgroup_db_init: "
+ "unable to find attribute=\"%s\": %s (%d)\n",
+ SLAPD_GROUP_ATTR, text, rc );
+ return rc;
+ }
+ }
+
+ return 0;
+}
+
+static int
+nestgroup_db_open(
+ BackendDB *be,
+ ConfigReply *cr)
+{
+ slap_overinst *on = (slap_overinst *)be->bd_info;
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+
+ if ( !ngi->ngi_member )
+ ngi->ngi_member = ad_member;
+
+ if ( !ngi->ngi_memberOf )
+ ngi->ngi_memberOf = ad_memberOf;
+
+ return 0;
+}
+
+static int
+nestgroup_db_destroy(
+ BackendDB *be,
+ ConfigReply *cr
+)
+{
+ slap_overinst *on = (slap_overinst *) be->bd_info;
+ nestgroup_info_t *ngi = on->on_bi.bi_private;
+
+ ber_bvarray_free( ngi->ngi_groupBase );
+ ber_bvarray_free( ngi->ngi_ngroupBase );
+ ch_free( ngi );
+
+ return 0;
+}
+
+static slap_overinst nestgroup;
+
+/* This overlay is set up for dynamic loading via moduleload. For static
+ * configuration, you'll need to arrange for the slap_overinst to be
+ * initialized and registered by some other function inside slapd.
+ */
+
+int nestgroup_initialize() {
+ int code;
+
+ code = register_at(
+ "( 1.2.840.113556.1.2.102 "
+ "NAME 'memberOf' "
+ "DESC 'Group that the entry belongs to' "
+ "SYNTAX '1.3.6.1.4.1.1466.115.121.1.12' "
+ "EQUALITY distinguishedNameMatch " /* added */
+ "USAGE dSAOperation " /* added; questioned */
+ "NO-USER-MODIFICATION " /* added */
+ "X-ORIGIN 'iPlanet Delegated Administrator' )",
+ &ad_memberOf, 0 );
+ if ( code && code != SLAP_SCHERR_ATTR_DUP ) {
+ Debug( LDAP_DEBUG_ANY,
+ "nestgroup_initialize: register_at (memberOf) failed\n" );
+ return code;
+ }
+
+ nestgroup.on_bi.bi_type = "nestgroup";
+ nestgroup.on_bi.bi_db_init = nestgroup_db_init;
+ nestgroup.on_bi.bi_db_open = nestgroup_db_open;
+ nestgroup.on_bi.bi_db_destroy = nestgroup_db_destroy;
+
+ nestgroup.on_bi.bi_op_search = nestgroup_op_search;
+/* nestgroup.on_bi.bi_op_compare = nestgroup_op_compare; */
+
+ nestgroup.on_bi.bi_cf_ocs = ngroupocs;
+ code = config_register_schema( ngroupcfg, ngroupocs );
+ if ( code ) return code;
+
+ return overlay_register( &nestgroup );
+}
+
+#if SLAPD_OVER_NESTGROUP == SLAPD_MOD_DYNAMIC
+int
+init_module( int argc, char *argv[] )
+{
+ return nestgroup_initialize();
+}
+#endif
+
+#endif /* defined(SLAPD_OVER_NESTGROUP) */
diff --git a/servers/slapd/overlays/otp.c b/servers/slapd/overlays/otp.c
index 590ee50..b39c186 100644
--- a/servers/slapd/overlays/otp.c
+++ b/servers/slapd/overlays/otp.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2015-2022 The OpenLDAP Foundation.
+ * Copyright 2015-2024 The OpenLDAP Foundation.
* Portions Copyright 2015 by Howard Chu, Symas Corp.
* Portions Copyright 2016-2017 by Michael Ströder <michael@stroeder.com>
* Portions Copyright 2018 by Ondřej Kuzník, Symas Corp.
diff --git a/servers/slapd/overlays/overlays.c b/servers/slapd/overlays/overlays.c
index 8290200..6ee4395 100644
--- a/servers/slapd/overlays/overlays.c
+++ b/servers/slapd/overlays/overlays.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Copyright 2003 by Howard Chu.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c
index 2b947e4..3a1e18a 100644
--- a/servers/slapd/overlays/pcache.c
+++ b/servers/slapd/overlays/pcache.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 IBM Corporation.
* Portions Copyright 2003-2009 Symas Corporation.
* All rights reserved.
diff --git a/servers/slapd/overlays/ppolicy.c b/servers/slapd/overlays/ppolicy.c
index 29a77c8..0cdba70 100644
--- a/servers/slapd/overlays/ppolicy.c
+++ b/servers/slapd/overlays/ppolicy.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004-2005 Howard Chu, Symas Corporation.
* Portions Copyright 2004 Hewlett-Packard Company.
* All rights reserved.
diff --git a/servers/slapd/overlays/refint.c b/servers/slapd/overlays/refint.c
index 201803b..77935a7 100644
--- a/servers/slapd/overlays/refint.c
+++ b/servers/slapd/overlays/refint.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Symas Corporation.
* All rights reserved.
*
@@ -603,6 +603,7 @@ refint_repair(
op->o_ndn = op->o_bd->be_rootndn;
cache = op->o_do_not_cache;
op->o_do_not_cache = 1;
+ op->o_abandon = 0;
/* search */
rc = op->o_bd->be_search( op, &rs );
diff --git a/servers/slapd/overlays/remoteauth.c b/servers/slapd/overlays/remoteauth.c
index 1d60af0..63f784e 100644
--- a/servers/slapd/overlays/remoteauth.c
+++ b/servers/slapd/overlays/remoteauth.c
@@ -2,7 +2,7 @@
/* remoteauth.c - Overlay to delegate bind processing to a remote server */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2017-2021 Ondřej Kuzník, Symas Corporation.
* Portions Copyright 2004-2017 Howard Chu, Symas Corporation.
* Portions Copyright 2004 Hewlett-Packard Company.
diff --git a/servers/slapd/overlays/retcode.c b/servers/slapd/overlays/retcode.c
index 15052e0..85b8f74 100644
--- a/servers/slapd/overlays/retcode.c
+++ b/servers/slapd/overlays/retcode.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions Copyright 2005 Pierangelo Masarati <ando@sys-net.it>
* All rights reserved.
*
diff --git a/servers/slapd/overlays/rwm.c b/servers/slapd/overlays/rwm.c
index af10f6d..d12d7b3 100644
--- a/servers/slapd/overlays/rwm.c
+++ b/servers/slapd/overlays/rwm.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/rwm.h b/servers/slapd/overlays/rwm.h
index 6753737..1504699 100644
--- a/servers/slapd/overlays/rwm.h
+++ b/servers/slapd/overlays/rwm.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/overlays/rwmconf.c b/servers/slapd/overlays/rwmconf.c
index a1a9f36..4b3c690 100644
--- a/servers/slapd/overlays/rwmconf.c
+++ b/servers/slapd/overlays/rwmconf.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/overlays/rwmdn.c b/servers/slapd/overlays/rwmdn.c
index c67e3cf..fd53002 100644
--- a/servers/slapd/overlays/rwmdn.c
+++ b/servers/slapd/overlays/rwmdn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/overlays/rwmmap.c b/servers/slapd/overlays/rwmmap.c
index 74ffd05..90a800c 100644
--- a/servers/slapd/overlays/rwmmap.c
+++ b/servers/slapd/overlays/rwmmap.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* Portions Copyright 1999-2003 Howard Chu.
* Portions Copyright 2000-2003 Pierangelo Masarati.
* All rights reserved.
diff --git a/servers/slapd/overlays/seqmod.c b/servers/slapd/overlays/seqmod.c
index 503d6a6..64c1c33 100644
--- a/servers/slapd/overlays/seqmod.c
+++ b/servers/slapd/overlays/seqmod.c
@@ -1,7 +1,7 @@
/* seqmod.c - sequenced modifies */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/overlays/sssvlv.c b/servers/slapd/overlays/sssvlv.c
index 828782a..95803d9 100644
--- a/servers/slapd/overlays/sssvlv.c
+++ b/servers/slapd/overlays/sssvlv.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2009-2022 The OpenLDAP Foundation.
+ * Copyright 2009-2024 The OpenLDAP Foundation.
* Portions copyright 2009 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c
index f208846..6739e24 100644
--- a/servers/slapd/overlays/syncprov.c
+++ b/servers/slapd/overlays/syncprov.c
@@ -2,7 +2,7 @@
/* syncprov.c - syncrepl provider */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -3878,14 +3878,14 @@ sp_cf_gen(ConfigArgs *c)
break;
case SP_NOPRES:
si->si_nopres = c->value_int;
- break;
- case SP_USEHINT:
- si->si_usehint = c->value_int;
- if ( si->si_usehint ) {
+ if ( si->si_nopres ) {
/* Consider we might be a delta provider, but it's ok if not */
(void)syncprov_setup_accesslog();
}
break;
+ case SP_USEHINT:
+ si->si_usehint = c->value_int;
+ break;
case SP_LOGDB:
if ( si->si_logs ) {
Debug( LDAP_DEBUG_ANY, "syncprov_config: while configuring "
diff --git a/servers/slapd/overlays/translucent.c b/servers/slapd/overlays/translucent.c
index 09b12dc..0b2fa4c 100644
--- a/servers/slapd/overlays/translucent.c
+++ b/servers/slapd/overlays/translucent.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2005 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/unique.c b/servers/slapd/overlays/unique.c
index 561d86d..c3913af 100644
--- a/servers/slapd/overlays/unique.c
+++ b/servers/slapd/overlays/unique.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004,2006-2007 Symas Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/overlays/valsort.c b/servers/slapd/overlays/valsort.c
index 3d998e2..6cc95f7 100644
--- a/servers/slapd/overlays/valsort.c
+++ b/servers/slapd/overlays/valsort.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* Portions copyright 2005 Symas Corporation.
* All rights reserved.
*
@@ -201,7 +201,7 @@ valsort_cf_func(ConfigArgs *c) {
return(1);
}
- for ( vip = &on->on_bi.bi_private; *vip; vip = &(*vip)->vi_next )
+ for ( vip = (valsort_info **)&on->on_bi.bi_private; *vip; vip = &(*vip)->vi_next )
/* Get to the end */ ;
vi = ch_malloc( sizeof(valsort_info) );
diff --git a/servers/slapd/passwd.c b/servers/slapd/passwd.c
index b6b1ddb..942c2a2 100644
--- a/servers/slapd/passwd.c
+++ b/servers/slapd/passwd.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/phonetic.c b/servers/slapd/phonetic.c
index ed3641c..c6ec98f 100644
--- a/servers/slapd/phonetic.c
+++ b/servers/slapd/phonetic.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h
index 4b223ec..0d58ddb 100644
--- a/servers/slapd/proto-slap.h
+++ b/servers/slapd/proto-slap.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/proxyp.c b/servers/slapd/proxyp.c
index c548bca..205bf26 100644
--- a/servers/slapd/proxyp.c
+++ b/servers/slapd/proxyp.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/pwmods/Makefile.in b/servers/slapd/pwmods/Makefile.in
index e8d76b8..1845c8d 100644
--- a/servers/slapd/pwmods/Makefile.in
+++ b/servers/slapd/pwmods/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2003-2022 The OpenLDAP Foundation.
+## Copyright 2003-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/pwmods/README.argon2 b/servers/slapd/pwmods/README.argon2
index 33c562b..adb076f 100644
--- a/servers/slapd/pwmods/README.argon2
+++ b/servers/slapd/pwmods/README.argon2
@@ -83,7 +83,7 @@ $ ldapsearch -b "dc=example,dc=com" -D "uid=jturner,ou=People,dc=example,dc=com"
This work is part of OpenLDAP Software <http://www.openldap.org/>.
-Copyright 2017-2022 The OpenLDAP Foundation.
+Copyright 2017-2024 The OpenLDAP Foundation.
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/pwmods/argon2.c b/servers/slapd/pwmods/argon2.c
index f3f7b4c..68d4ad7 100644
--- a/servers/slapd/pwmods/argon2.c
+++ b/servers/slapd/pwmods/argon2.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2017-2022 The OpenLDAP Foundation.
+ * Copyright 2017-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/referral.c b/servers/slapd/referral.c
index 57465c0..519cc7c 100644
--- a/servers/slapd/referral.c
+++ b/servers/slapd/referral.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/result.c b/servers/slapd/result.c
index a928e95..56ca2c2 100644
--- a/servers/slapd/result.c
+++ b/servers/slapd/result.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/root_dse.c b/servers/slapd/root_dse.c
index 368bd9b..4deb730 100644
--- a/servers/slapd/root_dse.c
+++ b/servers/slapd/root_dse.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1999-2022 The OpenLDAP Foundation.
+ * Copyright 1999-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c
index 1e17304..fff68a2 100644
--- a/servers/slapd/sasl.c
+++ b/servers/slapd/sasl.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/saslauthz.c b/servers/slapd/saslauthz.c
index 181f40f..744a514 100644
--- a/servers/slapd/saslauthz.c
+++ b/servers/slapd/saslauthz.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 2000 Mark Adamson, Carnegie Mellon.
* All rights reserved.
*
diff --git a/servers/slapd/schema.c b/servers/slapd/schema.c
index a98f0c6..ea3b41b 100644
--- a/servers/slapd/schema.c
+++ b/servers/slapd/schema.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/README b/servers/slapd/schema/README
index 9ae23ca..13f9d66 100644
--- a/servers/slapd/schema/README
+++ b/servers/slapd/schema/README
@@ -36,7 +36,7 @@ convert schema files in general.
This notice applies to all files in this directory.
-Copyright 1998-2022 The OpenLDAP Foundation, Redwood City, California, USA
+Copyright 1998-2024 The OpenLDAP Foundation, Redwood City, California, USA
All rights reserved.
Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/collective.ldif b/servers/slapd/schema/collective.ldif
index fa62326..eab42bf 100644
--- a/servers/slapd/schema/collective.ldif
+++ b/servers/slapd/schema/collective.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/corba.ldif b/servers/slapd/schema/corba.ldif
index 2933932..622572b 100644
--- a/servers/slapd/schema/corba.ldif
+++ b/servers/slapd/schema/corba.ldif
@@ -3,7 +3,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/cosine.ldif b/servers/slapd/schema/cosine.ldif
index 311d9ce..61d02f5 100644
--- a/servers/slapd/schema/cosine.ldif
+++ b/servers/slapd/schema/cosine.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/dsee.ldif b/servers/slapd/schema/dsee.ldif
index 798fe51..c970cf1 100644
--- a/servers/slapd/schema/dsee.ldif
+++ b/servers/slapd/schema/dsee.ldif
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2019-2022 The OpenLDAP Foundation.
+## Copyright 2019-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/dsee.schema b/servers/slapd/schema/dsee.schema
index 18a9190..79be215 100644
--- a/servers/slapd/schema/dsee.schema
+++ b/servers/slapd/schema/dsee.schema
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2019-2022 The OpenLDAP Foundation.
+## Copyright 2019-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/duaconf.ldif b/servers/slapd/schema/duaconf.ldif
index 2bfd5a0..13d82ac 100644
--- a/servers/slapd/schema/duaconf.ldif
+++ b/servers/slapd/schema/duaconf.ldif
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/dyngroup.ldif b/servers/slapd/schema/dyngroup.ldif
index 7383091..5809c50 100644
--- a/servers/slapd/schema/dyngroup.ldif
+++ b/servers/slapd/schema/dyngroup.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/dyngroup.schema b/servers/slapd/schema/dyngroup.schema
index f756c33..66417ae 100644
--- a/servers/slapd/schema/dyngroup.schema
+++ b/servers/slapd/schema/dyngroup.schema
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/inetorgperson.ldif b/servers/slapd/schema/inetorgperson.ldif
index 780f848..a8deccc 100644
--- a/servers/slapd/schema/inetorgperson.ldif
+++ b/servers/slapd/schema/inetorgperson.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/java.ldif b/servers/slapd/schema/java.ldif
index 74f202e..2bc46f0 100644
--- a/servers/slapd/schema/java.ldif
+++ b/servers/slapd/schema/java.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/misc.ldif b/servers/slapd/schema/misc.ldif
index a77a7e3..74de21e 100644
--- a/servers/slapd/schema/misc.ldif
+++ b/servers/slapd/schema/misc.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/misc.schema b/servers/slapd/schema/misc.schema
index 150abbc..d3cc8c3 100644
--- a/servers/slapd/schema/misc.schema
+++ b/servers/slapd/schema/misc.schema
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/msuser.ldif b/servers/slapd/schema/msuser.ldif
index 9211c91..cab9916 100644
--- a/servers/slapd/schema/msuser.ldif
+++ b/servers/slapd/schema/msuser.ldif
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2018-2022 The OpenLDAP Foundation.
+## Copyright 2018-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/msuser.schema b/servers/slapd/schema/msuser.schema
index 4cce48f..5870d46 100644
--- a/servers/slapd/schema/msuser.schema
+++ b/servers/slapd/schema/msuser.schema
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2018-2022 The OpenLDAP Foundation.
+## Copyright 2018-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/namedobject.ldif b/servers/slapd/schema/namedobject.ldif
index d2c2e24..34e6b2f 100644
--- a/servers/slapd/schema/namedobject.ldif
+++ b/servers/slapd/schema/namedobject.ldif
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 2021-2022 The OpenLDAP Foundation.
+## Copyright 2021-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/nis.ldif b/servers/slapd/schema/nis.ldif
index f623e29..55facdf 100644
--- a/servers/slapd/schema/nis.ldif
+++ b/servers/slapd/schema/nis.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/nis.schema b/servers/slapd/schema/nis.schema
index 1322fe5..20c59a9 100644
--- a/servers/slapd/schema/nis.schema
+++ b/servers/slapd/schema/nis.schema
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/openldap.ldif b/servers/slapd/schema/openldap.ldif
index ef44da3..1f0bf45 100644
--- a/servers/slapd/schema/openldap.ldif
+++ b/servers/slapd/schema/openldap.ldif
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/openldap.schema b/servers/slapd/schema/openldap.schema
index ae27205..383b97f 100644
--- a/servers/slapd/schema/openldap.schema
+++ b/servers/slapd/schema/openldap.schema
@@ -1,7 +1,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema/pmi.ldif b/servers/slapd/schema/pmi.ldif
index c6d9cc3..29616b7 100644
--- a/servers/slapd/schema/pmi.ldif
+++ b/servers/slapd/schema/pmi.ldif
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## All rights reserved.
##
## Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema_check.c b/servers/slapd/schema_check.c
index b6090be..6331bdb 100644
--- a/servers/slapd/schema_check.c
+++ b/servers/slapd/schema_check.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c
index 4564043..5c0c6c9 100644
--- a/servers/slapd/schema_init.c
+++ b/servers/slapd/schema_init.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c
index b8793f5..fbf44cf 100644
--- a/servers/slapd/schema_prep.c
+++ b/servers/slapd/schema_prep.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/schemaparse.c b/servers/slapd/schemaparse.c
index a13c89c..55f8028 100644
--- a/servers/slapd/schemaparse.c
+++ b/servers/slapd/schemaparse.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/search.c b/servers/slapd/search.c
index 7846f0f..993923e 100644
--- a/servers/slapd/search.c
+++ b/servers/slapd/search.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/sets.c b/servers/slapd/sets.c
index 9ab2b36..ad3c70e 100644
--- a/servers/slapd/sets.c
+++ b/servers/slapd/sets.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2000-2022 The OpenLDAP Foundation.
+ * Copyright 2000-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/sets.h b/servers/slapd/sets.h
index c2b7673..f930d63 100644
--- a/servers/slapd/sets.h
+++ b/servers/slapd/sets.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/sl_malloc.c b/servers/slapd/sl_malloc.c
index 9765bc3..8ac07db 100644
--- a/servers/slapd/sl_malloc.c
+++ b/servers/slapd/sl_malloc.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slap-cfglog.h b/servers/slapd/slap-cfglog.h
index 1ad67ff..3c5a99c 100644
--- a/servers/slapd/slap-cfglog.h
+++ b/servers/slapd/slap-cfglog.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slap-config.h b/servers/slapd/slap-config.h
index ed67474..6e32ae1 100644
--- a/servers/slapd/slap-config.h
+++ b/servers/slapd/slap-config.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h
index 946e552..3df63e0 100644
--- a/servers/slapd/slap.h
+++ b/servers/slapd/slap.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slapacl.c b/servers/slapd/slapacl.c
index f5bdd09..9c67e5e 100644
--- a/servers/slapd/slapacl.c
+++ b/servers/slapd/slapacl.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/slapadd.c b/servers/slapd/slapadd.c
index 056d80a..de848b3 100644
--- a/servers/slapd/slapadd.c
+++ b/servers/slapd/slapadd.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
diff --git a/servers/slapd/slapauth.c b/servers/slapd/slapauth.c
index 19cdcaf..edfa77b 100644
--- a/servers/slapd/slapauth.c
+++ b/servers/slapd/slapauth.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/slapcat.c b/servers/slapd/slapcat.c
index 6f580e7..91775f0 100644
--- a/servers/slapd/slapcat.c
+++ b/servers/slapd/slapcat.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
diff --git a/servers/slapd/slapcommon.c b/servers/slapd/slapcommon.c
index 374d08f..8353ae2 100644
--- a/servers/slapd/slapcommon.c
+++ b/servers/slapd/slapcommon.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
diff --git a/servers/slapd/slapcommon.h b/servers/slapd/slapcommon.h
index f0de178..7fe0695 100644
--- a/servers/slapd/slapcommon.h
+++ b/servers/slapd/slapcommon.h
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slapdn.c b/servers/slapd/slapdn.c
index d38322e..03d686f 100644
--- a/servers/slapd/slapdn.c
+++ b/servers/slapd/slapdn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/Makefile.in b/servers/slapd/slapi/Makefile.in
index 32ade0c..2ffb5b2 100644
--- a/servers/slapd/slapi/Makefile.in
+++ b/servers/slapd/slapi/Makefile.in
@@ -2,7 +2,7 @@
# $OpenLDAP$
## This work is part of OpenLDAP Software <http://www.openldap.org/>.
##
-## Copyright 1998-2022 The OpenLDAP Foundation.
+## Copyright 1998-2024 The OpenLDAP Foundation.
## Portions Copyright IBM Corp. 1997,2002,2003
## All rights reserved.
##
diff --git a/servers/slapd/slapi/plugin.c b/servers/slapd/slapi/plugin.c
index ca5dbea..e75b0c1 100644
--- a/servers/slapd/slapi/plugin.c
+++ b/servers/slapd/slapi/plugin.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
@@ -694,7 +694,7 @@ slapi_int_read_config(
int rc;
Slapi_PBlock *pPlugin;
- pPlugin = plugin_pblock_new( iType, numPluginArgc, c->argv );
+ pPlugin = plugin_pblock_new( iType, numPluginArgc, c );
if (pPlugin == NULL) {
return 1;
}
diff --git a/servers/slapd/slapi/printmsg.c b/servers/slapd/slapi/printmsg.c
index 5251846..52283b9 100644
--- a/servers/slapd/slapi/printmsg.c
+++ b/servers/slapd/slapi/printmsg.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/proto-slapi.h b/servers/slapd/slapi/proto-slapi.h
index e9eb76b..219e8a1 100644
--- a/servers/slapd/slapi/proto-slapi.h
+++ b/servers/slapd/slapi/proto-slapi.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/slapi.h b/servers/slapd/slapi/slapi.h
index 14d6bc1..127e882 100644
--- a/servers/slapd/slapi/slapi.h
+++ b/servers/slapd/slapi/slapi.h
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/slapi_dn.c b/servers/slapd/slapi/slapi_dn.c
index 32d04d2..db4c5c2 100644
--- a/servers/slapd/slapi/slapi_dn.c
+++ b/servers/slapd/slapi/slapi_dn.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2005-2022 The OpenLDAP Foundation.
+ * Copyright 2005-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slapi/slapi_ext.c b/servers/slapd/slapi/slapi_ext.c
index 81a50f1..3e5da25 100644
--- a/servers/slapd/slapi/slapi_ext.c
+++ b/servers/slapd/slapi/slapi_ext.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slapi/slapi_ops.c b/servers/slapd/slapi/slapi_ops.c
index afec4bd..89dcc1a 100644
--- a/servers/slapd/slapi/slapi_ops.c
+++ b/servers/slapd/slapi/slapi_ops.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/slapi_overlay.c b/servers/slapd/slapi/slapi_overlay.c
index b01793b..1516f0b 100644
--- a/servers/slapd/slapi/slapi_overlay.c
+++ b/servers/slapd/slapi/slapi_overlay.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2001-2022 The OpenLDAP Foundation.
+ * Copyright 2001-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/slapi/slapi_pblock.c b/servers/slapd/slapi/slapi_pblock.c
index 2c0afda..98a0efe 100644
--- a/servers/slapd/slapi/slapi_pblock.c
+++ b/servers/slapd/slapi/slapi_pblock.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapi/slapi_utils.c b/servers/slapd/slapi/slapi_utils.c
index c459122..37d385d 100644
--- a/servers/slapd/slapi/slapi_utils.c
+++ b/servers/slapd/slapi/slapi_utils.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2002-2022 The OpenLDAP Foundation.
+ * Copyright 2002-2024 The OpenLDAP Foundation.
* Portions Copyright 1997,2002-2003 IBM Corporation.
* All rights reserved.
*
diff --git a/servers/slapd/slapindex.c b/servers/slapd/slapindex.c
index 8400e82..a933884 100644
--- a/servers/slapd/slapindex.c
+++ b/servers/slapd/slapindex.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/slapmodify.c b/servers/slapd/slapmodify.c
index d59eba6..7dbdb0d 100644
--- a/servers/slapd/slapmodify.c
+++ b/servers/slapd/slapmodify.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
diff --git a/servers/slapd/slappasswd.c b/servers/slapd/slappasswd.c
index e384364..044b9d4 100644
--- a/servers/slapd/slappasswd.c
+++ b/servers/slapd/slappasswd.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* All rights reserved.
*
diff --git a/servers/slapd/slapschema.c b/servers/slapd/slapschema.c
index f1d1d18..768da33 100644
--- a/servers/slapd/slapschema.c
+++ b/servers/slapd/slapschema.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1998-2003 Kurt D. Zeilenga.
* Portions Copyright 2003 IBM Corporation.
* All rights reserved.
diff --git a/servers/slapd/slaptest.c b/servers/slapd/slaptest.c
index 4992147..f9af027 100644
--- a/servers/slapd/slaptest.c
+++ b/servers/slapd/slaptest.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2004-2022 The OpenLDAP Foundation.
+ * Copyright 2004-2024 The OpenLDAP Foundation.
* Portions Copyright 2004 Pierangelo Masarati.
* All rights reserved.
*
diff --git a/servers/slapd/starttls.c b/servers/slapd/starttls.c
index 6a3c90b..3a98bbb 100644
--- a/servers/slapd/starttls.c
+++ b/servers/slapd/starttls.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/str2filter.c b/servers/slapd/str2filter.c
index 8642ec3..5daca5a 100644
--- a/servers/slapd/str2filter.c
+++ b/servers/slapd/str2filter.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c
index 80f73a2..0299b3d 100644
--- a/servers/slapd/syncrepl.c
+++ b/servers/slapd/syncrepl.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* Portions Copyright 2003 by IBM Corporation.
* Portions Copyright 2003-2008 by Howard Chu, Symas Corporation.
* All rights reserved.
diff --git a/servers/slapd/syntax.c b/servers/slapd/syntax.c
index 0400011..1546e31 100644
--- a/servers/slapd/syntax.c
+++ b/servers/slapd/syntax.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/txn.c b/servers/slapd/txn.c
index 785a2d5..1ddc2a8 100644
--- a/servers/slapd/txn.c
+++ b/servers/slapd/txn.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/unbind.c b/servers/slapd/unbind.c
index 7995ac2..13b0963 100644
--- a/servers/slapd/unbind.c
+++ b/servers/slapd/unbind.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/user.c b/servers/slapd/user.c
index 8adee4f..0a65218 100644
--- a/servers/slapd/user.c
+++ b/servers/slapd/user.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* Portions Copyright 1999 PM Lashley.
* All rights reserved.
*
diff --git a/servers/slapd/value.c b/servers/slapd/value.c
index 0f0cffc..00e6bed 100644
--- a/servers/slapd/value.c
+++ b/servers/slapd/value.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/verbs.c b/servers/slapd/verbs.c
index 36c53e3..7571732 100644
--- a/servers/slapd/verbs.c
+++ b/servers/slapd/verbs.c
@@ -1,7 +1,7 @@
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 1998-2022 The OpenLDAP Foundation.
+ * Copyright 1998-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/servers/slapd/zn_malloc.c b/servers/slapd/zn_malloc.c
index e2cdc21..70d5409 100644
--- a/servers/slapd/zn_malloc.c
+++ b/servers/slapd/zn_malloc.c
@@ -2,7 +2,7 @@
/* $OpenLDAP$*/
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
- * Copyright 2003-2022 The OpenLDAP Foundation.
+ * Copyright 2003-2024 The OpenLDAP Foundation.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without