Kurt Zeilenga [Fri, 2 Apr 1999 19:09:59 +0000 (19:09 +0000)]
cache: implement try_again loop if cache entry is not ready.
id2entry: when an error occurs attempting to insert fetched
entry into cache, check to see if entry was added by another
thread. If so, return the entry added by the other thread.
The concurrency tests now run without the dreaded "no such object"
error messages!
Kurt Zeilenga [Thu, 1 Apr 1999 20:26:09 +0000 (20:26 +0000)]
Updates for NT4 (MSVC5++).
Removed external include/library paths from projects. External paths should
be set via Tools | Options | Directories. This allows each developer the
freedom to install external libraries where they desire.
Used libdb.lib instead of libdbs.lib to avoid thread conflicts.
Added hs_regex.lib to library input. We require some form of regex, this
library works (and is relatively easy for the user to install).
Removed a little lint which MCVC5 detected.
Need to sort out single-threaded vs multithreaded library generation.
Kurt Zeilenga [Tue, 30 Mar 1999 00:07:37 +0000 (00:07 +0000)]
IRIX (very strange) default libraries have working pthread_create() but
no pthread_detach(). So, augment pthread_create() in default libraries
test to detach created thread.
Kurt Zeilenga [Mon, 29 Mar 1999 05:15:59 +0000 (05:15 +0000)]
Rework ac/socket.h for HAVE_WINSOCK:
tcp_close -> closesocket
ioctl -> ioctlsocket
Modify codes to use tcp_close() instead of close() for sockets.
Modify ioctl codes to be compatible with WINSOCK.
Kurt Zeilenga [Mon, 29 Mar 1999 01:40:17 +0000 (01:40 +0000)]
Add wait4/3 detection.
Modify slapd_tester to use pid_t and wait macros. May need to
implement additional macros in ac/wait.h (in addition to
WEXITSTATUS and WIFEXITED).
Kurt Zeilenga [Sun, 28 Mar 1999 22:43:43 +0000 (22:43 +0000)]
All implementations of lutil_lockf (aka ldap_lockf) block until
the lock is acquired. Add comments to that effect. Remove
unnecessary busy loops from slapd/lock.c and slurpd/lock.c.
Kurt Zeilenga [Sun, 28 Mar 1999 21:39:02 +0000 (21:39 +0000)]
Update lutil_lockf (aka: ldap_lockf) to hide implementation in
library, not header. Eliminate need for <ac/unistd.h> to sometimes
include <fcntl.h> and/or <sys/file.h>. Change lock API to expect
fd not FILE*. Allows wider use and eliminates requirement that
lutil_lockf.h depencency on stdio.h.
Implemented lockf, fcntl, and flock locking in lutil/lockf.c.
Additional implementations (including no-op) may be needed.
Update slapd/lock.c and slurpd/lock.c to use new API.
Kurt Zeilenga [Thu, 25 Mar 1999 22:11:42 +0000 (22:11 +0000)]
Use modified works test to check for pthread_create in default
libraries. Original work test is still used to valid detected
header/library are compatible.
Juan Gomez [Wed, 24 Mar 1999 20:26:43 +0000 (20:26 +0000)]
Added a new function: build_new_dn(), which builds new dn for entries
being renamed through modrdn/moddn. This in preparation to add support
for MODDN v3.
Changed the way paths are replaced in xrpcomp so that it is done in the
make step instead of make install
Removed pair of extra % from the path substitution
Kurt Zeilenga [Mon, 22 Mar 1999 07:14:54 +0000 (07:14 +0000)]
PROTOTYPE: New connection management infrastructure designed to
remove race conditions on connection close.
BROKEN: various counters for dn=monitor.
Initial testing on FreeBSD (with and without pthreads) was successfull.
Have not yet tested preemptive threading environments.
Have not built against backends other than LDBM.
Kurt Zeilenga [Sat, 20 Mar 1999 03:13:24 +0000 (03:13 +0000)]
Provide global assert solution. <ac/assert.h> (new) is now included
by portable.h with NDEBUG undefined. This makes assert() is always
available and automatically disables itself when LDAP_DEBUG is undefined.
I've included a basic assert() for pre-STDC compilers. It relies on
abort() which may not actually be available. (well replace abort()
with whatever is appropriate if and when we're faced with a pre-STDC
compiler that doesn't have assert()).
Kurt Zeilenga [Thu, 18 Mar 1999 17:36:55 +0000 (17:36 +0000)]
Add TMPROOT support for two phase building/installing.
make all
make TMPROOT=/tmp/root install
will install everything under $(TMPROOT)$(prefix). Useful for
building bundling packages/ports for various operating systems.
Kurt Zeilenga [Wed, 17 Mar 1999 03:56:25 +0000 (03:56 +0000)]
Add slapd -a address support. Allows you to bind to a specific
address. Useful for running multiple servers in a virtual hosting
environment.
Modified test001-ldif2ldbm to verify this functionality. Assumes
localhost is 127.0.0.1.
Kurt Zeilenga [Tue, 16 Mar 1999 02:59:59 +0000 (02:59 +0000)]
Initial check of connection states. Have only implemented
SLAP_C_ACTIVE vs SLAP_C_INACTIVE. Need to implement BINDING and CLOSING.
Added fields tracking pending (on bind) ops. Could also be used to
implement per-connection thread limits.