holds a single attribute type 'componentTest'. Fix
up test031 to avoid modification of standard schema.
(Not sure why this attribute is needed, tests likely
should operate on userCertificate and other existing
attributes which complex syntaxes.)
This had the effect of setting the result code to LDAP_SUCCESS for modlist == NULL
even on a replica when an update-ref might be set. This was causing a plugin (that
implements the commit phase in a post-op plugin) to write to "read-only" replica.
returned by the plugin, rather than that requested by backend_attribute(),
for ACL checking.
They should of course be the same but this is the "correct" approach from
both a security and readability perspective
and "implementing GSER and Component Matching" in ODD 2004.
All codes are #ifdef'd with LDAP_COMP_MATCH.
test031-component-filter works correctly only when the LDAP_COMP_MATCH macro is set.
To disable it, set AC_WITH_COMP_MATCH "no" in "openldap_src/tests/run.in".
SLAPI always assigning connection and operation IDs of zero for internal
operations, such operations would cause a stale contextCSN to be returned from
slap_get_commit_csn(). As a result, SLAPI internal updates would be invisible
to replicas until an external update was made. Also, SLAPI internal operations
never called slap_graduate_commit_csn() which leaked pending CSNs.
Also included in this patch is a general cleanup of some of the SLAPI code.
Note that we need to use a separate mutex on conn_nextid to avoid a deadlock
where a post-operation plugin tries to acquire connections_mutex, having locked
the per-connection mutex, while the listener thread tries to acquire the
per-connection mutex (having locked connections_mutex). connection.c needs to
be fixed to acquire mutexes in the same order.
and the objectClass right after caching, even if not requested,
while subsequent searches are fine;
- the response callback needs be apended at the end of the
callback list, otherwise the resulting entries are cached
before other overlays can alter them
- the callback structure and its contents needs be freed