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.
Likely broke things for non-posix threadings....
Update -lldap_r implementation to:
remove attribute support
hide thread detachment
provide concurrency accessors
provide initialization function
fix gethostby{addr,name}_r codes (not coverred by HAVE_REENTRANT_FUNCTIONS)
Update servers/libraries to use ldap_pvt_thread_ calls.
Cleanup server codes (no #ifdef HAVE_PTHREAD_THIS or _THATs)!
Removed -llthread
end of link. Basic order is:
$LDFLAGS internal-libs external-libs $LIBS $LTHREAD_LIBS
LTHREAD_LIBS is last as -lpthread (or equiv) must be last on many systems.
LIBS is next to last as some user might have put -lpthread (or equiv)
in $LIBS.
make depend, make tests, and make install all work when build directory
is not the $srcdir.
Also modified library handling such that -lpthread more likely to be last.
WARNING: new orderring requires use of LDFLAGS to set global loader options
such as -L/usr/local/lib. If you put this in LIBS, some libraries
may not be found a link time.
Likely broke Kerberos/LDAPD support. Don't have those in my testbed.
Seems that calling pthread_exit() in the main (and only active)
thread does not cause the whole process to exit. Very odd.
Anyways, as we want to whole process to exit, we should just exit
after joining with our other threads.
I've also removed dead code for detaching threads we join with.
default sysconfdir subdirectory is openldap instead of ldap.
This removes conflicts with other ldap subsystems. Should
be configure option.
*.conf files are now preserved. A *.conf.default are always
created with the latest conf.
*.help and ldapfriendly are now placed in $(datadir)/$(ldap_subdir)
updated man pages to reflect changes.
Updated to use libtool 1.2 (with FreeBSD3.0 a.out v. elf detection).
Updated autoconf to 1.12 with sed patch (don't use stock 1.12).
aclocal.m4 is built using automake's aclocal, v1.3.
Updated mkdep to support libtool .lo files.
Updated automake provided macros for TERMIOS, STRTOD, MKTIME, PTRDIFF_T
Autoconf now checks to ensure C compiler supports ANSI C prototypes.
Updated make files templates.
This could cause problems on odd systems. The generic
headers should be extended as needed to include necessary
system headers or, if necessary, make explicit declarations.
Extended ac/string.h header to look for string.h/strings.h if
STDC_HEADERS is not defined. Also provide basic declarations for
str*() functions. This could cause problems on odd systems.
Extended ac/unistd.h header to define basic declaration for misc
functions that might be missing from headers. This includes
externs for getenv(), getopt(), mktemp(), tempname().
Protect fax500.h from multiple inclusion. Moved includes of
system/generic headers back to source files.
Made mail500 helper functions static.
Fixed includes of ctype.h, signal.h, etc. to use generics.
lutil/tempname.c: was including stdlib.h twice, one should stdio.h.
Wrapped <sys/resource.h> with HAVE_SYS_RESOURCE_H.
lber/io.c/ber_get_next(): Changed noctets back to signed.
Used with BerRead which expects signed int as second arg and
returns signed int.
Most function and variable definitions are now preceded by its extern
definition, for error checking. Retyped a number of functions, usually
to return void. Fixed a number of printf format errors.
API changes (in ldap/include):
Added avl_dup_ok, avl_prefixapply, removed ber_fatten (probably typo
for ber_flatten), retyped ldap_sort_strcasecmp, grew lutil.h.
A number of `extern' declarations are left (some added by protoize), to
be cleaned away later. Mostly strdup(), strcasecmp(), mktemp(), optind,
optarg, errno.
#include <stdlib.h> to get malloc & co various places,
#include <ac/string.h> to get strlen & co in (liblutil/setproctitle.c),
declare ch_malloc & co (slurp.h), avl_find_lin (avl.h), Malloc (ud/edit.c).
Also changed ch_malloc & co from char* to void* functions.
Fixed in slurpd and the slapd main dir. Slapd clients were not examined.
It also "felt right" to swap the order of closing dfp and rfp in slurpd
copy_replog(), so the last acquired lock is unlocked first.
-thread & -pthread are still treated as libraries, will need
additional work to use them as CFLAGS.
Eliminated HAVE_DCE define (was redundant) and its use. Code
now relies on draft4 and function existance tests.
updated clients to use ldap_get/set_options
ld_options is renamed ld_booleans. ldap-int.h has accessor macros.
updated libldap to use new accessor macros.
SHA1 support is contributed by Daniel J. Gregor <dj@gregor.com>
MD5 support is contributed by me <kurt@OpenLDAP.org>
Uses public domain MD5 routines
Uses ISC/IBM freely redistributable Base64 routines
SHA1 support requires external SHA1 routines