Also improve KILLPIDS tracking.
Waiting on multiple jobs and relying on wait exit code being != 0 if at
least one process returned != 0 might not be portable but is the best we
can do for now. We can address that in the future.
Asyncmeta will now accept a Notice of Disconnect unsolicited message, but still ignore all
other unsolicited messages. When an NoD is received, asyncmeta will stop using the connection
to proxy requests. It will wait until all pending operations receive a response or time-out
and then close the connection, unless the target does it first.
The default behaviour of fopen() when called on a named pipe which does not have any reader, is to block, until a reader opens the pipe. This blocks slapo-auditlog when it attempts to write output. Depending on how critical the audit log is, it may be preferable to discard audit log output and continue processing requests if there's no reader available.
For clarity the call to fopen() is removed and replaced with open()/fdopen(), allowing us to specify O_* flags as opposed to using fopen() or open()/fdopen(). 0666 are the base permissions used by fopen() when files are created.
This uses the result AC_CANONICAL_HOST and a pre-existing case statement checking for mingw32, cygwin, interix to determine if the build system is Windows based... We make the not unreasonable assumption that if the build system is Windows based, the tests will also be running on a Windows system.
When identity assertion is not done (e.g. cn=People which is Bjorn's
direct backend) we need to store the client's password to bind as them
but that only works if they did a simple bind. Might be enabled again if
identity assertion rules change in the future.
For simple (non-nested) member compares, avoid unnecessary fetches
of dyngroups that can't match the filter.
cache filter/entry instance info across multiple dyn entries to
avoid refetching each filter entry for each dyngruop test.