From e07b74fac9457297154e17dbd674bb672196b92f Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Thu, 29 Aug 2002 04:10:13 +0000 Subject: [PATCH] Sync with HEAD, including - subclass indexing - bdb locker id fixes --- CHANGES | 15 + configure | 1739 ++++++++++++++------------ configure.in | 30 +- include/ldap_pvt_thread.h | 190 +++ include/portable.h.in | 6 + include/portable.nt | 3 + libraries/libldap_r/thr_stub.c | 194 +++ libraries/libldap_r/tpool.c | 80 +- servers/slapd/Makefile.in | 4 +- servers/slapd/acl.c | 4 +- servers/slapd/attr.c | 25 + servers/slapd/back-bdb/attr.c | 8 +- servers/slapd/back-bdb/back-bdb.h | 29 +- servers/slapd/back-bdb/cache.c | 65 + servers/slapd/back-bdb/dbcache.c | 5 +- servers/slapd/back-bdb/dn2id.c | 6 +- servers/slapd/back-bdb/error.c | 19 + servers/slapd/back-bdb/idl.c | 12 +- servers/slapd/back-bdb/idl.h | 64 + servers/slapd/back-bdb/init.c | 36 +- servers/slapd/back-bdb/proto-bdb.h | 42 +- servers/slapd/back-bdb/search.c | 24 +- servers/slapd/back-dnssrv/referral.c | 4 +- servers/slapd/back-dnssrv/search.c | 4 +- servers/slapd/back-ldbm/attr.c | 8 +- servers/slapd/back-shell/shell.h | 2 +- servers/slapd/backend.c | 2 +- servers/slapd/bind.c | 7 +- servers/slapd/charray.c | 213 ---- servers/slapd/connection.c | 12 +- servers/slapd/daemon.c | 12 +- servers/slapd/init.c | 5 + servers/slapd/libslapd.dsp | 4 - servers/slapd/limits.c | 2 + servers/slapd/modify.c | 23 +- servers/slapd/modrdn.c | 3 + servers/slapd/oc.c | 7 + servers/slapd/oidm.c | 122 ++ servers/slapd/proto-slap.h | 42 +- servers/slapd/result.c | 7 +- servers/slapd/root_dse.c | 2 +- servers/slapd/sasl.c | 40 +- servers/slapd/saslauthz.c | 4 +- servers/slapd/schema_check.c | 24 +- servers/slapd/schema_init.c | 52 +- servers/slapd/schema_prep.c | 375 ++++-- servers/slapd/slap.h | 6 +- servers/slapd/value.c | 30 + tests/data/acl.out.master | 263 ++-- tests/data/do_add.1 | 19 + tests/data/do_add.2 | 19 + tests/data/do_add.3 | 19 + tests/data/do_add.4 | 19 + tests/data/lang-out.ldif | 34 + tests/data/modify.out.master | 324 ++--- tests/data/modrdn.out.master | 289 +++++ tests/data/modrdn.out.master.0 | 287 +++++ tests/data/modrdn.out.master.1 | 21 + tests/data/modrdn.out.master.2 | 19 + tests/data/modrdn.out.master.3 | 20 + tests/data/passwd.ldif | 5 - tests/data/search.out.master | 442 +++---- tests/data/test-glued.ldif | 286 +++++ tests/data/test-lang.ldif | 12 + tests/data/test-ordered.ldif | 369 ++---- tests/data/test.ldif | 26 - tests/scripts/test003-search | 19 +- tests/scripts/test004-modify | 2 - tests/scripts/test007-replication | 6 +- tests/scripts/test009-referral | 12 + tests/scripts/test011-subtree-repl | 6 +- tests/scripts/test015-xsearch | 11 + 72 files changed, 3909 insertions(+), 2232 deletions(-) create mode 100644 include/ldap_pvt_thread.h create mode 100644 libraries/libldap_r/thr_stub.c create mode 100644 servers/slapd/back-bdb/idl.h delete mode 100644 servers/slapd/charray.c create mode 100644 servers/slapd/oidm.c create mode 100644 tests/data/do_add.1 create mode 100644 tests/data/do_add.2 create mode 100644 tests/data/do_add.3 create mode 100644 tests/data/do_add.4 create mode 100644 tests/data/lang-out.ldif create mode 100644 tests/data/modrdn.out.master create mode 100644 tests/data/modrdn.out.master.0 create mode 100644 tests/data/modrdn.out.master.1 create mode 100644 tests/data/modrdn.out.master.2 create mode 100644 tests/data/modrdn.out.master.3 create mode 100644 tests/data/test-glued.ldif create mode 100644 tests/data/test-lang.ldif diff --git a/CHANGES b/CHANGES index 69a34ddfaf..c5e0a14e5d 100644 --- a/CHANGES +++ b/CHANGES @@ -2,6 +2,21 @@ OpenLDAP 2.1 Change Log OpenLDAP 2.1.5 Engineering Fixed back-ldbm indirect IDL bug (ITS#2039) + Fixed -lldap DNS SRV buffer size bug + Fixed slapd objectClass subclassing matching + Fixed back-bdb lock_id bugs + Added ldap tools passfile (-y) support + Added slapadd lastmod attribute support + Updated back-passwd gecos buffer size bug + Updated back-sql + Build Environment + Add SASL version checks + Add IPv6 sockaddr_storage check + Add Berkeley DB 4.1 support + Updated backend module linking + Documentation + Added ldapwhoami(1) man page + Misc man page updates OpenLDAP 2.1.4 Release Fixed slapd DN normalization (requires DB reload) diff --git a/configure b/configure index a272fc79e7..fb058a9637 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # $OpenLDAP$ -# from OpenLDAP +# from OpenLDAP: pkg/ldap/configure.in,v 1.408.2.10 2002/08/22 00:38:21 kurt Exp # Copyright 1998-2002 The OpenLDAP Foundation. All Rights Reserved. # @@ -2812,7 +2812,6 @@ echo "$ac_t""done" 1>&6 LDAP_LIBS= LDIF_LIBS= -LDBM_LIB= LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= @@ -2887,7 +2886,7 @@ SLAPD_SLP_LIBS= # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # ./install, which can be erroneously created by make from ./install.sh. echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6 -echo "configure:2891: checking for a BSD compatible install" >&5 +echo "configure:2890: checking for a BSD compatible install" >&5 if test -z "$INSTALL"; then if eval "test \"\${ac_cv_path_install+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2968,7 +2967,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2972: checking for $ac_word" >&5 +echo "configure:2971: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3020,7 +3019,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3024: checking for $ac_word" >&5 +echo "configure:3023: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3062,7 +3061,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3066: checking for $ac_word" >&5 +echo "configure:3065: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AR+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3112,12 +3111,12 @@ if test "X${PATH_SEPARATOR+set}" != Xset; then fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:3116: checking for Cygwin environment" >&5 +echo "configure:3115: checking for Cygwin environment" >&5 if eval "test \"\${ac_cv_cygwin+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3131: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -3144,19 +3143,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:3148: checking for mingw32 environment" >&5 +echo "configure:3147: checking for mingw32 environment" >&5 if eval "test \"\${ac_cv_mingw32+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -3172,19 +3171,19 @@ echo "$ac_t""$ac_cv_mingw32" 1>&6 MINGW32= test "$ac_cv_mingw32" = yes && MINGW32=yes echo $ac_n "checking for EMX OS/2 environment""... $ac_c" 1>&6 -echo "configure:3176: checking for EMX OS/2 environment" >&5 +echo "configure:3175: checking for EMX OS/2 environment" >&5 if eval "test \"\${ac_cv_emxos2+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3187: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_emxos2=yes else @@ -3200,7 +3199,7 @@ echo "$ac_t""$ac_cv_emxos2" 1>&6 EMXOS2= test "$ac_cv_emxos2" = yes && EMXOS2=yes echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:3204: checking how to run the C preprocessor" >&5 +echo "configure:3203: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -3215,13 +3214,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3225: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3224: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3232,13 +3231,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3249,13 +3248,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:3259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -3305,7 +3304,7 @@ fi # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3309: checking for $ac_word" >&5 +echo "configure:3308: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3335,7 +3334,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3339: checking for $ac_word" >&5 +echo "configure:3338: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3386,7 +3385,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3390: checking for $ac_word" >&5 +echo "configure:3389: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3418,7 +3417,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:3422: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works" >&5 +echo "configure:3421: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -3429,12 +3428,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 3433 "configure" +#line 3432 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:3438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3437: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -3460,12 +3459,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:3464: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:3463: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:3469: checking whether we are using GNU C" >&5 +echo "configure:3468: checking whether we are using GNU C" >&5 if eval "test \"\${ac_cv_prog_gcc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3474,7 +3473,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3478: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:3477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -3493,7 +3492,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:3497: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:3496: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"\${ac_cv_prog_cc_g+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3536,7 +3535,7 @@ ac_prog=ld if test "$GCC" = yes; then # Check if gcc -print-prog-name=ld gives a path. echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6 -echo "configure:3540: checking for ld used by GCC" >&5 +echo "configure:3539: checking for ld used by GCC" >&5 case $host in *-*-mingw*) # gcc leaves a trailing carriage return which upsets mingw @@ -3566,10 +3565,10 @@ echo "configure:3540: checking for ld used by GCC" >&5 esac elif test "$with_gnu_ld" = yes; then echo $ac_n "checking for GNU ld""... $ac_c" 1>&6 -echo "configure:3570: checking for GNU ld" >&5 +echo "configure:3569: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:3573: checking for non-GNU ld" >&5 +echo "configure:3572: checking for non-GNU ld" >&5 fi if eval "test \"\${lt_cv_path_LD+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3604,7 +3603,7 @@ else fi test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; } echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6 -echo "configure:3608: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:3607: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"\${lt_cv_prog_gnu_ld+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3621,7 +3620,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld echo $ac_n "checking for $LD option to reload object files""... $ac_c" 1>&6 -echo "configure:3625: checking for $LD option to reload object files" >&5 +echo "configure:3624: checking for $LD option to reload object files" >&5 if eval "test \"\${lt_cv_ld_reload_flag+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3633,7 +3632,7 @@ reload_flag=$lt_cv_ld_reload_flag test -n "$reload_flag" && reload_flag=" $reload_flag" echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:3637: checking for BSD-compatible nm" >&5 +echo "configure:3636: checking for BSD-compatible nm" >&5 if eval "test \"\${lt_cv_path_NM+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3671,7 +3670,7 @@ NM="$lt_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:3675: checking whether ln -s works" >&5 +echo "configure:3674: checking whether ln -s works" >&5 if eval "test \"\${ac_cv_prog_LN_S+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3692,7 +3691,7 @@ else fi echo $ac_n "checking how to recognise dependant libraries""... $ac_c" 1>&6 -echo "configure:3696: checking how to recognise dependant libraries" >&5 +echo "configure:3695: checking how to recognise dependant libraries" >&5 if eval "test \"\${lt_cv_deplibs_check_method+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3875,13 +3874,13 @@ file_magic_cmd=$lt_cv_file_magic_cmd deplibs_check_method=$lt_cv_deplibs_check_method echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:3879: checking for object suffix" >&5 +echo "configure:3878: checking for object suffix" >&5 if eval "test \"\${ac_cv_objext+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:3885: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3884: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -3902,7 +3901,7 @@ ac_objext=$ac_cv_objext echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:3906: checking for executable suffix" >&5 +echo "configure:3905: checking for executable suffix" >&5 if eval "test \"\${ac_cv_exeext+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3912,7 +3911,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:3916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:3915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.C | *.o | *.obj | *.xcoff) ;; @@ -3943,7 +3942,7 @@ fi # Check for command to grab the raw symbol name followed by C symbol from nm. echo $ac_n "checking command to parse $NM output""... $ac_c" 1>&6 -echo "configure:3947: checking command to parse $NM output" >&5 +echo "configure:3946: checking command to parse $NM output" >&5 if eval "test \"\${lt_cv_sys_global_symbol_pipe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4023,10 +4022,10 @@ void nm_test_func(){} int main(){nm_test_var='a';nm_test_func();return(0);} EOF - if { (eval echo configure:4027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:4026: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then # Now try to grab the symbols. nlist=conftest.nm - if { (eval echo configure:4030: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then + if { (eval echo configure:4029: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\") 1>&5; (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5; } && test -s "$nlist"; then # Try sorting and uniquifying the output. if sort "$nlist" | uniq > "$nlist"T; then mv -f "$nlist"T "$nlist" @@ -4077,7 +4076,7 @@ EOF save_CFLAGS="$CFLAGS" LIBS="conftstm.$ac_objext" CFLAGS="$CFLAGS$no_builtin_flag" - if { (eval echo configure:4081: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then + if { (eval echo configure:4080: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then pipe_works=yes fi LIBS="$save_LIBS" @@ -4126,17 +4125,17 @@ for ac_hdr in dlfcn.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:4130: checking for $ac_hdr" >&5 +echo "configure:4129: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4140: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4139: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -4171,7 +4170,7 @@ case $deplibs_check_method in file_magic*) if test "$file_magic_cmd" = '$MAGIC_CMD'; then echo $ac_n "checking for ${ac_tool_prefix}file""... $ac_c" 1>&6 -echo "configure:4175: checking for ${ac_tool_prefix}file" >&5 +echo "configure:4174: checking for ${ac_tool_prefix}file" >&5 if eval "test \"\${lt_cv_path_MAGIC_CMD+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4233,7 +4232,7 @@ fi if test -z "$lt_cv_path_MAGIC_CMD"; then if test -n "$ac_tool_prefix"; then echo $ac_n "checking for file""... $ac_c" 1>&6 -echo "configure:4237: checking for file" >&5 +echo "configure:4236: checking for file" >&5 if eval "test \"\${lt_cv_path_MAGIC_CMD+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4304,7 +4303,7 @@ esac # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. set dummy ${ac_tool_prefix}ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4308: checking for $ac_word" >&5 +echo "configure:4307: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_RANLIB+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4336,7 +4335,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4340: checking for $ac_word" >&5 +echo "configure:4339: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_RANLIB+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4371,7 +4370,7 @@ fi # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4375: checking for $ac_word" >&5 +echo "configure:4374: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_STRIP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4403,7 +4402,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4407: checking for $ac_word" >&5 +echo "configure:4406: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_STRIP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4452,8 +4451,8 @@ test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes case $host in *-*-irix6*) # Find out which ABI we are using. - echo '#line 4456 "configure"' > conftest.$ac_ext - if { (eval echo configure:4457: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 4455 "configure"' > conftest.$ac_ext + if { (eval echo configure:4456: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case `/usr/bin/file conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" @@ -4474,7 +4473,7 @@ case $host in SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:4478: checking whether the C compiler needs -belf" >&5 +echo "configure:4477: checking whether the C compiler needs -belf" >&5 if eval "test \"\${lt_cv_cc_needs_belf+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4487,14 +4486,14 @@ ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$a cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_needs_belf=yes else @@ -4524,7 +4523,7 @@ echo "$ac_t""$lt_cv_cc_needs_belf" 1>&6 # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. set dummy ${ac_tool_prefix}dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4528: checking for $ac_word" >&5 +echo "configure:4527: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_DLLTOOL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4556,7 +4555,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "dlltool", so it can be a program name with args. set dummy dlltool; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4560: checking for $ac_word" >&5 +echo "configure:4559: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_DLLTOOL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4591,7 +4590,7 @@ fi # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. set dummy ${ac_tool_prefix}as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4595: checking for $ac_word" >&5 +echo "configure:4594: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AS+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4623,7 +4622,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "as", so it can be a program name with args. set dummy as; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4627: checking for $ac_word" >&5 +echo "configure:4626: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AS+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4658,7 +4657,7 @@ fi # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. set dummy ${ac_tool_prefix}objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4662: checking for $ac_word" >&5 +echo "configure:4661: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_OBJDUMP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4690,7 +4689,7 @@ if test -n "$ac_tool_prefix"; then # Extract the first word of "objdump", so it can be a program name with args. set dummy objdump; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:4694: checking for $ac_word" >&5 +echo "configure:4693: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_OBJDUMP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -4726,12 +4725,12 @@ fi # recent cygwin and mingw systems supply a stub DllMain which the user # can override, but on older systems we have to supply one echo $ac_n "checking if libtool should supply DllMain function""... $ac_c" 1>&6 -echo "configure:4730: checking if libtool should supply DllMain function" >&5 +echo "configure:4729: checking if libtool should supply DllMain function" >&5 if eval "test \"\${lt_cv_need_dllmain+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4742: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_need_dllmain=no else @@ -4760,19 +4759,19 @@ echo "$ac_t""$lt_cv_need_dllmain" 1>&6 SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -mdll" echo $ac_n "checking how to link DLLs""... $ac_c" 1>&6 -echo "configure:4764: checking how to link DLLs" >&5 +echo "configure:4763: checking how to link DLLs" >&5 if eval "test \"\${lt_cv_cc_dll_switch+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4775: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_cc_dll_switch=-mdll else @@ -4886,7 +4885,7 @@ set dummy $CC compiler="$2" echo $ac_n "checking for objdir""... $ac_c" 1>&6 -echo "configure:4890: checking for objdir" >&5 +echo "configure:4889: checking for objdir" >&5 rm -f .libs 2>/dev/null mkdir .libs 2>/dev/null if test -d .libs; then @@ -4913,7 +4912,7 @@ test -z "$pic_mode" && pic_mode=default # in isolation, and that seeing it set (from the cache) indicates that # the associated values are set (in the cache) correctly too. echo $ac_n "checking for $compiler option to produce PIC""... $ac_c" 1>&6 -echo "configure:4917: checking for $compiler option to produce PIC" >&5 +echo "configure:4916: checking for $compiler option to produce PIC" >&5 if eval "test \"\${lt_cv_prog_cc_pic+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5065,21 +5064,21 @@ else # Check to make sure the pic_flag actually works. echo $ac_n "checking if $compiler PIC flag $lt_cv_prog_cc_pic works""... $ac_c" 1>&6 -echo "configure:5069: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 +echo "configure:5068: checking if $compiler PIC flag $lt_cv_prog_cc_pic works" >&5 if eval "test \"\${lt_cv_prog_cc_pic_works+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $lt_cv_prog_cc_pic -DPIC" cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5082: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* case $host_os in hpux9* | hpux10* | hpux11*) @@ -5131,7 +5130,7 @@ if test -n "$lt_cv_prog_cc_shlib"; then fi echo $ac_n "checking if $compiler static flag $lt_cv_prog_cc_static works""... $ac_c" 1>&6 -echo "configure:5135: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 +echo "configure:5134: checking if $compiler static flag $lt_cv_prog_cc_static works" >&5 if eval "test \"\${lt_cv_prog_cc_static_works+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5139,14 +5138,14 @@ else save_LDFLAGS="$LDFLAGS" LDFLAGS="$LDFLAGS $lt_cv_prog_cc_static" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lt_cv_prog_cc_static_works=yes else @@ -5173,7 +5172,7 @@ can_build_shared="$lt_cv_prog_cc_can_build_shared" # Check to see if options -o and -c are simultaneously supported by compiler echo $ac_n "checking if $compiler supports -c -o file.$ac_objext""... $ac_c" 1>&6 -echo "configure:5177: checking if $compiler supports -c -o file.$ac_objext" >&5 +echo "configure:5176: checking if $compiler supports -c -o file.$ac_objext" >&5 if eval "test \"\${lt_cv_compiler_c_o+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5192,7 +5191,7 @@ chmod -w . save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -o out/conftest2.$ac_objext" compiler_c_o=no -if { (eval echo configure:5196: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then +if { (eval echo configure:5195: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>out/conftest.err; } && test -s out/conftest2.$ac_objext; then # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings if test -s out/conftest.err; then @@ -5221,7 +5220,7 @@ echo "$ac_t""$compiler_c_o" 1>&6 if test x"$compiler_c_o" = x"yes"; then # Check to see if we can write to a .lo echo $ac_n "checking if $compiler supports -c -o file.lo""... $ac_c" 1>&6 -echo "configure:5225: checking if $compiler supports -c -o file.lo" >&5 +echo "configure:5224: checking if $compiler supports -c -o file.lo" >&5 if eval "test \"\${lt_cv_compiler_o_lo+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -5232,14 +5231,14 @@ else save_objext="$ac_objext" ac_objext=lo cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5242: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5270,7 +5269,7 @@ hard_links="nottested" if test "$compiler_c_o" = no && test "$need_locks" != no; then # do not overwrite the value of need_locks provided by the user echo $ac_n "checking if we can lock with hard links""... $ac_c" 1>&6 -echo "configure:5274: checking if we can lock with hard links" >&5 +echo "configure:5273: checking if we can lock with hard links" >&5 hard_links=yes $rm conftest* ln conftest.a conftest.b 2>/dev/null && hard_links=no @@ -5289,20 +5288,20 @@ fi if test "$GCC" = yes; then # Check to see if options -fno-rtti -fno-exceptions are supported by compiler echo $ac_n "checking if $compiler supports -fno-rtti -fno-exceptions""... $ac_c" 1>&6 -echo "configure:5293: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +echo "configure:5292: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 echo "int some_variable = 0;" > conftest.$ac_ext save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -fno-rtti -fno-exceptions -c conftest.$ac_ext" compiler_rtti_exceptions=no cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5305: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # The compiler can only warn and ignore the option if not recognized # So say no if there are warnings @@ -5329,7 +5328,7 @@ fi # See if the linker supports building shared libraries. echo $ac_n "checking whether the linker ($LD) supports shared libraries""... $ac_c" 1>&6 -echo "configure:5333: checking whether the linker ($LD) supports shared libraries" >&5 +echo "configure:5332: checking whether the linker ($LD) supports shared libraries" >&5 allow_undefined_flag= no_undefined_flag= @@ -6013,7 +6012,7 @@ test "$ld_shlibs" = no && can_build_shared=no # Check hardcoding attributes. echo $ac_n "checking how to hardcode library paths into programs""... $ac_c" 1>&6 -echo "configure:6017: checking how to hardcode library paths into programs" >&5 +echo "configure:6016: checking how to hardcode library paths into programs" >&5 hardcode_action= if test -n "$hardcode_libdir_flag_spec" || \ test -n "$runpath_var"; then @@ -6041,7 +6040,7 @@ echo "$ac_t""$hardcode_action" 1>&6 striplib= old_striplib= echo $ac_n "checking whether stripping libraries is possible""... $ac_c" 1>&6 -echo "configure:6045: checking whether stripping libraries is possible" >&5 +echo "configure:6044: checking whether stripping libraries is possible" >&5 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" @@ -6055,7 +6054,7 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown # PORTME Fill in your ld.so characteristics echo $ac_n "checking dynamic linker characteristics""... $ac_c" 1>&6 -echo "configure:6059: checking dynamic linker characteristics" >&5 +echo "configure:6058: checking dynamic linker characteristics" >&5 library_names_spec= libname_spec='lib$name' soname_spec= @@ -6452,11 +6451,11 @@ test "$dynamic_linker" = no && can_build_shared=no # Report the final consequences. echo $ac_n "checking if libtool supports shared libraries""... $ac_c" 1>&6 -echo "configure:6456: checking if libtool supports shared libraries" >&5 +echo "configure:6455: checking if libtool supports shared libraries" >&5 echo "$ac_t""$can_build_shared" 1>&6 echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6 -echo "configure:6460: checking whether to build shared libraries" >&5 +echo "configure:6459: checking whether to build shared libraries" >&5 test "$can_build_shared" = "no" && enable_shared=no # On AIX, shared libraries and static libraries use the same namespace, and @@ -6479,7 +6478,7 @@ esac echo "$ac_t""$enable_shared" 1>&6 echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6 -echo "configure:6483: checking whether to build static libraries" >&5 +echo "configure:6482: checking whether to build static libraries" >&5 # Make sure either enable_shared or enable_static is yes. test "$enable_shared" = yes || enable_static=yes echo "$ac_t""$enable_static" 1>&6 @@ -6520,12 +6519,12 @@ else *) echo $ac_n "checking for shl_load""... $ac_c" 1>&6 -echo "configure:6524: checking for shl_load" >&5 +echo "configure:6523: checking for shl_load" >&5 if eval "test \"\${ac_cv_func_shl_load+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_shl_load=yes" else @@ -6567,7 +6566,7 @@ if eval "test \"`echo '$ac_cv_func_'shl_load`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6 -echo "configure:6571: checking for shl_load in -ldld" >&5 +echo "configure:6570: checking for shl_load in -ldld" >&5 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6575,7 +6574,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6605,12 +6604,12 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "configure:6609: checking for dlopen" >&5 +echo "configure:6608: checking for dlopen" >&5 if eval "test \"\${ac_cv_func_dlopen+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dlopen=yes" else @@ -6652,7 +6651,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:6656: checking for dlopen in -ldl" >&5 +echo "configure:6655: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6660,7 +6659,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6674: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6690,7 +6689,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -lsvld""... $ac_c" 1>&6 -echo "configure:6694: checking for dlopen in -lsvld" >&5 +echo "configure:6693: checking for dlopen in -lsvld" >&5 ac_lib_var=`echo svld'_'dlopen | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6698,7 +6697,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsvld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6728,7 +6727,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dld_link in -ldld""... $ac_c" 1>&6 -echo "configure:6732: checking for dld_link in -ldld" >&5 +echo "configure:6731: checking for dld_link in -ldld" >&5 ac_lib_var=`echo dld'_'dld_link | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -6736,7 +6735,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldld $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -6803,7 +6802,7 @@ fi LIBS="$lt_cv_dlopen_libs $LIBS" echo $ac_n "checking whether a program can dlopen itself""... $ac_c" 1>&6 -echo "configure:6807: checking whether a program can dlopen itself" >&5 +echo "configure:6806: checking whether a program can dlopen itself" >&5 if eval "test \"\${lt_cv_dlopen_self+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6813,7 +6812,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then + if { (eval echo configure:6877: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -6897,7 +6896,7 @@ echo "$ac_t""$lt_cv_dlopen_self" 1>&6 if test "x$lt_cv_dlopen_self" = xyes; then LDFLAGS="$LDFLAGS $link_static_flag" echo $ac_n "checking whether a statically linked program can dlopen itself""... $ac_c" 1>&6 -echo "configure:6901: checking whether a statically linked program can dlopen itself" >&5 +echo "configure:6900: checking whether a statically linked program can dlopen itself" >&5 if eval "test \"\${lt_cv_dlopen_self_static+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -6907,7 +6906,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then + if { (eval echo configure:6971: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} 2>/dev/null; then (./conftest; exit; ) 2>/dev/null lt_status=$? case x$lt_status in @@ -7017,14 +7016,14 @@ if test "$enable_shared" = yes && test "$GCC" = yes; then # systems, -lgcc has to come before -lc. If gcc already passes -lc # to ld, don't add -lc before -lgcc. echo $ac_n "checking whether -lc should be explicitly linked in""... $ac_c" 1>&6 -echo "configure:7021: checking whether -lc should be explicitly linked in" >&5 +echo "configure:7020: checking whether -lc should be explicitly linked in" >&5 if eval "test \"\${lt_cv_archive_cmds_need_lc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else $rm conftest* echo 'static int dummy;' > conftest.$ac_ext - if { (eval echo configure:7028: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + if { (eval echo configure:7027: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then soname=conftest lib=conftest libobjs=conftest.$ac_objext @@ -7037,7 +7036,7 @@ else libname=conftest save_allow_undefined_flag=$allow_undefined_flag allow_undefined_flag= - if { (eval echo configure:7041: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } + if { (eval echo configure:7040: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\") 1>&5; (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5; } then lt_cv_archive_cmds_need_lc=no else @@ -7624,7 +7623,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7628: checking for $ac_word" >&5 +echo "configure:7627: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AWK+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7655,7 +7654,7 @@ done # test for ln hardlink support echo $ac_n "checking whether ln works""... $ac_c" 1>&6 -echo "configure:7659: checking whether ln works" >&5 +echo "configure:7658: checking whether ln works" >&5 if eval "test \"\${ol_cv_prog_LN_H+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7678,7 +7677,7 @@ else fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:7682: checking whether ln -s works" >&5 +echo "configure:7681: checking whether ln -s works" >&5 if eval "test \"\${ac_cv_prog_LN_S+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7702,7 +7701,7 @@ fi # Extract the first word of "sendmail", so it can be a program name with args. set dummy sendmail; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7706: checking for $ac_word" >&5 +echo "configure:7705: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_SENDMAIL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7738,7 +7737,7 @@ fi # Extract the first word of "vi", so it can be a program name with args. set dummy vi; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7742: checking for $ac_word" >&5 +echo "configure:7741: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_EDITOR+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7777,7 +7776,7 @@ if test $ol_enable_perl != no ; then # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:7781: checking for $ac_word" >&5 +echo "configure:7780: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_PERLBIN+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7828,7 +7827,7 @@ fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:7832: checking how to run the C preprocessor" >&5 +echo "configure:7831: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -7843,13 +7842,13 @@ else # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -7860,13 +7859,13 @@ else rm -rf conftest* CPP="${CC-cc} -E -traditional-cpp" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7870: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7869: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -7877,13 +7876,13 @@ else rm -rf conftest* CPP="${CC-cc} -nologo -E" cat > conftest.$ac_ext < Syntax Error EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:7887: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -7922,12 +7921,12 @@ fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:7926: checking for Cygwin environment" >&5 +echo "configure:7925: checking for Cygwin environment" >&5 if eval "test \"\${ac_cv_cygwin+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7941: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -7954,19 +7953,19 @@ echo "$ac_t""$ac_cv_cygwin" 1>&6 CYGWIN= test "$ac_cv_cygwin" = yes && CYGWIN=yes echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6 -echo "configure:7958: checking for mingw32 environment" >&5 +echo "configure:7957: checking for mingw32 environment" >&5 if eval "test \"\${ac_cv_mingw32+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:7969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -7985,7 +7984,7 @@ test "$ac_cv_mingw32" = yes && MINGW32=yes echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:7989: checking for executable suffix" >&5 +echo "configure:7988: checking for executable suffix" >&5 if eval "test \"\${ac_cv_exeext+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -7995,7 +7994,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:7999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:7998: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.C | *.o | *.obj | *.xcoff) ;; @@ -8016,13 +8015,13 @@ echo "$ac_t""${ac_cv_exeext}" 1>&6 ac_exeext=$EXEEXT echo $ac_n "checking for object suffix""... $ac_c" 1>&6 -echo "configure:8020: checking for object suffix" >&5 +echo "configure:8019: checking for object suffix" >&5 if eval "test \"\${ac_cv_objext+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else rm -f conftest* echo 'int i = 1;' > conftest.$ac_ext -if { (eval echo configure:8026: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8025: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -8046,7 +8045,7 @@ EOF echo $ac_n "checking for be_app in -lbe""... $ac_c" 1>&6 -echo "configure:8050: checking for be_app in -lbe" >&5 +echo "configure:8049: checking for be_app in -lbe" >&5 ac_lib_var=`echo be'_'be_app | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8054,7 +8053,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbe -lroot -lnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8068: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8091,7 +8090,7 @@ fi echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 -echo "configure:8095: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:8094: checking for ${CC-cc} option to accept ANSI C" >&5 if eval "test \"\${am_cv_prog_cc_stdc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8108,7 +8107,7 @@ for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIO do CC="$ac_save_CC $ac_arg" cat > conftest.$ac_ext < #include @@ -8145,7 +8144,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } EOF -if { (eval echo configure:8149: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8148: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_prog_cc_stdc="$ac_arg"; break else @@ -8179,7 +8178,7 @@ if test -z "${MKDEP}"; then OL_MKDEP="${CC-cc}" if test -z "${MKDEP_FLAGS}"; then echo $ac_n "checking for ${OL_MKDEP} depend flag""... $ac_c" 1>&6 -echo "configure:8183: checking for ${OL_MKDEP} depend flag" >&5 +echo "configure:8182: checking for ${OL_MKDEP} depend flag" >&5 if eval "test \"\${ol_cv_mkdep+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8189,7 +8188,7 @@ else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } \ + if { ac_try='$OL_MKDEP $flag conftest.c'; { (eval echo configure:8192: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } \ | egrep '^conftest\.'"${ac_objext}" >/dev/null 2>&1 then if test ! -f conftest."${ac_object}" ; then @@ -8222,7 +8221,7 @@ if test "${ol_cv_mkdep}" = no ; then fi echo $ac_n "checking for afopen in -ls""... $ac_c" 1>&6 -echo "configure:8226: checking for afopen in -ls" >&5 +echo "configure:8225: checking for afopen in -ls" >&5 ac_lib_var=`echo s'_'afopen | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8230,7 +8229,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ls $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8275,17 +8274,17 @@ if test $ol_enable_modules != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8279: checking for $ac_hdr" >&5 +echo "configure:8278: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8289: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8288: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8317,7 +8316,7 @@ done fi echo $ac_n "checking for lt_dlinit in -lltdl""... $ac_c" 1>&6 -echo "configure:8321: checking for lt_dlinit in -lltdl" >&5 +echo "configure:8320: checking for lt_dlinit in -lltdl" >&5 ac_lib_var=`echo ltdl'_'lt_dlinit | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8325,7 +8324,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lltdl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8339: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8383,13 +8382,13 @@ fi # test for EBCDIC echo $ac_n "checking for EBCDIC""... $ac_c" 1>&6 -echo "configure:8387: checking for EBCDIC" >&5 +echo "configure:8386: checking for EBCDIC" >&5 if eval "test \"\${ol_cv_cpp_ebcdic+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8401: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8422,12 +8421,12 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:8426: checking for ANSI C header files" >&5 +echo "configure:8425: checking for ANSI C header files" >&5 if eval "test \"\${ol_cv_header_stdc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -8435,7 +8434,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8438: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8452,7 +8451,7 @@ rm -f conftest* if test $ol_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -8470,7 +8469,7 @@ fi if test $ol_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -8491,7 +8490,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #ifndef HAVE_EBCDIC @@ -8509,7 +8508,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:8513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -8543,12 +8542,12 @@ for ac_hdr in dirent.h sys/ndir.h sys/dir.h ndir.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr that defines DIR""... $ac_c" 1>&6 -echo "configure:8547: checking for $ac_hdr that defines DIR" >&5 +echo "configure:8546: checking for $ac_hdr that defines DIR" >&5 if eval "test \"\${ac_cv_header_dirent_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include <$ac_hdr> @@ -8556,7 +8555,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:8560: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8559: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -8581,7 +8580,7 @@ done # Two versions of opendir et al. are in -ldir and -lx on SCO Xenix. if test $ac_header_dirent = dirent.h; then echo $ac_n "checking for opendir in -ldir""... $ac_c" 1>&6 -echo "configure:8585: checking for opendir in -ldir" >&5 +echo "configure:8584: checking for opendir in -ldir" >&5 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8589,7 +8588,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldir $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8603: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8622,7 +8621,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:8626: checking for opendir in -lx" >&5 +echo "configure:8625: checking for opendir in -lx" >&5 ac_lib_var=`echo x'_'opendir | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8630,7 +8629,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lx $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8644: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8664,12 +8663,12 @@ fi fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:8668: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:8667: checking for sys/wait.h that is POSIX.1 compatible" >&5 if eval "test \"\${ac_cv_header_sys_wait_h+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -8685,7 +8684,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:8689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:8688: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -8706,12 +8705,12 @@ EOF fi echo $ac_n "checking POSIX termios""... $ac_c" 1>&6 -echo "configure:8710: checking POSIX termios" >&5 +echo "configure:8709: checking POSIX termios" >&5 if eval "test \"\${am_cv_sys_posix_termios+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -8721,7 +8720,7 @@ int main() { tcgetattr(0, 0); ; return 0; } EOF -if { (eval echo configure:8725: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* am_cv_sys_posix_termios=yes else @@ -8737,7 +8736,7 @@ echo "$ac_t""$am_cv_sys_posix_termios" 1>&6 echo $ac_n "checking whether use of TIOCGWINSZ requires sys/ioctl.h""... $ac_c" 1>&6 -echo "configure:8741: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5 +echo "configure:8740: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5 if eval "test \"\${am_cv_sys_tiocgwinsz_needs_sys_ioctl_h+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -8746,7 +8745,7 @@ else gwinsz_in_termios_h=no if test $am_cv_sys_posix_termios = yes; then cat > conftest.$ac_ext < # include @@ -8766,7 +8765,7 @@ rm -f conftest* if test $gwinsz_in_termios_h = no; then cat > conftest.$ac_ext < # include @@ -8850,17 +8849,17 @@ for ac_hdr in \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:8854: checking for $ac_hdr" >&5 +echo "configure:8853: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:8864: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:8863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -8890,12 +8889,12 @@ done echo $ac_n "checking for dlopen""... $ac_c" 1>&6 -echo "configure:8894: checking for dlopen" >&5 +echo "configure:8893: checking for dlopen" >&5 if eval "test \"\${ac_cv_func_dlopen+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dlopen=yes" else @@ -8937,7 +8936,7 @@ if eval "test \"`echo '$ac_cv_func_'dlopen`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6 -echo "configure:8941: checking for dlopen in -ldl" >&5 +echo "configure:8940: checking for dlopen in -ldl" >&5 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8945,7 +8944,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -8987,7 +8986,7 @@ fi echo $ac_n "checking for sigset in -lV3""... $ac_c" 1>&6 -echo "configure:8991: checking for sigset in -lV3" >&5 +echo "configure:8990: checking for sigset in -lV3" >&5 ac_lib_var=`echo V3'_'sigset | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -8995,7 +8994,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lV3 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9035,12 +9034,12 @@ fi echo $ac_n "checking for winsock""... $ac_c" 1>&6 -echo "configure:9039: checking for winsock" >&5 +echo "configure:9038: checking for winsock" >&5 save_LIBS="$LIBS" for curlib in ws2_32 wsock32; do LIBS="$LIBS -l$curlib" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* have_winsock=yes else @@ -9092,12 +9091,12 @@ echo "$ac_t""$have_winsock" 1>&6 echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:9096: checking for socket" >&5 +echo "configure:9095: checking for socket" >&5 if eval "test \"\${ac_cv_func_socket+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_socket=yes" else @@ -9140,7 +9139,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 -echo "configure:9144: checking for main in -lsocket" >&5 +echo "configure:9143: checking for main in -lsocket" >&5 ac_lib_var=`echo socket'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9148,14 +9147,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lsocket $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9183,7 +9182,7 @@ else fi echo $ac_n "checking for main in -lnet""... $ac_c" 1>&6 -echo "configure:9187: checking for main in -lnet" >&5 +echo "configure:9186: checking for main in -lnet" >&5 ac_lib_var=`echo net'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9191,14 +9190,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9226,7 +9225,7 @@ else fi echo $ac_n "checking for main in -lnsl_s""... $ac_c" 1>&6 -echo "configure:9230: checking for main in -lnsl_s" >&5 +echo "configure:9229: checking for main in -lnsl_s" >&5 ac_lib_var=`echo nsl_s'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9234,14 +9233,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl_s $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9244: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9269,7 +9268,7 @@ else fi echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:9273: checking for main in -lnsl" >&5 +echo "configure:9272: checking for main in -lnsl" >&5 ac_lib_var=`echo nsl'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9277,14 +9276,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lnsl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9287: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9312,7 +9311,7 @@ else fi echo $ac_n "checking for socket in -linet""... $ac_c" 1>&6 -echo "configure:9316: checking for socket in -linet" >&5 +echo "configure:9315: checking for socket in -linet" >&5 ac_lib_var=`echo inet'_'socket | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9320,7 +9319,7 @@ else ac_save_LIBS="$LIBS" LIBS="-linet $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9334: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9359,7 +9358,7 @@ else fi echo $ac_n "checking for main in -lgen""... $ac_c" 1>&6 -echo "configure:9363: checking for main in -lgen" >&5 +echo "configure:9362: checking for main in -lgen" >&5 ac_lib_var=`echo gen'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9367,14 +9366,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lgen $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -9406,12 +9405,12 @@ fi echo $ac_n "checking for select""... $ac_c" 1>&6 -echo "configure:9410: checking for select" >&5 +echo "configure:9409: checking for select" >&5 if eval "test \"\${ac_cv_func_select+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9438: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_select=yes" else @@ -9458,7 +9457,7 @@ fi if test "${ac_cv_header_winsock_h}" != yes; then echo $ac_n "checking types of arguments for select()""... $ac_c" 1>&6 -echo "configure:9462: checking types of arguments for select()" >&5 +echo "configure:9461: checking types of arguments for select()" >&5 if eval "test \"\${ac_cv_func_select_arg234+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9472,7 +9471,7 @@ else for ac_cv_func_select_arg1 in 'int' 'size_t' 'unsigned long' 'unsigned'; do for ac_cv_func_select_arg5 in 'struct timeval *' 'const struct timeval *'; do cat > conftest.$ac_ext < @@ -9491,7 +9490,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9495: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:9494: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_not_found=no ; break 3 else @@ -9536,17 +9535,17 @@ for ac_hdr in regex.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9540: checking for $ac_hdr" >&5 +echo "configure:9539: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9550: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9577,14 +9576,14 @@ if test "$ac_cv_header_regex_h" != yes ; then fi echo $ac_n "checking for library containing regfree""... $ac_c" 1>&6 -echo "configure:9581: checking for library containing regfree" >&5 +echo "configure:9580: checking for library containing regfree" >&5 if eval "test \"\${ac_cv_search_regfree+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_regfree="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9598: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_regfree="none required" else @@ -9606,7 +9605,7 @@ rm -f conftest* test "$ac_cv_search_regfree" = "no" && for ac_lib in regex gnuregex; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_regfree="-l$ac_lib" break @@ -9640,7 +9639,7 @@ fi echo $ac_n "checking for compatible POSIX regex""... $ac_c" 1>&6 -echo "configure:9644: checking for compatible POSIX regex" >&5 +echo "configure:9643: checking for compatible POSIX regex" >&5 if eval "test \"\${ol_cv_c_posix_regex+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -9649,7 +9648,7 @@ else ol_cv_c_posix_regex=cross else cat > conftest.$ac_ext < @@ -9675,7 +9674,7 @@ main() return rc; } EOF -if { (eval echo configure:9679: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9678: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_c_posix_regex=yes else @@ -9701,17 +9700,17 @@ for ac_hdr in sys/uuid.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:9705: checking for $ac_hdr" >&5 +echo "configure:9704: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:9715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:9714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -9741,14 +9740,14 @@ if test $ac_cv_header_sys_uuid_h = yes ; then save_LIBS="$LIBS" echo $ac_n "checking for library containing uuid_to_str""... $ac_c" 1>&6 -echo "configure:9745: checking for library containing uuid_to_str" >&5 +echo "configure:9744: checking for library containing uuid_to_str" >&5 if eval "test \"\${ac_cv_search_uuid_to_str+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_func_search_save_LIBS="$LIBS" ac_cv_search_uuid_to_str="no" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9762: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_uuid_to_str="none required" else @@ -9770,7 +9769,7 @@ rm -f conftest* test "$ac_cv_search_uuid_to_str" = "no" && for ac_lib in uuid; do LIBS="-l$ac_lib $ac_func_search_save_LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ac_cv_search_uuid_to_str="-l$ac_lib" break @@ -9816,11 +9815,11 @@ fi if test $have_uuid = no ; then echo $ac_n "checking to see if -lrpcrt4 is needed for win32 UUID support""... $ac_c" 1>&6 -echo "configure:9820: checking to see if -lrpcrt4 is needed for win32 UUID support" >&5 +echo "configure:9819: checking to see if -lrpcrt4 is needed for win32 UUID support" >&5 save_LIBS="$LIBS" LIBS="$LIBS -lrpcrt4" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* need_rpcrt=yes else @@ -9852,12 +9851,12 @@ fi ol_link_dnssrv=no echo $ac_n "checking for res_query""... $ac_c" 1>&6 -echo "configure:9856: checking for res_query" >&5 +echo "configure:9855: checking for res_query" >&5 if eval "test \"\${ac_cv_func_res_query+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9884: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_res_query=yes" else @@ -9902,12 +9901,12 @@ fi if test $ac_cv_func_res_query = no ; then echo $ac_n "checking for __res_query""... $ac_c" 1>&6 -echo "configure:9906: checking for __res_query" >&5 +echo "configure:9905: checking for __res_query" >&5 if eval "test \"\${ac_cv_func___res_query+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func___res_query=yes" else @@ -9955,7 +9954,7 @@ fi if test $ac_cv_func_res_query = no ; then echo $ac_n "checking for res_query in -lbind""... $ac_c" 1>&6 -echo "configure:9959: checking for res_query in -lbind" >&5 +echo "configure:9958: checking for res_query in -lbind" >&5 ac_lib_var=`echo bind'_'res_query | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -9963,7 +9962,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbind $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9977: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10006,7 +10005,7 @@ fi if test $ac_cv_func_res_query = no ; then echo $ac_n "checking for __res_query in -lbind""... $ac_c" 1>&6 -echo "configure:10010: checking for __res_query in -lbind" >&5 +echo "configure:10009: checking for __res_query in -lbind" >&5 ac_lib_var=`echo bind'_'__res_query | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10014,7 +10013,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lbind $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10028: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10057,7 +10056,7 @@ fi if test $ac_cv_func_res_query = no ; then echo $ac_n "checking for res_query in -lresolv""... $ac_c" 1>&6 -echo "configure:10061: checking for res_query in -lresolv" >&5 +echo "configure:10060: checking for res_query in -lresolv" >&5 ac_lib_var=`echo resolv'_'res_query | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10065,7 +10064,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10108,7 +10107,7 @@ fi if test $ac_cv_func_res_query = no ; then echo $ac_n "checking for __res_query in -lresolv""... $ac_c" 1>&6 -echo "configure:10112: checking for __res_query in -lresolv" >&5 +echo "configure:10111: checking for __res_query in -lresolv" >&5 ac_lib_var=`echo resolv'_'__res_query | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10116,7 +10115,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lresolv $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10175,12 +10174,12 @@ fi for ac_func in getaddrinfo gai_strerror inet_ntop do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10179: checking for $ac_func" >&5 +echo "configure:10178: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -10236,13 +10235,13 @@ if test $ac_cv_func_getaddrinfo = no -o $ac_cv_func_inet_ntop = no ; then fi elif test $ol_enable_ipv6 != no ; then echo $ac_n "checking INET6_ADDRSTRLEN""... $ac_c" 1>&6 -echo "configure:10240: checking INET6_ADDRSTRLEN" >&5 +echo "configure:10239: checking INET6_ADDRSTRLEN" >&5 if eval "test \"\${ol_cv_inet6_addrstrlen+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -10265,10 +10264,49 @@ fi echo "$ac_t""$ol_cv_inet6_addrstrlen" 1>&6 - if test $ol_cv_inet6_addrstrlen = yes ; then + + echo $ac_n "checking struct sockaddr_storage""... $ac_c" 1>&6 +echo "configure:10270: checking struct sockaddr_storage" >&5 +if eval "test \"\${ol_cv_struct_sockaddr_storage+set}\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + + cat > conftest.$ac_ext < +#include + +int main() { + + struct sockaddr_storage ss; + +; return 0; } +EOF +if { (eval echo configure:10288: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + rm -rf conftest* + ol_cv_struct_sockaddr_storage=yes +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + ol_cv_struct_sockaddr_storage=no +fi +rm -f conftest* +fi + +echo "$ac_t""$ol_cv_struct_sockaddr_storage" 1>&6 + + if test $ol_cv_inet6_addrstrlen = yes \ + -a $ol_cv_struct_sockaddr_storage = yes ; then ol_link_ipv6=yes - elif test $ol_enable_ipv6 = yes ; then + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_inet6_addrstrlen = no ; then { echo "configure: error: IPv6 support requires INET6_ADDRSTRLEN" 1>&2; exit 1; } + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_struct_sockaddr_storage = no ; then + { echo "configure: error: IPv6 support requires struct sockaddr_storage" 1>&2; exit 1; } fi fi @@ -10277,17 +10315,17 @@ if test $ol_enable_local != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10281: checking for $ac_hdr" >&5 +echo "configure:10319: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10291: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10334,17 +10372,17 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10338: checking for $ac_hdr" >&5 +echo "configure:10376: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10348: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10376,17 +10414,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10380: checking for $ac_hdr" >&5 +echo "configure:10418: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10390: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10420,7 +10458,7 @@ done if test $krb5_impl = mit; then echo $ac_n "checking for main in -lk5crypto""... $ac_c" 1>&6 -echo "configure:10424: checking for main in -lk5crypto" >&5 +echo "configure:10462: checking for main in -lk5crypto" >&5 ac_lib_var=`echo k5crypto'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10428,14 +10466,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lk5crypto $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10458,7 +10496,7 @@ fi echo $ac_n "checking for main in -lkrb5""... $ac_c" 1>&6 -echo "configure:10462: checking for main in -lkrb5" >&5 +echo "configure:10500: checking for main in -lkrb5" >&5 ac_lib_var=`echo krb5'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10466,14 +10504,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 -l$krb5crypto -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10498,7 +10536,7 @@ fi elif test $krb5_impl = heimdal; then echo $ac_n "checking for main in -ldes""... $ac_c" 1>&6 -echo "configure:10502: checking for main in -ldes" >&5 +echo "configure:10540: checking for main in -ldes" >&5 ac_lib_var=`echo des'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10506,14 +10544,14 @@ else ac_save_LIBS="$LIBS" LIBS="-ldes $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10536,7 +10574,7 @@ fi echo $ac_n "checking for main in -lkrb5""... $ac_c" 1>&6 -echo "configure:10540: checking for main in -lkrb5" >&5 +echo "configure:10578: checking for main in -lkrb5" >&5 ac_lib_var=`echo krb5'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10544,14 +10582,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10614,17 +10652,17 @@ if test $ol_link_krb5 = yes -a \( $ol_with_kerberos = yes -o \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10618: checking for $ac_hdr" >&5 +echo "configure:10656: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10628: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10666: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10654,7 +10692,7 @@ done if test $ac_cv_header_kerberosIV_krb_h = yes ; then if test $krb5_impl = mit; then echo $ac_n "checking for main in -lkrb4""... $ac_c" 1>&6 -echo "configure:10658: checking for main in -lkrb4" >&5 +echo "configure:10696: checking for main in -lkrb4" >&5 ac_lib_var=`echo krb4'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10662,14 +10700,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb4 -ldes425 -lkrb5 -l$krb5crypto -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10711: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10694,7 +10732,7 @@ fi elif test $krb5_impl = heimdal; then echo $ac_n "checking for main in -lkrb4""... $ac_c" 1>&6 -echo "configure:10698: checking for main in -lkrb4" >&5 +echo "configure:10736: checking for main in -lkrb4" >&5 ac_lib_var=`echo krb4'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10702,14 +10740,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb4 -lkrb5 -l$krb5crypto -lasn1 -lroken -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10751,7 +10789,7 @@ EOF echo $ac_n "checking for des_debug in Kerberos libraries""... $ac_c" 1>&6 -echo "configure:10755: checking for des_debug in Kerberos libraries" >&5 +echo "configure:10793: checking for des_debug in Kerberos libraries" >&5 if eval "test \"\${ol_cv_var_des_debug+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10759,7 +10797,7 @@ else save_LIBS="$LIBS" LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS" cat > conftest.$ac_ext < @@ -10772,7 +10810,7 @@ des_debug = 1; ; return 0; } EOF -if { (eval echo configure:10776: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10814: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_var_des_debug=yes else @@ -10811,17 +10849,17 @@ if test $ol_with_kerberos = yes -o $ol_with_kerberos = auto \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10815: checking for $ac_hdr" >&5 +echo "configure:10853: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10825: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10863: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10850,7 +10888,7 @@ done if test $ac_cv_header_krb_h = yes ; then echo $ac_n "checking for main in -lkrb""... $ac_c" 1>&6 -echo "configure:10854: checking for main in -lkrb" >&5 +echo "configure:10892: checking for main in -lkrb" >&5 ac_lib_var=`echo krb'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10858,14 +10896,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb -ldes $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -10935,17 +10973,17 @@ if test $ol_with_tls != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:10939: checking for $ac_hdr" >&5 +echo "configure:10977: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:10949: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10987: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -10974,7 +11012,7 @@ done if test $ac_cv_header_openssl_ssl_h = yes -o $ac_cv_header_ssl_h = yes ; then echo $ac_n "checking for SSLeay_add_ssl_algorithms in -lssl""... $ac_c" 1>&6 -echo "configure:10978: checking for SSLeay_add_ssl_algorithms in -lssl" >&5 +echo "configure:11016: checking for SSLeay_add_ssl_algorithms in -lssl" >&5 ac_lib_var=`echo ssl'_'SSLeay_add_ssl_algorithms | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -10982,7 +11020,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lssl -lcrypto $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11035: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11018,7 +11056,7 @@ fi if test $have_ssleay = no ; then echo $ac_n "checking for SSL_library_init in -lssl""... $ac_c" 1>&6 -echo "configure:11022: checking for SSL_library_init in -lssl" >&5 +echo "configure:11060: checking for SSL_library_init in -lssl" >&5 ac_lib_var=`echo ssl'_'SSL_library_init | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11026,7 +11064,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lssl -lcrypto $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11063,7 +11101,7 @@ fi if test $have_ssleay = no ; then echo $ac_n "checking for ssl3_accept in -lssl""... $ac_c" 1>&6 -echo "configure:11067: checking for ssl3_accept in -lssl" >&5 +echo "configure:11105: checking for ssl3_accept in -lssl" >&5 ac_lib_var=`echo ssl'_'ssl3_accept | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -11071,7 +11109,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lssl -lcrypto -lRSAglue -lrsaref $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11124: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -11163,12 +11201,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11167: checking for $ac_func" >&5 +echo "configure:11205: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11234: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -11221,19 +11259,19 @@ if test "$ac_cv_func_ctime_r" = no ; then ol_cv_func_ctime_r_nargs=0 else echo $ac_n "checking number of arguments of ctime_r""... $ac_c" 1>&6 -echo "configure:11225: checking number of arguments of ctime_r" >&5 +echo "configure:11263: checking number of arguments of ctime_r" >&5 if eval "test \"\${ol_cv_func_ctime_r_nargs+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { time_t ti; char *buffer; ctime_r(&ti,buffer,32); ; return 0; } EOF -if { (eval echo configure:11237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11275: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_ctime_r_nargs3=yes else @@ -11245,14 +11283,14 @@ fi rm -f conftest* cat > conftest.$ac_ext < int main() { time_t ti; char *buffer; ctime_r(&ti,buffer); ; return 0; } EOF -if { (eval echo configure:11256: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11294: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_ctime_r_nargs2=yes else @@ -11292,12 +11330,12 @@ fi if test "$ac_cv_func_gethostbyname_r" = yes ; then echo $ac_n "checking number of arguments of gethostbyname_r""... $ac_c" 1>&6 -echo "configure:11296: checking number of arguments of gethostbyname_r" >&5 +echo "configure:11334: checking number of arguments of gethostbyname_r" >&5 if eval "test \"\${ol_cv_func_gethostbyname_r_nargs+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -11311,7 +11349,7 @@ struct hostent hent; char buffer[BUFSIZE]; buffer, bufsize, &h_errno); ; return 0; } EOF -if { (eval echo configure:11315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11353: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyname_r_nargs5=yes else @@ -11323,7 +11361,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < #include @@ -11338,7 +11376,7 @@ struct hostent hent;struct hostent *rhent; &rhent, &h_errno); ; return 0; } EOF -if { (eval echo configure:11342: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11380: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyname_r_nargs6=yes else @@ -11379,12 +11417,12 @@ fi if test "$ac_cv_func_gethostbyaddr_r" = yes ; then echo $ac_n "checking number of arguments of gethostbyaddr_r""... $ac_c" 1>&6 -echo "configure:11383: checking number of arguments of gethostbyaddr_r" >&5 +echo "configure:11421: checking number of arguments of gethostbyaddr_r" >&5 if eval "test \"\${ol_cv_func_gethostbyaddr_r_nargs+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -11400,7 +11438,7 @@ struct hostent hent; char buffer[BUFSIZE]; alen, AF_INET, &hent, buffer, bufsize, &h_errno); ; return 0; } EOF -if { (eval echo configure:11404: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11442: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyaddr_r_nargs7=yes else @@ -11412,7 +11450,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < #include @@ -11430,7 +11468,7 @@ struct hostent hent; &rhent, &h_errno); ; return 0; } EOF -if { (eval echo configure:11434: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:11472: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyaddr_r_nargs8=yes else @@ -11493,12 +11531,12 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ echo $ac_n "checking for _beginthread""... $ac_c" 1>&6 -echo "configure:11497: checking for _beginthread" >&5 +echo "configure:11535: checking for _beginthread" >&5 if eval "test \"\${ac_cv_func__beginthread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11564: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__beginthread=yes" else @@ -11578,17 +11616,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11582: checking for $ac_hdr" >&5 +echo "configure:11620: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11592: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11630: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11617,13 +11655,13 @@ done if test $ac_cv_header_pthread_h = yes ; then echo $ac_n "checking POSIX thread version""... $ac_c" 1>&6 -echo "configure:11621: checking POSIX thread version" >&5 +echo "configure:11659: checking POSIX thread version" >&5 if eval "test \"\${ol_cv_pthread_version+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -11645,7 +11683,7 @@ rm -f conftest* cat > conftest.$ac_ext < @@ -11698,12 +11736,12 @@ EOF echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6 -echo "configure:11702: checking for LinuxThreads pthread.h" >&5 +echo "configure:11740: checking for LinuxThreads pthread.h" >&5 if eval "test \"\${ol_cv_header_linux_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -11730,12 +11768,12 @@ EOF echo $ac_n "checking for GNU Pth pthread.h""... $ac_c" 1>&6 -echo "configure:11734: checking for GNU Pth pthread.h" >&5 +echo "configure:11772: checking for GNU Pth pthread.h" >&5 if eval "test \"\${ol_cv_header_gnu_pth_pthread_h+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #ifdef _POSIX_THREAD_IS_GNU_PTH @@ -11764,17 +11802,17 @@ echo "$ac_t""$ol_cv_header_gnu_pth_pthread_h" 1>&6 do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11768: checking for $ac_hdr" >&5 +echo "configure:11806: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:11778: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11816: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -11804,14 +11842,14 @@ done echo $ac_n "checking for pthread_create in default libraries""... $ac_c" 1>&6 -echo "configure:11808: checking for pthread_create in default libraries" >&5 +echo "configure:11846: checking for pthread_create in default libraries" >&5 if eval "test \"\${ol_cv_pthread_create+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -11892,7 +11930,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:11896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11934: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_create=yes else @@ -11904,7 +11942,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -11990,7 +12028,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:11994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12032: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_create=yes else @@ -12015,7 +12053,7 @@ echo "$ac_t""$ol_cv_pthread_create" 1>&6 if test "$ol_link_threads" = no ; then # try -kthread echo $ac_n "checking for pthread link with -kthread""... $ac_c" 1>&6 -echo "configure:12019: checking for pthread link with -kthread" >&5 +echo "configure:12057: checking for pthread link with -kthread" >&5 if eval "test \"\${ol_cv_pthread_kthread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12026,7 +12064,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -12107,7 +12145,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12111: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12149: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_kthread=yes else @@ -12119,7 +12157,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -12205,7 +12243,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:12209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12247: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_kthread=yes else @@ -12235,7 +12273,7 @@ fi if test "$ol_link_threads" = no ; then # try -pthread echo $ac_n "checking for pthread link with -pthread""... $ac_c" 1>&6 -echo "configure:12239: checking for pthread link with -pthread" >&5 +echo "configure:12277: checking for pthread link with -pthread" >&5 if eval "test \"\${ol_cv_pthread_pthread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12246,7 +12284,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -12327,7 +12365,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12331: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12369: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_pthread=yes else @@ -12339,7 +12377,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -12425,7 +12463,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:12429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_pthread=yes else @@ -12455,7 +12493,7 @@ fi if test "$ol_link_threads" = no ; then # try -pthreads echo $ac_n "checking for pthread link with -pthreads""... $ac_c" 1>&6 -echo "configure:12459: checking for pthread link with -pthreads" >&5 +echo "configure:12497: checking for pthread link with -pthreads" >&5 if eval "test \"\${ol_cv_pthread_pthreads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12466,7 +12504,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -12547,7 +12585,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12551: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12589: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_pthreads=yes else @@ -12559,7 +12597,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -12645,7 +12683,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:12649: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_pthreads=yes else @@ -12675,7 +12713,7 @@ fi if test "$ol_link_threads" = no ; then # try -mthreads echo $ac_n "checking for pthread link with -mthreads""... $ac_c" 1>&6 -echo "configure:12679: checking for pthread link with -mthreads" >&5 +echo "configure:12717: checking for pthread link with -mthreads" >&5 if eval "test \"\${ol_cv_pthread_mthreads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12686,7 +12724,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -12767,7 +12805,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:12809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_mthreads=yes else @@ -12779,7 +12817,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -12865,7 +12903,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:12869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:12907: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_mthreads=yes else @@ -12895,7 +12933,7 @@ fi if test "$ol_link_threads" = no ; then # try -thread echo $ac_n "checking for pthread link with -thread""... $ac_c" 1>&6 -echo "configure:12899: checking for pthread link with -thread" >&5 +echo "configure:12937: checking for pthread link with -thread" >&5 if eval "test \"\${ol_cv_pthread_thread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12906,7 +12944,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -12987,7 +13025,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:12991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_thread=yes else @@ -12999,7 +13037,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -13085,7 +13123,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:13089: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_thread=yes else @@ -13116,7 +13154,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthread -lmach -lexc -lc_r echo $ac_n "checking for pthread link with -lpthread -lmach -lexc -lc_r""... $ac_c" 1>&6 -echo "configure:13120: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5 +echo "configure:13158: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5 if eval "test \"\${ol_cv_pthread_lpthread_lmach_lexc_lc_r+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13127,7 +13165,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -13208,7 +13246,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:13212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes else @@ -13220,7 +13258,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -13306,7 +13344,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:13310: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthread_lmach_lexc_lc_r=yes else @@ -13336,7 +13374,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthread -lmach -lexc echo $ac_n "checking for pthread link with -lpthread -lmach -lexc""... $ac_c" 1>&6 -echo "configure:13340: checking for pthread link with -lpthread -lmach -lexc" >&5 +echo "configure:13378: checking for pthread link with -lpthread -lmach -lexc" >&5 if eval "test \"\${ol_cv_pthread_lpthread_lmach_lexc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13347,7 +13385,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -13428,7 +13466,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:13432: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13470: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthread_lmach_lexc=yes else @@ -13440,7 +13478,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -13526,7 +13564,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:13530: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthread_lmach_lexc=yes else @@ -13557,7 +13595,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthread -Wl,-woff,85 echo $ac_n "checking for pthread link with -lpthread -Wl,-woff,85""... $ac_c" 1>&6 -echo "configure:13561: checking for pthread link with -lpthread -Wl,-woff,85" >&5 +echo "configure:13599: checking for pthread link with -lpthread -Wl,-woff,85" >&5 if eval "test \"\${ol_cv_pthread_lib_lpthread_woff+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13568,7 +13606,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -13649,7 +13687,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:13653: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13691: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lib_lpthread_woff=yes else @@ -13661,7 +13699,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -13747,7 +13785,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:13751: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lib_lpthread_woff=yes else @@ -13778,7 +13816,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthread echo $ac_n "checking for pthread link with -lpthread""... $ac_c" 1>&6 -echo "configure:13782: checking for pthread link with -lpthread" >&5 +echo "configure:13820: checking for pthread link with -lpthread" >&5 if eval "test \"\${ol_cv_pthread_lpthread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13789,7 +13827,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -13870,7 +13908,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:13874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthread=yes else @@ -13882,7 +13920,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -13968,7 +14006,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:13972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14010: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthread=yes else @@ -13998,7 +14036,7 @@ fi if test "$ol_link_threads" = no ; then # try -lc_r echo $ac_n "checking for pthread link with -lc_r""... $ac_c" 1>&6 -echo "configure:14002: checking for pthread link with -lc_r" >&5 +echo "configure:14040: checking for pthread link with -lc_r" >&5 if eval "test \"\${ol_cv_pthread_lc_r+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14009,7 +14047,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -14090,7 +14128,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14132: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lc_r=yes else @@ -14102,7 +14140,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -14188,7 +14226,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:14192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lc_r=yes else @@ -14219,7 +14257,7 @@ fi if test "$ol_link_threads" = no ; then # try -threads echo $ac_n "checking for pthread link with -threads""... $ac_c" 1>&6 -echo "configure:14223: checking for pthread link with -threads" >&5 +echo "configure:14261: checking for pthread link with -threads" >&5 if eval "test \"\${ol_cv_pthread_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14230,7 +14268,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -14311,7 +14349,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_threads=yes else @@ -14323,7 +14361,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -14409,7 +14447,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:14413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_threads=yes else @@ -14440,7 +14478,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthreads -lmach -lexc -lc_r echo $ac_n "checking for pthread link with -lpthreads -lmach -lexc -lc_r""... $ac_c" 1>&6 -echo "configure:14444: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5 +echo "configure:14482: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5 if eval "test \"\${ol_cv_pthread_lpthreads_lmach_lexc_lc_r+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14451,7 +14489,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -14532,7 +14570,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes else @@ -14544,7 +14582,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -14630,7 +14668,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:14634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthreads_lmach_lexc_lc_r=yes else @@ -14660,7 +14698,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthreads -lmach -lexc echo $ac_n "checking for pthread link with -lpthreads -lmach -lexc""... $ac_c" 1>&6 -echo "configure:14664: checking for pthread link with -lpthreads -lmach -lexc" >&5 +echo "configure:14702: checking for pthread link with -lpthreads -lmach -lexc" >&5 if eval "test \"\${ol_cv_pthread_lpthreads_lmach_lexc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14671,7 +14709,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -14752,7 +14790,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:14794: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthreads_lmach_lexc=yes else @@ -14764,7 +14802,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -14850,7 +14888,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:14854: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthreads_lmach_lexc=yes else @@ -14880,7 +14918,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthreads -lexc echo $ac_n "checking for pthread link with -lpthreads -lexc""... $ac_c" 1>&6 -echo "configure:14884: checking for pthread link with -lpthreads -lexc" >&5 +echo "configure:14922: checking for pthread link with -lpthreads -lexc" >&5 if eval "test \"\${ol_cv_pthread_lpthreads_lexc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -14891,7 +14929,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -14972,7 +15010,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15014: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthreads_lexc=yes else @@ -14984,7 +15022,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -15070,7 +15108,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:15074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15112: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lpthreads_lexc=yes else @@ -15101,7 +15139,7 @@ fi if test "$ol_link_threads" = no ; then # try -lpthreads echo $ac_n "checking for pthread link with -lpthreads""... $ac_c" 1>&6 -echo "configure:15105: checking for pthread link with -lpthreads" >&5 +echo "configure:15143: checking for pthread link with -lpthreads" >&5 if eval "test \"\${ol_cv_pthread_lib_lpthreads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15112,7 +15150,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -15193,7 +15231,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:15197: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15235: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lib_lpthreads=yes else @@ -15205,7 +15243,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -15291,7 +15329,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:15295: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15333: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_lib_lpthreads=yes else @@ -15333,12 +15371,12 @@ EOF for ac_func in sched_yield pthread_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15337: checking for $ac_func" >&5 +echo "configure:15375: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15390,7 +15428,7 @@ done if test $ac_cv_func_sched_yield = no -a \ $ac_cv_func_pthread_yield = no ; then echo $ac_n "checking for sched_yield in -lrt""... $ac_c" 1>&6 -echo "configure:15394: checking for sched_yield in -lrt" >&5 +echo "configure:15432: checking for sched_yield in -lrt" >&5 ac_lib_var=`echo rt'_'sched_yield | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -15398,7 +15436,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lrt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15451: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -15441,12 +15479,12 @@ fi for ac_func in thr_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15445: checking for $ac_func" >&5 +echo "configure:15483: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15504,12 +15542,12 @@ done for ac_func in pthread_kill pthread_rwlock_destroy do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15508: checking for $ac_func" >&5 +echo "configure:15546: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15575: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15559,13 +15597,13 @@ done echo $ac_n "checking for pthread_detach with ""... $ac_c" 1>&6 -echo "configure:15563: checking for pthread_detach with " >&5 +echo "configure:15601: checking for pthread_detach with " >&5 if eval "test \"\${ol_cv_func_pthread_detach+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -15577,7 +15615,7 @@ int main() { pthread_detach(NULL); ; return 0; } EOF -if { (eval echo configure:15581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_func_pthread_detach=yes else @@ -15609,12 +15647,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15613: checking for $ac_func" >&5 +echo "configure:15651: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15680: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15667,12 +15705,12 @@ done for ac_func in pthread_kill_other_threads_np do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15671: checking for $ac_func" >&5 +echo "configure:15709: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15738: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -15721,7 +15759,7 @@ fi done echo $ac_n "checking for LinuxThreads implementation""... $ac_c" 1>&6 -echo "configure:15725: checking for LinuxThreads implementation" >&5 +echo "configure:15763: checking for LinuxThreads implementation" >&5 if eval "test \"\${ol_cv_sys_linux_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15734,7 +15772,7 @@ echo "$ac_t""$ol_cv_sys_linux_threads" 1>&6 echo $ac_n "checking for LinuxThreads consistency""... $ac_c" 1>&6 -echo "configure:15738: checking for LinuxThreads consistency" >&5 +echo "configure:15776: checking for LinuxThreads consistency" >&5 if eval "test \"\${ol_cv_linux_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15759,7 +15797,7 @@ echo "$ac_t""$ol_cv_linux_threads" 1>&6 fi echo $ac_n "checking if pthread_create() works""... $ac_c" 1>&6 -echo "configure:15763: checking if pthread_create() works" >&5 +echo "configure:15801: checking if pthread_create() works" >&5 if eval "test \"\${ol_cv_pthread_create_works+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15768,7 +15806,7 @@ else ol_cv_pthread_create_works=yes else cat > conftest.$ac_ext < @@ -15854,7 +15892,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:15858: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:15896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_create_works=yes else @@ -15876,7 +15914,7 @@ echo "$ac_t""$ol_cv_pthread_create_works" 1>&6 if test $ol_with_yielding_select = auto ; then echo $ac_n "checking if select yields when using pthreads""... $ac_c" 1>&6 -echo "configure:15880: checking if select yields when using pthreads" >&5 +echo "configure:15918: checking if select yields when using pthreads" >&5 if eval "test \"\${ol_cv_pthread_select_yields+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -15885,7 +15923,7 @@ else ol_cv_pthread_select_yields=cross else cat > conftest.$ac_ext < @@ -15961,7 +15999,7 @@ int main(argc, argv) exit(2); } EOF -if { (eval echo configure:15965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:16003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_pthread_select_yields=no else @@ -16005,17 +16043,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16009: checking for $ac_hdr" >&5 +echo "configure:16047: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16057: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16045,12 +16083,12 @@ done ol_with_threads=found echo $ac_n "checking for cthread_fork""... $ac_c" 1>&6 -echo "configure:16049: checking for cthread_fork" >&5 +echo "configure:16087: checking for cthread_fork" >&5 if eval "test \"\${ac_cv_func_cthread_fork+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16116: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cthread_fork=yes" else @@ -16096,7 +16134,7 @@ fi if test $ol_link_threads = no ; then echo $ac_n "checking for cthread_fork with -all_load""... $ac_c" 1>&6 -echo "configure:16100: checking for cthread_fork with -all_load" >&5 +echo "configure:16138: checking for cthread_fork with -all_load" >&5 if eval "test \"\${ol_cv_cthread_all_load+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -16104,7 +16142,7 @@ else save_LIBS="$LIBS" LIBS="-all_load $LIBS" cat > conftest.$ac_ext < int main() { @@ -16113,7 +16151,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:16117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16155: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_cthread_all_load=yes else @@ -16143,12 +16181,12 @@ echo "$ac_t""$ol_cv_cthread_all_load" 1>&6 save_LIBS="$LIBS" LIBS="$LIBS -lthreads" echo $ac_n "checking for cthread_fork""... $ac_c" 1>&6 -echo "configure:16147: checking for cthread_fork" >&5 +echo "configure:16185: checking for cthread_fork" >&5 if eval "test \"\${ac_cv_func_cthread_fork+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_cthread_fork=yes" else @@ -16222,17 +16260,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16226: checking for $ac_hdr" >&5 +echo "configure:16264: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16274: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16261,7 +16299,7 @@ done if test $ac_cv_header_pth_h = yes ; then echo $ac_n "checking for pth_version in -lpth""... $ac_c" 1>&6 -echo "configure:16265: checking for pth_version in -lpth" >&5 +echo "configure:16303: checking for pth_version in -lpth" >&5 ac_lib_var=`echo pth'_'pth_version | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -16269,7 +16307,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lpth $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -16325,17 +16363,17 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16329: checking for $ac_hdr" >&5 +echo "configure:16367: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16339: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16363,7 +16401,7 @@ done if test $ac_cv_header_thread_h = yes -a $ac_cv_header_synch_h = yes ; then echo $ac_n "checking for thr_create in -lthread""... $ac_c" 1>&6 -echo "configure:16367: checking for thr_create in -lthread" >&5 +echo "configure:16405: checking for thr_create in -lthread" >&5 ac_lib_var=`echo thread'_'thr_create | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -16371,7 +16409,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lthread $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -16422,12 +16460,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:16426: checking for $ac_func" >&5 +echo "configure:16464: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16493: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -16482,17 +16520,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16486: checking for $ac_hdr" >&5 +echo "configure:16524: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16496: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16534: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16520,7 +16558,7 @@ done if test $ac_cv_header_lwp_lwp_h = yes ; then echo $ac_n "checking for lwp_create in -llwp""... $ac_c" 1>&6 -echo "configure:16524: checking for lwp_create in -llwp" >&5 +echo "configure:16562: checking for lwp_create in -llwp" >&5 ac_lib_var=`echo lwp'_'lwp_create | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -16528,7 +16566,7 @@ else ac_save_LIBS="$LIBS" LIBS="-llwp $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16581: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -16592,17 +16630,17 @@ if test $ol_with_threads = manual ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16596: checking for $ac_hdr" >&5 +echo "configure:16634: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16606: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16644: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16631,12 +16669,12 @@ done for ac_func in sched_yield pthread_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:16635: checking for $ac_func" >&5 +echo "configure:16673: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -16686,12 +16724,12 @@ done echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6 -echo "configure:16690: checking for LinuxThreads pthread.h" >&5 +echo "configure:16728: checking for LinuxThreads pthread.h" >&5 if eval "test \"\${ol_cv_header_linux_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -16721,17 +16759,17 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16725: checking for $ac_hdr" >&5 +echo "configure:16763: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16735: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16773: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16761,17 +16799,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16765: checking for $ac_hdr" >&5 +echo "configure:16803: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16775: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16813: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16801,17 +16839,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16805: checking for $ac_hdr" >&5 +echo "configure:16843: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16815: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:16853: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -16870,20 +16908,20 @@ EOF echo $ac_n "checking for thread specific errno""... $ac_c" 1>&6 -echo "configure:16874: checking for thread specific errno" >&5 +echo "configure:16912: checking for thread specific errno" >&5 if eval "test \"\${ol_cv_errno_thread_specific+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { errno = 0; ; return 0; } EOF -if { (eval echo configure:16887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16925: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_errno_thread_specific=yes else @@ -16899,20 +16937,20 @@ fi echo "$ac_t""$ol_cv_errno_thread_specific" 1>&6 echo $ac_n "checking for thread specific h_errno""... $ac_c" 1>&6 -echo "configure:16903: checking for thread specific h_errno" >&5 +echo "configure:16941: checking for thread specific h_errno" >&5 if eval "test \"\${ol_cv_h_errno_thread_specific+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { h_errno = 0; ; return 0; } EOF -if { (eval echo configure:16916: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:16954: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_h_errno_thread_specific=yes else @@ -16970,17 +17008,17 @@ if test $ol_with_ldbm_api = auto \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:16974: checking for $ac_hdr" >&5 +echo "configure:17012: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:16984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:17022: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -17008,13 +17046,13 @@ done if test $ac_cv_header_db_185_h = yes -o $ac_cv_header_db_h = yes; then echo $ac_n "checking if Berkeley DB header compatibility""... $ac_c" 1>&6 -echo "configure:17012: checking if Berkeley DB header compatibility" >&5 +echo "configure:17050: checking if Berkeley DB header compatibility" >&5 if eval "test \"\${ol_cv_header_db1+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ol_cv_lib_db=no if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (default)""... $ac_c" 1>&6 -echo "configure:17055: checking for Berkeley DB link (default)" >&5 +echo "configure:17093: checking for Berkeley DB link (default)" >&5 if eval "test \"\${ol_cv_db_none+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17061,7 +17099,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_none=yes else @@ -17132,7 +17170,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb4)""... $ac_c" 1>&6 -echo "configure:17136: checking for Berkeley DB link (-ldb4)" >&5 +echo "configure:17174: checking for Berkeley DB link (-ldb4)" >&5 if eval "test \"\${ol_cv_db_db4+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17142,7 +17180,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db4=yes else @@ -17213,7 +17251,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-4)""... $ac_c" 1>&6 -echo "configure:17217: checking for Berkeley DB link (-ldb-4)" >&5 +echo "configure:17255: checking for Berkeley DB link (-ldb-4)" >&5 if eval "test \"\${ol_cv_db_db_4+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17223,7 +17261,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_4=yes else @@ -17294,7 +17332,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb)""... $ac_c" 1>&6 -echo "configure:17298: checking for Berkeley DB link (-ldb)" >&5 +echo "configure:17336: checking for Berkeley DB link (-ldb)" >&5 if eval "test \"\${ol_cv_db_db+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17304,7 +17342,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17393: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db=yes else @@ -17375,7 +17413,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb3)""... $ac_c" 1>&6 -echo "configure:17379: checking for Berkeley DB link (-ldb3)" >&5 +echo "configure:17417: checking for Berkeley DB link (-ldb3)" >&5 if eval "test \"\${ol_cv_db_db3+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17385,7 +17423,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db3=yes else @@ -17456,7 +17494,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-3)""... $ac_c" 1>&6 -echo "configure:17460: checking for Berkeley DB link (-ldb-3)" >&5 +echo "configure:17498: checking for Berkeley DB link (-ldb-3)" >&5 if eval "test \"\${ol_cv_db_db_3+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17466,7 +17504,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17555: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_3=yes else @@ -17537,7 +17575,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb2)""... $ac_c" 1>&6 -echo "configure:17541: checking for Berkeley DB link (-ldb2)" >&5 +echo "configure:17579: checking for Berkeley DB link (-ldb2)" >&5 if eval "test \"\${ol_cv_db_db2+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17547,7 +17585,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17636: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db2=yes else @@ -17618,7 +17656,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-2)""... $ac_c" 1>&6 -echo "configure:17622: checking for Berkeley DB link (-ldb-2)" >&5 +echo "configure:17660: checking for Berkeley DB link (-ldb-2)" >&5 if eval "test \"\${ol_cv_db_db_2+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17628,7 +17666,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_2=yes else @@ -17699,7 +17737,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb1)""... $ac_c" 1>&6 -echo "configure:17703: checking for Berkeley DB link (-ldb1)" >&5 +echo "configure:17741: checking for Berkeley DB link (-ldb1)" >&5 if eval "test \"\${ol_cv_db_db1+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17709,7 +17747,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17798: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db1=yes else @@ -17780,7 +17818,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-1)""... $ac_c" 1>&6 -echo "configure:17784: checking for Berkeley DB link (-ldb-1)" >&5 +echo "configure:17822: checking for Berkeley DB link (-ldb-1)" >&5 if eval "test \"\${ol_cv_db_db_1+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17790,7 +17828,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:17879: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_1=yes else @@ -17872,17 +17910,17 @@ for ac_hdr in db.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:17876: checking for $ac_hdr" >&5 +echo "configure:17914: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:17886: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:17924: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -17912,7 +17950,7 @@ if test $ac_cv_header_db_h = yes; then ol_cv_lib_db=no if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (default)""... $ac_c" 1>&6 -echo "configure:17916: checking for Berkeley DB link (default)" >&5 +echo "configure:17954: checking for Berkeley DB link (default)" >&5 if eval "test \"\${ol_cv_db_none+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -17922,7 +17960,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_none=yes else @@ -17993,7 +18031,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb4)""... $ac_c" 1>&6 -echo "configure:17997: checking for Berkeley DB link (-ldb4)" >&5 +echo "configure:18035: checking for Berkeley DB link (-ldb4)" >&5 if eval "test \"\${ol_cv_db_db4+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18003,7 +18041,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db4=yes else @@ -18074,7 +18112,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-4)""... $ac_c" 1>&6 -echo "configure:18078: checking for Berkeley DB link (-ldb-4)" >&5 +echo "configure:18116: checking for Berkeley DB link (-ldb-4)" >&5 if eval "test \"\${ol_cv_db_db_4+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18084,7 +18122,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18173: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_4=yes else @@ -18155,7 +18193,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb)""... $ac_c" 1>&6 -echo "configure:18159: checking for Berkeley DB link (-ldb)" >&5 +echo "configure:18197: checking for Berkeley DB link (-ldb)" >&5 if eval "test \"\${ol_cv_db_db+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18165,7 +18203,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db=yes else @@ -18236,7 +18274,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb3)""... $ac_c" 1>&6 -echo "configure:18240: checking for Berkeley DB link (-ldb3)" >&5 +echo "configure:18278: checking for Berkeley DB link (-ldb3)" >&5 if eval "test \"\${ol_cv_db_db3+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18246,7 +18284,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18335: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db3=yes else @@ -18317,7 +18355,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-3)""... $ac_c" 1>&6 -echo "configure:18321: checking for Berkeley DB link (-ldb-3)" >&5 +echo "configure:18359: checking for Berkeley DB link (-ldb-3)" >&5 if eval "test \"\${ol_cv_db_db_3+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18327,7 +18365,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_3=yes else @@ -18398,7 +18436,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb2)""... $ac_c" 1>&6 -echo "configure:18402: checking for Berkeley DB link (-ldb2)" >&5 +echo "configure:18440: checking for Berkeley DB link (-ldb2)" >&5 if eval "test \"\${ol_cv_db_db2+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18408,7 +18446,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db2=yes else @@ -18479,7 +18517,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-2)""... $ac_c" 1>&6 -echo "configure:18483: checking for Berkeley DB link (-ldb-2)" >&5 +echo "configure:18521: checking for Berkeley DB link (-ldb-2)" >&5 if eval "test \"\${ol_cv_db_db_2+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18489,7 +18527,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_2=yes else @@ -18560,7 +18598,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb1)""... $ac_c" 1>&6 -echo "configure:18564: checking for Berkeley DB link (-ldb1)" >&5 +echo "configure:18602: checking for Berkeley DB link (-ldb1)" >&5 if eval "test \"\${ol_cv_db_db1+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18570,7 +18608,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18659: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db1=yes else @@ -18641,7 +18679,7 @@ fi if test $ol_cv_lib_db = no ; then echo $ac_n "checking for Berkeley DB link (-ldb-1)""... $ac_c" 1>&6 -echo "configure:18645: checking for Berkeley DB link (-ldb-1)" >&5 +echo "configure:18683: checking for Berkeley DB link (-ldb-1)" >&5 if eval "test \"\${ol_cv_db_db_1+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18651,7 +18689,7 @@ else LIBS="$ol_DB_LIB $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db_1=yes else @@ -18724,7 +18762,7 @@ fi if test "$ol_cv_lib_db" != no ; then ol_cv_berkeley_db=yes echo $ac_n "checking for Berkeley DB thread support""... $ac_c" 1>&6 -echo "configure:18728: checking for Berkeley DB thread support" >&5 +echo "configure:18766: checking for Berkeley DB thread support" >&5 if eval "test \"\${ol_cv_berkeley_db_thread+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -18738,7 +18776,7 @@ else ol_cv_berkeley_db_thread=cross else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:18847: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_berkeley_db_thread=yes else @@ -18866,13 +18904,13 @@ if test $ol_enable_bdb = yes -a $ol_link_ldbm != berkeley ; then { echo "configure: error: BDB: BerkeleyDB not available" 1>&2; exit 1; } elif test $ol_enable_bdb != no -a $ol_link_ldbm = berkeley ; then echo $ac_n "checking Berkeley DB version for BDB backend""... $ac_c" 1>&6 -echo "configure:18870: checking Berkeley DB version for BDB backend" >&5 +echo "configure:18908: checking Berkeley DB version for BDB backend" >&5 if eval "test \"\${ol_cv_bdb_compat+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -18919,18 +18957,18 @@ fi if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = mdbm ; then echo $ac_n "checking for MDBM library""... $ac_c" 1>&6 -echo "configure:18923: checking for MDBM library" >&5 +echo "configure:18961: checking for MDBM library" >&5 if eval "test \"\${ol_cv_lib_mdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ol_LIBS="$LIBS" echo $ac_n "checking for mdbm_set_chain""... $ac_c" 1>&6 -echo "configure:18929: checking for mdbm_set_chain" >&5 +echo "configure:18967: checking for mdbm_set_chain" >&5 if eval "test \"\${ac_cv_func_mdbm_set_chain+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:18996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_mdbm_set_chain=yes" else @@ -18973,7 +19011,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for mdbm_set_chain in -lmdbm""... $ac_c" 1>&6 -echo "configure:18977: checking for mdbm_set_chain in -lmdbm" >&5 +echo "configure:19015: checking for mdbm_set_chain in -lmdbm" >&5 ac_lib_var=`echo mdbm'_'mdbm_set_chain | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -18981,7 +19019,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lmdbm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19027,17 +19065,17 @@ echo "$ac_t""$ol_cv_lib_mdbm" 1>&6 do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19031: checking for $ac_hdr" >&5 +echo "configure:19069: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19041: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:19079: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19064,7 +19102,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:19068: checking for db" >&5 +echo "configure:19106: checking for db" >&5 if eval "test \"\${ol_cv_mdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -19097,18 +19135,18 @@ fi if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = gdbm ; then echo $ac_n "checking for GDBM library""... $ac_c" 1>&6 -echo "configure:19101: checking for GDBM library" >&5 +echo "configure:19139: checking for GDBM library" >&5 if eval "test \"\${ol_cv_lib_gdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ol_LIBS="$LIBS" echo $ac_n "checking for gdbm_open""... $ac_c" 1>&6 -echo "configure:19107: checking for gdbm_open" >&5 +echo "configure:19145: checking for gdbm_open" >&5 if eval "test \"\${ac_cv_func_gdbm_open+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19174: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_gdbm_open=yes" else @@ -19151,7 +19189,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:19155: checking for gdbm_open in -lgdbm" >&5 +echo "configure:19193: checking for gdbm_open in -lgdbm" >&5 ac_lib_var=`echo gdbm'_'gdbm_open | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19159,7 +19197,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lgdbm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19212: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19205,17 +19243,17 @@ echo "$ac_t""$ol_cv_lib_gdbm" 1>&6 do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19209: checking for $ac_hdr" >&5 +echo "configure:19247: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19219: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:19257: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19242,7 +19280,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:19246: checking for db" >&5 +echo "configure:19284: checking for db" >&5 if eval "test \"\${ol_cv_gdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -19276,18 +19314,18 @@ fi if test $ol_with_ldbm_api = ndbm ; then echo $ac_n "checking for NDBM library""... $ac_c" 1>&6 -echo "configure:19280: checking for NDBM library" >&5 +echo "configure:19318: checking for NDBM library" >&5 if eval "test \"\${ol_cv_lib_ndbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ol_LIBS="$LIBS" echo $ac_n "checking for dbm_open""... $ac_c" 1>&6 -echo "configure:19286: checking for dbm_open" >&5 +echo "configure:19324: checking for dbm_open" >&5 if eval "test \"\${ac_cv_func_dbm_open+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_dbm_open=yes" else @@ -19330,7 +19368,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dbm_open in -lndbm""... $ac_c" 1>&6 -echo "configure:19334: checking for dbm_open in -lndbm" >&5 +echo "configure:19372: checking for dbm_open in -lndbm" >&5 ac_lib_var=`echo ndbm'_'dbm_open | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19338,7 +19376,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lndbm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19391: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19369,7 +19407,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:19373: checking for dbm_open in -ldbm" >&5 +echo "configure:19411: checking for dbm_open in -ldbm" >&5 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19377,7 +19415,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ldbm $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19425,17 +19463,17 @@ echo "$ac_t""$ol_cv_lib_ndbm" 1>&6 do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19429: checking for $ac_hdr" >&5 +echo "configure:19467: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19439: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:19477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19462,7 +19500,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:19466: checking for db" >&5 +echo "configure:19504: checking for db" >&5 if eval "test \"\${ol_cv_ndbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -19519,17 +19557,17 @@ if test $ol_enable_wrappers != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19523: checking for $ac_hdr" >&5 +echo "configure:19561: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19533: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:19571: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19551,11 +19589,11 @@ if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then EOF echo $ac_n "checking for TCP wrappers library""... $ac_c" 1>&6 -echo "configure:19555: checking for TCP wrappers library" >&5 +echo "configure:19593: checking for TCP wrappers library" >&5 save_LIBS="$LIBS" LIBS="$LIBS -lwrap" cat > conftest.$ac_ext < @@ -19570,7 +19608,7 @@ hosts_access(req) ; return 0; } EOF -if { (eval echo configure:19574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19612: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""-lwrap" 1>&6 have_wrappers=yes @@ -19582,7 +19620,7 @@ else LIBS="$LIBS -lnsl" cat > conftest.$ac_ext < @@ -19597,7 +19635,7 @@ hosts_access(req) ; return 0; } EOF -if { (eval echo configure:19601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19639: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* echo "$ac_t""-lwrap -lnsl" 1>&6 have_wrappers=yes @@ -19637,12 +19675,12 @@ fi if test $ol_enable_syslog != no ; then echo $ac_n "checking for openlog""... $ac_c" 1>&6 -echo "configure:19641: checking for openlog" >&5 +echo "configure:19679: checking for openlog" >&5 if eval "test \"\${ac_cv_func_openlog+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_openlog=yes" else @@ -19695,7 +19733,7 @@ fi ol_link_sql=no if test $ol_enable_sql != no ; then echo $ac_n "checking for SQLDriverConnect in -liodbc""... $ac_c" 1>&6 -echo "configure:19699: checking for SQLDriverConnect in -liodbc" >&5 +echo "configure:19737: checking for SQLDriverConnect in -liodbc" >&5 ac_lib_var=`echo iodbc'_'SQLDriverConnect | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19703,7 +19741,7 @@ else ac_save_LIBS="$LIBS" LIBS="-liodbc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19739,7 +19777,7 @@ fi ol_link_sql="-liodbc" else echo $ac_n "checking for SQLDriverConnect in -lodbc""... $ac_c" 1>&6 -echo "configure:19743: checking for SQLDriverConnect in -lodbc" >&5 +echo "configure:19781: checking for SQLDriverConnect in -lodbc" >&5 ac_lib_var=`echo odbc'_'SQLDriverConnect | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19747,7 +19785,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lodbc $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19800: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19797,17 +19835,17 @@ for ac_hdr in termcap.h ncurses.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19801: checking for $ac_hdr" >&5 +echo "configure:19839: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19811: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:19849: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19836,7 +19874,7 @@ done if test $ol_link_termcap = no ; then echo $ac_n "checking for tputs in -ltermcap""... $ac_c" 1>&6 -echo "configure:19840: checking for tputs in -ltermcap" >&5 +echo "configure:19878: checking for tputs in -ltermcap" >&5 ac_lib_var=`echo termcap'_'tputs | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19844,7 +19882,7 @@ else ac_save_LIBS="$LIBS" LIBS="-ltermcap $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19897: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19888,7 +19926,7 @@ fi if test $ol_link_termcap = no ; then echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6 -echo "configure:19892: checking for initscr in -lncurses" >&5 +echo "configure:19930: checking for initscr in -lncurses" >&5 ac_lib_var=`echo ncurses'_'initscr | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -19896,7 +19934,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lncurses $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:19949: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -19953,17 +19991,17 @@ if test $ol_with_cyrus_sasl != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:19957: checking for $ac_hdr" >&5 +echo "configure:19995: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:19967: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:20005: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -19992,7 +20030,7 @@ done if test $ac_cv_header_sasl_sasl_h = yes -o $ac_cv_header_sasl_h = yes; then echo $ac_n "checking for sasl_client_init in -lsasl2""... $ac_c" 1>&6 -echo "configure:19996: checking for sasl_client_init in -lsasl2" >&5 +echo "configure:20034: checking for sasl_client_init in -lsasl2" >&5 ac_lib_var=`echo sasl2'_'sasl_client_init | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20000,7 +20038,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsasl2 $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20053: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20030,7 +20068,7 @@ if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then else echo "$ac_t""no" 1>&6 echo $ac_n "checking for sasl_client_init in -lsasl""... $ac_c" 1>&6 -echo "configure:20034: checking for sasl_client_init in -lsasl" >&5 +echo "configure:20072: checking for sasl_client_init in -lsasl" >&5 ac_lib_var=`echo sasl'_'sasl_client_init | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20038,7 +20076,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lsasl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20091: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20085,13 +20123,13 @@ fi fi else echo $ac_n "checking Cyrus SASL library version""... $ac_c" 1>&6 -echo "configure:20089: checking Cyrus SASL library version" >&5 +echo "configure:20127: checking Cyrus SASL library version" >&5 if eval "test \"\${ol_cv_sasl_compat+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 +echo "configure:20184: checking for sasl_version" >&5 +if eval "test \"\${ac_cv_func_sasl_version+set}\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&6 +else + cat > conftest.$ac_ext < +/* Override any gcc2 internal prototype to avoid an error. */ +/* We use char because int might match the return type of a gcc2 + builtin and then its argument prototype would still apply. */ +char sasl_version(); +char (*f)(); + +int main() { + +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined (__stub_sasl_version) || defined (__stub___sasl_version) +choke me +#else +f = sasl_version; +#endif + +; return 0; } +EOF +if { (eval echo configure:20213: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then + rm -rf conftest* + eval "ac_cv_func_sasl_version=yes" +else + echo "configure: failed program was:" >&5 + cat conftest.$ac_ext >&5 + rm -rf conftest* + eval "ac_cv_func_sasl_version=no" +fi +rm -f conftest* +fi + +if eval "test \"`echo '$ac_cv_func_'sasl_version`\" = yes"; then + echo "$ac_t""yes" 1>&6 + cat >> confdefs.h <<\EOF +#define HAVE_SASL_VERSION 1 +EOF + +else + echo "$ac_t""no" 1>&6 +fi + + LIBS="$ac_save_LIBS" fi else @@ -20174,13 +20268,13 @@ if test $ol_with_fetch != no ; then ol_LIBS=$LIBS LIBS="-lfetch -lcom_err $LIBS" echo $ac_n "checking fetch(3) library""... $ac_c" 1>&6 -echo "configure:20178: checking fetch(3) library" >&5 +echo "configure:20272: checking fetch(3) library" >&5 if eval "test \"\${ol_cv_lib_fetch+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -20190,7 +20284,7 @@ int main() { struct url *u = fetchParseURL("file:///"); ; return 0; } EOF -if { (eval echo configure:20194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20288: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_lib_fetch=yes else @@ -20228,17 +20322,17 @@ if test $ol_with_readline != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:20232: checking for $ac_hdr" >&5 +echo "configure:20326: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:20242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:20336: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -20269,7 +20363,7 @@ done save_LIBS="$LIBS" LIBS="$TERMCAP_LIBS $LIBS" echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6 -echo "configure:20273: checking for readline in -lreadline" >&5 +echo "configure:20367: checking for readline in -lreadline" >&5 ac_lib_var=`echo readline'_'readline | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20277,7 +20371,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lreadline $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20330,12 +20424,12 @@ fi if test $ol_enable_crypt != no ; then echo $ac_n "checking for crypt""... $ac_c" 1>&6 -echo "configure:20334: checking for crypt" >&5 +echo "configure:20428: checking for crypt" >&5 if eval "test \"\${ac_cv_func_crypt+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20457: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_crypt=yes" else @@ -20378,7 +20472,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:20382: checking for crypt in -lcrypt" >&5 +echo "configure:20476: checking for crypt in -lcrypt" >&5 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20386,7 +20480,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lcrypt $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20495: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20440,12 +20534,12 @@ fi if test $ol_enable_proctitle != no ; then echo $ac_n "checking for setproctitle""... $ac_c" 1>&6 -echo "configure:20444: checking for setproctitle" >&5 +echo "configure:20538: checking for setproctitle" >&5 if eval "test \"\${ac_cv_func_setproctitle+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20567: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_setproctitle=yes" else @@ -20488,7 +20582,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for setproctitle in -lutil""... $ac_c" 1>&6 -echo "configure:20492: checking for setproctitle in -lutil" >&5 +echo "configure:20586: checking for setproctitle in -lutil" >&5 ac_lib_var=`echo util'_'setproctitle | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20496,7 +20590,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lutil $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20605: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20547,17 +20641,17 @@ if test $ol_enable_slp != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:20551: checking for $ac_hdr" >&5 +echo "configure:20645: checking for $ac_hdr" >&5 if eval "test \"\${ac_cv_header_$ac_safe+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:20561: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:20655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -20586,7 +20680,7 @@ done if test $ac_cv_header_slp_h = yes ; then echo $ac_n "checking for SLPOpen in -lslp""... $ac_c" 1>&6 -echo "configure:20590: checking for SLPOpen in -lslp" >&5 +echo "configure:20684: checking for SLPOpen in -lslp" >&5 ac_lib_var=`echo slp'_'SLPOpen | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -20594,7 +20688,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lslp $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:20703: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -20640,12 +20734,12 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:20644: checking for ANSI C header files" >&5 +echo "configure:20738: checking for ANSI C header files" >&5 if eval "test \"\${ac_cv_header_stdc+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -20653,7 +20747,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:20657: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:20751: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -20670,7 +20764,7 @@ rm -f conftest* if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -20688,7 +20782,7 @@ fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat > conftest.$ac_ext < EOF @@ -20709,7 +20803,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #if ((' ' & 0x0FF) == 0x020) @@ -20727,7 +20821,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:20731: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:20825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -20751,12 +20845,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:20755: checking for mode_t" >&5 +echo "configure:20849: checking for mode_t" >&5 if eval "test \"\${ac_cv_type_mode_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -20787,12 +20881,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:20791: checking for off_t" >&5 +echo "configure:20885: checking for off_t" >&5 if eval "test \"\${ac_cv_type_off_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -20823,12 +20917,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:20827: checking for pid_t" >&5 +echo "configure:20921: checking for pid_t" >&5 if eval "test \"\${ac_cv_type_pid_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -20859,19 +20953,19 @@ EOF fi echo $ac_n "checking for ptrdiff_t""... $ac_c" 1>&6 -echo "configure:20863: checking for ptrdiff_t" >&5 +echo "configure:20957: checking for ptrdiff_t" >&5 if eval "test \"\${am_cv_type_ptrdiff_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { ptrdiff_t p ; return 0; } EOF -if { (eval echo configure:20875: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:20969: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_type_ptrdiff_t=yes else @@ -20892,12 +20986,12 @@ EOF fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:20896: checking return type of signal handlers" >&5 +echo "configure:20990: checking return type of signal handlers" >&5 if eval "test \"\${ac_cv_type_signal+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -20914,7 +21008,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:20918: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21012: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -20933,12 +21027,12 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:20937: checking for size_t" >&5 +echo "configure:21031: checking for size_t" >&5 if eval "test \"\${ac_cv_type_size_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -20970,12 +21064,12 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:20974: checking for ssize_t" >&5 +echo "configure:21068: checking for ssize_t" >&5 if eval "test \"\${ac_cv_type_ssize_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -21006,12 +21100,12 @@ EOF fi echo $ac_n "checking for caddr_t""... $ac_c" 1>&6 -echo "configure:21010: checking for caddr_t" >&5 +echo "configure:21104: checking for caddr_t" >&5 if eval "test \"\${ac_cv_type_caddr_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #if STDC_HEADERS @@ -21043,12 +21137,12 @@ fi echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:21047: checking for socklen_t" >&5 +echo "configure:21141: checking for socklen_t" >&5 if eval "test \"\${ol_cv_type_socklen_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21160: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_type_socklen_t=yes else @@ -21083,12 +21177,12 @@ EOF fi echo $ac_n "checking for member st_blksize in aggregate type struct stat""... $ac_c" 1>&6 -echo "configure:21087: checking for member st_blksize in aggregate type struct stat" >&5 +echo "configure:21181: checking for member st_blksize in aggregate type struct stat" >&5 if eval "test \"\${ac_cv_c_struct_member_st_blksize+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -21096,7 +21190,7 @@ int main() { struct stat foo; foo.st_blksize; ; return 0; } EOF -if { (eval echo configure:21100: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21194: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_struct_member_st_blksize=yes else @@ -21118,12 +21212,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:21122: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:21216: checking whether time.h and sys/time.h may both be included" >&5 if eval "test \"\${ac_cv_header_time+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -21132,7 +21226,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:21136: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21230: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -21153,12 +21247,12 @@ EOF fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:21157: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:21251: checking whether struct tm is in sys/time.h or time.h" >&5 if eval "test \"\${ac_cv_struct_tm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < #include @@ -21166,7 +21260,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:21170: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21264: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -21187,12 +21281,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:21191: checking for uid_t in sys/types.h" >&5 +echo "configure:21285: checking for uid_t in sys/types.h" >&5 if eval "test \"\${ac_cv_type_uid_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF @@ -21221,19 +21315,19 @@ EOF fi echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6 -echo "configure:21225: checking for sig_atomic_t" >&5 +echo "configure:21319: checking for sig_atomic_t" >&5 if eval "test \"\${ol_cv_type_sig_atomic_t+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { sig_atomic_t atomic; ; return 0; } EOF -if { (eval echo configure:21237: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21331: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_type_sig_atomic_t=yes else @@ -21257,13 +21351,13 @@ EOF # test for pw_gecos in struct passwd echo $ac_n "checking struct passwd for pw_gecos""... $ac_c" 1>&6 -echo "configure:21261: checking struct passwd for pw_gecos" >&5 +echo "configure:21355: checking struct passwd for pw_gecos" >&5 if eval "test \"\${ol_cv_struct_passwd_pw_gecos+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -21273,7 +21367,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:21277: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21371: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_struct_passwd_pw_gecos=yes else @@ -21295,13 +21389,13 @@ fi # test for pw_passwd in struct passwd echo $ac_n "checking struct passwd for pw_passwd""... $ac_c" 1>&6 -echo "configure:21299: checking struct passwd for pw_passwd" >&5 +echo "configure:21393: checking struct passwd for pw_passwd" >&5 if eval "test \"\${ol_cv_struct_passwd_pw_passwd+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -21311,7 +21405,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:21315: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21409: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_struct_passwd_pw_passwd=yes else @@ -21333,7 +21427,7 @@ fi echo $ac_n "checking if toupper() requires islower()""... $ac_c" 1>&6 -echo "configure:21337: checking if toupper() requires islower()" >&5 +echo "configure:21431: checking if toupper() requires islower()" >&5 if eval "test \"\${ol_cv_c_upper_lower+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -21342,7 +21436,7 @@ else ol_cv_c_upper_lower=safe else cat > conftest.$ac_ext < @@ -21354,7 +21448,7 @@ main() exit(1); } EOF -if { (eval echo configure:21358: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:21452: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ol_cv_c_upper_lower=no else @@ -21377,12 +21471,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:21381: checking for working const" >&5 +echo "configure:21475: checking for working const" >&5 if eval "test \"\${ac_cv_c_const+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21529: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -21452,12 +21546,12 @@ EOF fi echo $ac_n "checking if compiler understands volatile""... $ac_c" 1>&6 -echo "configure:21456: checking if compiler understands volatile" >&5 +echo "configure:21550: checking if compiler understands volatile" >&5 if eval "test \"\${ol_cv_c_volatile+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_c_volatile=yes else @@ -21496,14 +21590,14 @@ EOF else echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:21500: checking whether byte ordering is bigendian" >&5 +echo "configure:21594: checking whether byte ordering is bigendian" >&5 if eval "test \"\${ac_cv_c_bigendian+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else ac_cv_c_bigendian=unknown # See if sys/param.h defines the BYTE_ORDER macro. cat > conftest.$ac_ext < #include @@ -21514,11 +21608,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:21518: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21612: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* # It does; now see whether it defined to BIG_ENDIAN or not. cat > conftest.$ac_ext < #include @@ -21529,7 +21623,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:21533: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21627: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -21549,7 +21643,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:21660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_c_bigendian=no else @@ -21588,13 +21682,13 @@ fi fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:21592: checking size of short" >&5 +echo "configure:21686: checking size of short" >&5 if eval "test \"\${ac_cv_sizeof_short+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < @@ -21604,7 +21698,7 @@ int main() { switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:21608: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else @@ -21627,13 +21721,13 @@ EOF echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:21631: checking size of int" >&5 +echo "configure:21725: checking size of int" >&5 if eval "test \"\${ac_cv_sizeof_int+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < @@ -21643,7 +21737,7 @@ int main() { switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:21647: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21741: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else @@ -21666,13 +21760,13 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:21670: checking size of long" >&5 +echo "configure:21764: checking size of long" >&5 if eval "test \"\${ac_cv_sizeof_long+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else for ac_size in 4 8 1 2 16 ; do # List sizes in rough order of prevalence. cat > conftest.$ac_ext < @@ -21682,7 +21776,7 @@ int main() { switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:21686: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:21780: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else @@ -21733,7 +21827,7 @@ EOF echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:21737: checking for 8-bit clean memcmp" >&5 +echo "configure:21831: checking for 8-bit clean memcmp" >&5 if eval "test \"\${ac_cv_func_memcmp_clean+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -21741,7 +21835,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:21849: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -21769,12 +21863,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for strftime""... $ac_c" 1>&6 -echo "configure:21773: checking for strftime" >&5 +echo "configure:21867: checking for strftime" >&5 if eval "test \"\${ac_cv_func_strftime+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:21896: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_strftime=yes" else @@ -21820,7 +21914,7 @@ else echo "$ac_t""no" 1>&6 # strftime is in -lintl on SCO UNIX. echo $ac_n "checking for strftime in -lintl""... $ac_c" 1>&6 -echo "configure:21824: checking for strftime in -lintl" >&5 +echo "configure:21918: checking for strftime in -lintl" >&5 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -21828,7 +21922,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:21937: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -21867,12 +21961,12 @@ fi echo $ac_n "checking for inet_aton()""... $ac_c" 1>&6 -echo "configure:21871: checking for inet_aton()" >&5 +echo "configure:21965: checking for inet_aton()" >&5 if eval "test \"\${ol_cv_func_inet_aton+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:21992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_func_inet_aton=yes else @@ -21916,12 +22010,12 @@ EOF echo $ac_n "checking for _spawnlp""... $ac_c" 1>&6 -echo "configure:21920: checking for _spawnlp" >&5 +echo "configure:22014: checking for _spawnlp" >&5 if eval "test \"\${ac_cv_func__spawnlp+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__spawnlp=yes" else @@ -21969,12 +22063,12 @@ fi echo $ac_n "checking for _snprintf""... $ac_c" 1>&6 -echo "configure:21973: checking for _snprintf" >&5 +echo "configure:22067: checking for _snprintf" >&5 if eval "test \"\${ac_cv_func__snprintf+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__snprintf=yes" else @@ -22024,12 +22118,12 @@ fi echo $ac_n "checking for _vsnprintf""... $ac_c" 1>&6 -echo "configure:22028: checking for _vsnprintf" >&5 +echo "configure:22122: checking for _vsnprintf" >&5 if eval "test \"\${ac_cv_func__vsnprintf+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__vsnprintf=yes" else @@ -22079,12 +22173,12 @@ fi echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:22083: checking for vprintf" >&5 +echo "configure:22177: checking for vprintf" >&5 if eval "test \"\${ac_cv_func_vprintf+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22206: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -22132,12 +22226,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:22136: checking for _doprnt" >&5 +echo "configure:22230: checking for _doprnt" >&5 if eval "test \"\${ac_cv_func__doprnt+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22259: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -22190,12 +22284,12 @@ if test $ac_cv_func_vprintf = yes ; then for ac_func in vsnprintf vsprintf do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:22194: checking for $ac_func" >&5 +echo "configure:22288: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22317: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -22253,6 +22347,7 @@ for ac_func in \ endpwent \ fcntl \ flock \ + fstat \ getdtablesize \ getgrgid \ gethostname \ @@ -22301,12 +22396,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:22305: checking for $ac_func" >&5 +echo "configure:22400: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -22358,12 +22453,12 @@ done for ac_func in getopt do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:22362: checking for $ac_func" >&5 +echo "configure:22457: checking for $ac_func" >&5 if eval "test \"\${ac_cv_func_$ac_func+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22486: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -22420,13 +22515,13 @@ fi # Check Configuration echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6 -echo "configure:22424: checking declaration of sys_errlist" >&5 +echo "configure:22519: checking declaration of sys_errlist" >&5 if eval "test \"\${ol_cv_dcl_sys_errlist+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < @@ -22439,7 +22534,7 @@ int main() { char *c = (char *) *sys_errlist ; return 0; } EOF -if { (eval echo configure:22443: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:22538: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_dcl_sys_errlist=yes ol_cv_have_sys_errlist=yes @@ -22462,20 +22557,20 @@ EOF echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6 -echo "configure:22466: checking existence of sys_errlist" >&5 +echo "configure:22561: checking existence of sys_errlist" >&5 if eval "test \"\${ol_cv_have_sys_errlist+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { char *c = (char *) *sys_errlist ; return 0; } EOF -if { (eval echo configure:22479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:22574: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_have_sys_errlist=yes else @@ -22671,7 +22766,6 @@ EOF BUILD_SLAPD=yes BUILD_LDBM=yes - LDBM_LIB="-lldbm" if test "$ol_with_ldbm_module" != static ; then cat >> confdefs.h <<\EOF #define SLAPD_LDBM_DYNAMIC 1 @@ -22915,8 +23009,6 @@ fi - - @@ -23135,7 +23227,6 @@ s%@BUILD_PERL_DYNAMIC@%$BUILD_PERL_DYNAMIC%g s%@BUILD_SHELL_DYNAMIC@%$BUILD_SHELL_DYNAMIC%g s%@BUILD_SQL_DYNAMIC@%$BUILD_SQL_DYNAMIC%g s%@BUILD_SLURPD@%$BUILD_SLURPD%g -s%@LDBM_LIB@%$LDBM_LIB%g s%@LDAP_LIBS@%$LDAP_LIBS%g s%@LDIF_LIBS@%$LDIF_LIBS%g s%@SLAPD_LIBS@%$SLAPD_LIBS%g diff --git a/configure.in b/configure.in index e2f773de72..e58d85c3d3 100644 --- a/configure.in +++ b/configure.in @@ -491,7 +491,6 @@ dnl ---------------------------------------------------------------- dnl Initialize vars LDAP_LIBS= LDIF_LIBS= -LDBM_LIB= LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= @@ -1004,10 +1003,25 @@ elif test $ol_enable_ipv6 != no ; then # endif ], [ol_cv_inet6_addrstrlen=yes], [ol_cv_inet6_addrstrlen=no])]) - if test $ol_cv_inet6_addrstrlen = yes ; then + + AC_CACHE_CHECK([struct sockaddr_storage],ol_cv_struct_sockaddr_storage,[ + AC_TRY_COMPILE([ +#include +#include +],[ + struct sockaddr_storage ss; +], [ol_cv_struct_sockaddr_storage=yes], + [ol_cv_struct_sockaddr_storage=no])]) + + if test $ol_cv_inet6_addrstrlen = yes \ + -a $ol_cv_struct_sockaddr_storage = yes ; then ol_link_ipv6=yes - elif test $ol_enable_ipv6 = yes ; then + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_inet6_addrstrlen = no ; then AC_MSG_ERROR([IPv6 support requires INET6_ADDRSTRLEN]) + elif test $ol_enable_ipv6 = yes \ + -a $ol_cv_struct_sockaddr_storage = no ; then + AC_MSG_ERROR([IPv6 support requires struct sockaddr_storage]) fi fi @@ -2149,6 +2163,12 @@ if test $ol_with_cyrus_sasl != no ; then if test $ol_enable_spasswd != no ; then ol_link_spasswd=yes fi + + ac_save_LIBS="$LIBS" + LIBS="$LIBS $ol_link_sasl" + AC_CHECK_FUNC(sasl_version, [AC_DEFINE(HAVE_SASL_VERSION,1, + [define if your SASL library has sasl_version()])]) + LIBS="$ac_save_LIBS" fi else @@ -2365,6 +2385,7 @@ AC_CHECK_FUNCS( \ endpwent \ fcntl \ flock \ + fstat \ getdtablesize \ getgrgid \ gethostname \ @@ -2534,7 +2555,6 @@ if test "$ol_link_ldbm" != no -a $ol_enable_ldbm != no; then AC_DEFINE(SLAPD_LDBM,1,[define to support LDBM backend]) BUILD_SLAPD=yes BUILD_LDBM=yes - LDBM_LIB="-lldbm" if test "$ol_with_ldbm_module" != static ; then AC_DEFINE(SLAPD_LDBM_DYNAMIC,1, [define to support dynamic LDBM backend]) @@ -2712,8 +2732,6 @@ AC_SUBST(BUILD_SLAPD) AC_SUBST(BUILD_SQL_DYNAMIC) AC_SUBST(BUILD_SLURPD) -AC_SUBST(LDBM_LIB) - AC_SUBST(LDAP_LIBS) AC_SUBST(LDIF_LIBS) AC_SUBST(SLAPD_LIBS) diff --git a/include/ldap_pvt_thread.h b/include/ldap_pvt_thread.h new file mode 100644 index 0000000000..4989cb4b73 --- /dev/null +++ b/include/ldap_pvt_thread.h @@ -0,0 +1,190 @@ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA + * 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 at + * http://www.OpenLDAP.org/license.html or in file LICENSE in the + * top-level directory of the distribution. + */ +/* ldap_pvt_thread.h - ldap threads header file NG */ + +#ifndef _LDAP_PVT_THREAD_H +#define _LDAP_PVT_THREAD_H + +#include "ldap_cdefs.h" +#include "ldap_int_thread.h" + +LDAP_BEGIN_DECL + +typedef ldap_int_thread_t ldap_pvt_thread_t; +typedef ldap_int_thread_mutex_t ldap_pvt_thread_mutex_t; +typedef ldap_int_thread_cond_t ldap_pvt_thread_cond_t; + +LDAP_F( int ) +ldap_pvt_thread_initialize LDAP_P(( void )); + +LDAP_F( int ) +ldap_pvt_thread_destroy LDAP_P(( void )); + +LDAP_F( unsigned int ) +ldap_pvt_thread_sleep LDAP_P(( unsigned int s )); + +LDAP_F( int ) +ldap_pvt_thread_get_concurrency LDAP_P(( void )); + +LDAP_F( int ) +ldap_pvt_thread_set_concurrency LDAP_P(( int )); + +#define LDAP_PVT_THREAD_CREATE_JOINABLE 0 +#define LDAP_PVT_THREAD_CREATE_DETACHED 1 + +#ifndef LDAP_PVT_THREAD_STACK_SIZE + /* LARGE stack */ +#define LDAP_PVT_THREAD_STACK_SIZE (16*1024*1024) +#endif + +LDAP_F( int ) +ldap_pvt_thread_create LDAP_P(( + ldap_pvt_thread_t * thread, + int detach, + void *(*start_routine)( void * ), + void *arg)); + +LDAP_F( void ) +ldap_pvt_thread_exit LDAP_P(( void *retval )); + +LDAP_F( int ) +ldap_pvt_thread_join LDAP_P(( ldap_pvt_thread_t thread, void **status )); + +LDAP_F( int ) +ldap_pvt_thread_kill LDAP_P(( ldap_pvt_thread_t thread, int signo )); + +LDAP_F( int ) +ldap_pvt_thread_yield LDAP_P(( void )); + +LDAP_F( int ) +ldap_pvt_thread_cond_init LDAP_P(( ldap_pvt_thread_cond_t *cond )); + +LDAP_F( int ) +ldap_pvt_thread_cond_destroy LDAP_P(( ldap_pvt_thread_cond_t *cond )); + +LDAP_F( int ) +ldap_pvt_thread_cond_signal LDAP_P(( ldap_pvt_thread_cond_t *cond )); + +LDAP_F( int ) +ldap_pvt_thread_cond_broadcast LDAP_P(( ldap_pvt_thread_cond_t *cond )); + +LDAP_F( int ) +ldap_pvt_thread_cond_wait LDAP_P(( + ldap_pvt_thread_cond_t *cond, + ldap_pvt_thread_mutex_t *mutex )); + +LDAP_F( int ) +ldap_pvt_thread_mutex_init LDAP_P(( ldap_pvt_thread_mutex_t *mutex )); + +LDAP_F( int ) +ldap_pvt_thread_mutex_destroy LDAP_P(( ldap_pvt_thread_mutex_t *mutex )); + +LDAP_F( int ) +ldap_pvt_thread_mutex_lock LDAP_P(( ldap_pvt_thread_mutex_t *mutex )); + +LDAP_F( int ) +ldap_pvt_thread_mutex_trylock LDAP_P(( ldap_pvt_thread_mutex_t *mutex )); + +LDAP_F( int ) +ldap_pvt_thread_mutex_unlock LDAP_P(( ldap_pvt_thread_mutex_t *mutex )); + +#ifndef LDAP_THREAD_HAVE_RDWR +typedef struct ldap_int_thread_rdwr_s * ldap_pvt_thread_rdwr_t; +#endif + +LDAP_F( int ) +ldap_pvt_thread_rdwr_init LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_destroy LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_rlock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_rtrylock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_runlock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_wlock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_wtrylock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_wunlock LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +#ifdef LDAP_DEBUG +LDAP_F( int ) +ldap_pvt_thread_rdwr_readers LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_writers LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); + +LDAP_F( int ) +ldap_pvt_thread_rdwr_active LDAP_P((ldap_pvt_thread_rdwr_t *rdwrp)); +#endif /* LDAP_DEBUG */ + +#define LDAP_PVT_THREAD_EINVAL EINVAL +#define LDAP_PVT_THREAD_EBUSY EINVAL + +typedef ldap_int_thread_pool_t ldap_pvt_thread_pool_t; + +typedef void * (ldap_pvt_thread_start_t) LDAP_P((void *ctx, void *arg)); +typedef void (ldap_pvt_thread_pool_keyfree_t) LDAP_P((void *key, void *data)); + +LDAP_F( int ) +ldap_pvt_thread_pool_init LDAP_P(( + ldap_pvt_thread_pool_t *pool_out, + int max_threads, + int max_pending )); + +LDAP_F( int ) +ldap_pvt_thread_pool_submit LDAP_P(( + ldap_pvt_thread_pool_t *pool, + ldap_pvt_thread_start_t *start, + void *arg )); + +LDAP_F( int ) +ldap_pvt_thread_pool_maxthreads LDAP_P(( + ldap_pvt_thread_pool_t *pool, + int max_threads )); + +LDAP_F( int ) +ldap_pvt_thread_pool_backload LDAP_P(( + ldap_pvt_thread_pool_t *pool )); + +LDAP_F( int ) +ldap_pvt_thread_pool_destroy LDAP_P(( + ldap_pvt_thread_pool_t *pool, + int run_pending )); + +LDAP_F( int ) +ldap_pvt_thread_pool_getkey LDAP_P(( + void *ctx, + void *key, + void **data, + ldap_pvt_thread_pool_keyfree_t **kfree )); + +LDAP_F( int ) +ldap_pvt_thread_pool_setkey LDAP_P(( + void *ctx, + void *key, + void *data, + ldap_pvt_thread_pool_keyfree_t *kfree )); + + +LDAP_END_DECL + +#endif /* _LDAP_THREAD_H */ diff --git a/include/portable.h.in b/include/portable.h.in index f3a5f4164a..d60da2b6b5 100644 --- a/include/portable.h.in +++ b/include/portable.h.in @@ -131,6 +131,9 @@ /* Define if you have the flock function. */ #undef HAVE_FLOCK +/* Define if you have the fstat function. */ +#undef HAVE_FSTAT + /* Define if you have the gai_strerror function. */ #undef HAVE_GAI_STRERROR @@ -782,6 +785,9 @@ /* define if you have Cyrus SASL */ #undef HAVE_CYRUS_SASL +/* define if your SASL library has sasl_version() */ +#undef HAVE_SASL_VERSION + /* set to urandom device */ #undef URANDOM_DEVICE diff --git a/include/portable.nt b/include/portable.nt index 8715d81a97..ae2c2ae107 100644 --- a/include/portable.nt +++ b/include/portable.nt @@ -150,6 +150,9 @@ /* Define if you have the flock function. */ /* #undef HAVE_FLOCK */ +/* Define if you have the fstat function. */ +/* #undef HAVE_FSTAT */ + /* Define if you have the gai_strerror function. */ /* #undef HAVE_GAI_STRERROR */ diff --git a/libraries/libldap_r/thr_stub.c b/libraries/libldap_r/thr_stub.c new file mode 100644 index 0000000000..f884558ec5 --- /dev/null +++ b/libraries/libldap_r/thr_stub.c @@ -0,0 +1,194 @@ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2002 The OpenLDAP Foundation, Redwood City, California, USA + * All rights reserved. + * + * Redistribution and use in source and binary forms are permitted only + * as authorized by the OpenLDAP Public License. A copy of this + * license is available at http://www.OpenLDAP.org/license.html or + * in file LICENSE in the top-level directory of the distribution. + */ + +/* thr_stub.c - stubs for the threads */ + +#include "portable.h" + +#if defined( NO_THREADS ) + +#include "ldap_pvt_thread.h" + +/*********************************************************************** + * * + * no threads package defined for this system - fake ok returns from * + * all threads routines (making it single-threaded). * + * * + ***********************************************************************/ + +int +ldap_int_thread_initialize( void ) +{ + return 0; +} + +int +ldap_int_thread_destroy( void ) +{ + return 0; +} + +static void* ldap_int_status = NULL; + +int +ldap_pvt_thread_create( ldap_pvt_thread_t * thread, + int detach, + void *(*start_routine)(void *), + void *arg) +{ + if( ! detach ) ldap_int_status = NULL; + start_routine( arg ); + return 0; +} + +void +ldap_pvt_thread_exit( void *retval ) +{ + if( retval != NULL ) { + ldap_int_status = retval; + } + return; +} + +int +ldap_pvt_thread_join( ldap_pvt_thread_t thread, void **status ) +{ + if(status != NULL) *status = ldap_int_status; + return 0; +} + +int +ldap_pvt_thread_kill( ldap_pvt_thread_t thread, int signo ) +{ + return 0; +} + +int +ldap_pvt_thread_yield( void ) +{ + return 0; +} + +int +ldap_pvt_thread_cond_init( ldap_pvt_thread_cond_t *cond ) +{ + return 0; +} + +int +ldap_pvt_thread_cond_destroy( ldap_pvt_thread_cond_t *cond ) +{ + return 0; +} + +int +ldap_pvt_thread_cond_signal( ldap_pvt_thread_cond_t *cond ) +{ + return 0; +} + +int +ldap_pvt_thread_cond_broadcast( ldap_pvt_thread_cond_t *cond ) +{ + return 0; +} + +int +ldap_pvt_thread_cond_wait( ldap_pvt_thread_cond_t *cond, + ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +int +ldap_pvt_thread_mutex_init( ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +int +ldap_pvt_thread_mutex_destroy( ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +int +ldap_pvt_thread_mutex_lock( ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +int +ldap_pvt_thread_mutex_trylock( ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +int +ldap_pvt_thread_mutex_unlock( ldap_pvt_thread_mutex_t *mutex ) +{ + return 0; +} + +/* + * NO_THREADS requires a separate tpool implementation since + * generic ldap_pvt_thread_pool_wrapper loops forever. + */ +int +ldap_pvt_thread_pool_init ( + ldap_pvt_thread_pool_t *pool_out, + int max_concurrency, int max_pending ) +{ + *pool_out = (ldap_pvt_thread_pool_t) 0; + return(0); +} + +int +ldap_pvt_thread_pool_submit ( + ldap_pvt_thread_pool_t *pool, + ldap_pvt_thread_start_t *start_routine, void *arg ) +{ + (start_routine)(NULL, arg); + return(0); +} + +int +ldap_pvt_thread_pool_maxthreads ( ldap_pvt_thread_pool_t *tpool, int max_threads ) +{ + return(0); +} + +int +ldap_pvt_thread_pool_backload ( + ldap_pvt_thread_pool_t *pool ) +{ + return(0); +} + +int +ldap_pvt_thread_pool_destroy ( + ldap_pvt_thread_pool_t *pool, int run_pending ) +{ + return(0); +} + +int ldap_pvt_thread_pool_getkey ( + void *ctx, void *key, void **data, ldap_pvt_thread_pool_keyfree_t **kfree ) +{ + return(0); +} + +int ldap_pvt_thread_pool_setkey ( + void *ctx, void *key, void *data, ldap_pvt_thread_pool_keyfree_t *kfree ) +{ + return(0); +} +#endif /* NO_THREADS */ diff --git a/libraries/libldap_r/tpool.c b/libraries/libldap_r/tpool.c index d48a8e9370..4665f35a51 100644 --- a/libraries/libldap_r/tpool.c +++ b/libraries/libldap_r/tpool.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "ldap-int.h" #include "ldap_pvt_thread.h" @@ -30,13 +31,25 @@ enum ldap_int_thread_pool_state { LDAP_INT_THREAD_POOL_STOPPING }; +typedef struct ldap_int_thread_key_s { + void *ltk_key; + void *ltk_data; + ldap_pvt_thread_pool_keyfree_t *ltk_free; +} ldap_int_thread_key_t; + +/* Max number of thread-specific keys we store per thread. + * We don't expect to use many... + */ +#define MAXKEYS 32 + typedef struct ldap_int_thread_ctx_s { union { LDAP_STAILQ_ENTRY(ldap_int_thread_ctx_s) q; LDAP_SLIST_ENTRY(ldap_int_thread_ctx_s) l; } ltc_next; - void *(*ltc_start_routine)( void *); + ldap_pvt_thread_start_t *ltc_start_routine; void *ltc_arg; + ldap_int_thread_key_t ltc_key[MAXKEYS]; } ldap_int_thread_ctx_t; struct ldap_int_thread_pool_s { @@ -151,7 +164,7 @@ ldap_pvt_thread_pool_init ( int ldap_pvt_thread_pool_submit ( ldap_pvt_thread_pool_t *tpool, - void *(*start_routine)( void * ), void *arg ) + ldap_pvt_thread_start_t *start_routine, void *arg ) { struct ldap_int_thread_pool_s *pool; ldap_int_thread_ctx_t *ctx; @@ -178,12 +191,16 @@ ldap_pvt_thread_pool_submit ( if (ctx) { LDAP_SLIST_REMOVE_HEAD(&pool->ltp_free_list, ltc_next.l); } else { + int i; ctx = (ldap_int_thread_ctx_t *) LDAP_MALLOC( sizeof(ldap_int_thread_ctx_t)); if (ctx == NULL) { ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex); return(-1); } + for ( i=0; iltc_key[i].ltk_key = NULL; + } } ctx->ltc_start_routine = start_routine; @@ -286,6 +303,17 @@ ldap_pvt_thread_pool_backload ( ldap_pvt_thread_pool_t *tpool ) return(count); } +static void ldap_int_thread_pool_keyfree( ldap_int_thread_ctx_t *ctx ) +{ + int i; + for ( i=0; iltc_key[i].ltk_key; i++ ) { + if (ctx->ltc_key[i].ltk_free) + ctx->ltc_key[i].ltk_free( + ctx->ltc_key[i].ltk_key, + ctx->ltc_key[i].ltk_data ); + } +} + int ldap_pvt_thread_pool_destroy ( ldap_pvt_thread_pool_t *tpool, int run_pending ) { @@ -334,12 +362,14 @@ ldap_pvt_thread_pool_destroy ( ldap_pvt_thread_pool_t *tpool, int run_pending ) while ((ctx = LDAP_STAILQ_FIRST(&pool->ltp_pending_list)) != NULL) { LDAP_STAILQ_REMOVE_HEAD(&pool->ltp_pending_list, ltc_next.q); + ldap_int_thread_pool_keyfree( ctx ); LDAP_FREE(ctx); } while ((ctx = LDAP_SLIST_FIRST(&pool->ltp_free_list)) != NULL) { LDAP_SLIST_REMOVE_HEAD(&pool->ltp_free_list, ltc_next.l); + ldap_int_thread_pool_keyfree( ctx ); LDAP_FREE(ctx); } @@ -398,7 +428,7 @@ ldap_int_thread_pool_wrapper ( pool->ltp_active_count++; ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex); - (ctx->ltc_start_routine)(ctx->ltc_arg); + ctx->ltc_start_routine(ctx, ctx->ltc_arg); ldap_pvt_thread_mutex_lock(&pool->ltp_mutex); LDAP_SLIST_INSERT_HEAD(&pool->ltp_free_list, ctx, ltc_next.l); @@ -417,7 +447,51 @@ ldap_int_thread_pool_wrapper ( pool->ltp_open_count--; ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex); + ldap_pvt_thread_exit(NULL); return(NULL); } + +int ldap_pvt_thread_pool_getkey( + void *xctx, + void *key, + void **data, + ldap_pvt_thread_pool_keyfree_t **kfree ) +{ + ldap_int_thread_ctx_t *ctx = xctx; + int i; + + if ( !ctx || !data ) return EINVAL; + + for ( i=0; iltc_key[i].ltk_key; i++ ) { + if ( ctx->ltc_key[i].ltk_key == key ) { + *data = ctx->ltc_key[i].ltk_data; + if ( kfree ) *kfree = ctx->ltc_key[i].ltk_free; + return 0; + } + } + return ENOENT; +} + +int ldap_pvt_thread_pool_setkey( + void *xctx, + void *key, + void *data, + ldap_pvt_thread_pool_keyfree_t *kfree ) +{ + ldap_int_thread_ctx_t *ctx = xctx; + int i; + + if ( !ctx || !key ) return EINVAL; + + for ( i=0; iltc_key[i].ltk_key || ctx->ltc_key[i].ltk_key == key ) { + ctx->ltc_key[i].ltk_key = key; + ctx->ltc_key[i].ltk_data = data; + ctx->ltc_key[i].ltk_free = kfree; + return 0; + } + } + return ENOMEM; +} #endif /* LDAP_HAVE_THREAD_POOL */ diff --git a/servers/slapd/Makefile.in b/servers/slapd/Makefile.in index 4171610221..0cea35b4dc 100644 --- a/servers/slapd/Makefile.in +++ b/servers/slapd/Makefile.in @@ -9,7 +9,7 @@ XSRCS=version.c NT_SRCS = nt_svc.c NT_OBJS = nt_svc.o ../../libraries/liblutil/slapdmsg.res -SRCS = main.c daemon.c connection.c search.c filter.c add.c charray.c \ +SRCS = main.c daemon.c connection.c search.c filter.c add.c \ attr.c entry.c config.c backend.c result.c operation.c \ dn.c compare.c modify.c delete.c modrdn.c ch_malloc.c \ value.c ava.c bind.c unbind.c abandon.c filterentry.c \ @@ -22,7 +22,7 @@ SRCS = main.c daemon.c connection.c search.c filter.c add.c charray.c \ limits.c backglue.c operational.c matchedValues.c \ $(@PLAT@_SRCS) -OBJS = main.o daemon.o connection.o search.o filter.o add.o charray.o \ +OBJS = main.o daemon.o connection.o search.o filter.o add.o \ attr.o entry.o config.o backend.o result.o operation.o \ dn.o compare.o modify.o delete.o modrdn.o ch_malloc.o \ value.o ava.o bind.o unbind.o abandon.o filterentry.o \ diff --git a/servers/slapd/acl.c b/servers/slapd/acl.c index 3b1900fd27..fdb4cd1b63 100644 --- a/servers/slapd/acl.c +++ b/servers/slapd/acl.c @@ -1389,7 +1389,7 @@ aci_set_gather (void *cookie, struct berval *name, struct berval *attr) const char *text; AttributeDescription *desc = NULL; if (slap_bv2ad(attr, &desc, &text) == LDAP_SUCCESS) { - backend_attribute(cp->be, NULL, NULL, + backend_attribute(cp->be, NULL, cp->op, cp->e, &ndn, desc, &bvals); } free(ndn.bv_val); @@ -1438,7 +1438,7 @@ aci_match_set ( if ( dnNormalize2(NULL, &subjdn, &ndn) == LDAP_SUCCESS && slap_bv2ad(&setat, &desc, &text) == LDAP_SUCCESS ) { - backend_attribute(be, NULL, NULL, e, + backend_attribute(be, NULL, op, e, &ndn, desc, &bvals); if ( bvals != NULL ) { if ( bvals[0].bv_val != NULL ) { diff --git a/servers/slapd/attr.c b/servers/slapd/attr.c index 39c2594189..ab9c56511e 100644 --- a/servers/slapd/attr.c +++ b/servers/slapd/attr.c @@ -133,6 +133,31 @@ attr_merge( return( value_add( &(*a)->a_vals, vals ) ); } +int +attr_merge_one( + Entry *e, + AttributeDescription *desc, + struct berval *val ) +{ + Attribute **a; + + for ( a = &e->e_attrs; *a != NULL; a = &(*a)->a_next ) { + if ( ad_cmp( (*a)->a_desc, desc ) == 0 ) { + break; + } + } + + if ( *a == NULL ) { + *a = (Attribute *) ch_malloc( sizeof(Attribute) ); + (*a)->a_desc = desc; + (*a)->a_vals = NULL; + (*a)->a_next = NULL; + (*a)->a_flags = 0; + } + + return( value_add_one( &(*a)->a_vals, val ) ); +} + /* * attrs_find - find attribute(s) by AttributeDescription * returns next attribute which is subtype of provided description. diff --git a/servers/slapd/back-bdb/attr.c b/servers/slapd/back-bdb/attr.c index b60f82c8de..07bfc92cab 100644 --- a/servers/slapd/back-bdb/attr.c +++ b/servers/slapd/back-bdb/attr.c @@ -67,7 +67,7 @@ bdb_attr_index_config( char **attrs; char **indexes = NULL; - attrs = str2charray( argv[0], "," ); + attrs = ldap_str2charray( argv[0], "," ); if( attrs == NULL ) { fprintf( stderr, "%s: line %d: " @@ -77,7 +77,7 @@ bdb_attr_index_config( } if ( argc > 1 ) { - indexes = str2charray( argv[1], "," ); + indexes = ldap_str2charray( argv[1], "," ); if( indexes == NULL ) { fprintf( stderr, "%s: line %d: " @@ -205,8 +205,8 @@ bdb_attr_index_config( } } - charray_free( attrs ); - if ( indexes != NULL ) charray_free( indexes ); + ldap_charray_free( attrs ); + if ( indexes != NULL ) ldap_charray_free( indexes ); return LDAP_SUCCESS; } diff --git a/servers/slapd/back-bdb/back-bdb.h b/servers/slapd/back-bdb/back-bdb.h index 784bbc89aa..18d2ab9419 100644 --- a/servers/slapd/back-bdb/back-bdb.h +++ b/servers/slapd/back-bdb/back-bdb.h @@ -143,6 +143,9 @@ struct bdb_op_info { int boi_err; }; +#define DB_OPEN(db, file, name, type, flags, mode) \ + (db)->open(db, file, name, type, flags, mode) + #if DB_VERSION_MAJOR < 4 #define LOCK_DETECT(env,f,t,a) lock_detect(env, f, t, a) #define LOCK_GET(env,i,f,o,m,l) lock_get(env, i, f, o, m, l) @@ -153,8 +156,8 @@ struct bdb_op_info { #define TXN_COMMIT(txn,f) txn_commit((txn), (f)) #define TXN_ABORT(txn) txn_abort((txn)) #define TXN_ID(txn) txn_id(txn) -#define LOCK_ID(env, locker) lock_id(env, locker) -#define LOCK_ID_FREE(env, locker) lock_id_free(env, locker) +#define XLOCK_ID(env, locker) lock_id(env, locker) +#define XLOCK_ID_FREE(env, locker) lock_id_free(env, locker) #else #define LOCK_DETECT(env,f,t,a) (env)->lock_detect(env, f, t, a) #define LOCK_GET(env,i,f,o,m,l) (env)->lock_get(env, i, f, o, m, l) @@ -165,8 +168,26 @@ struct bdb_op_info { #define TXN_COMMIT(txn,f) (txn)->commit((txn), (f)) #define TXN_ABORT(txn) (txn)->abort((txn)) #define TXN_ID(txn) (txn)->id(txn) -#define LOCK_ID(env, locker) (env)->lock_id(env, locker) -#define LOCK_ID_FREE(env, locker) (env)->lock_id_free(env, locker) +#define XLOCK_ID(env, locker) (env)->lock_id(env, locker) +#define XLOCK_ID_FREE(env, locker) (env)->lock_id_free(env, locker) + +/* BDB 4.1.17 adds txn arg to db->open */ +#if DB_VERSION_MINOR > 1 || DB_VERSION_PATCH >= 17 +#undef DB_OPEN +#define DB_OPEN(db, file, name, type, flags, mode) \ + (db)->open(db, NULL, file, name, type, (flags)|DB_AUTO_COMMIT, mode) +#endif + +#define BDB_REUSE_LOCKERS + +#ifdef BDB_REUSE_LOCKERS +#define LOCK_ID_FREE(env, locker) +#define LOCK_ID(env, locker) bdb_locker_id(op, env, locker) +#else +#define LOCK_ID_FREE(env, locker) XLOCK_ID_FREE(env, locker) +#define LOCK_ID(env, locker) XLOCK_ID(env, locker) +#endif + #endif LDAP_END_DECL diff --git a/servers/slapd/back-bdb/cache.c b/servers/slapd/back-bdb/cache.c index 8f20bcee6f..961c047e2b 100644 --- a/servers/slapd/back-bdb/cache.c +++ b/servers/slapd/back-bdb/cache.c @@ -149,6 +149,17 @@ bdb_cache_entry_db_lock lockobj.size = e->e_nname.bv_len; rc = LOCK_GET(env, locker, flags | DB_LOCK_NOWAIT, &lockobj, db_rw, lock); + if (rc) { +#ifdef NEW_LOGGING + LDAP_LOG( CACHE, DETAIL1, + "bdb_cache_entry_db_lock: entry %s, rw %d, rc %d\n", + e->e_nname.bv_val, rw, rc ); +#else + Debug( LDAP_DEBUG_TRACE, + "bdb_cache_entry_db_lock: entry %s, rw %d, rc %d\n", + e->e_nname.bv_val, rw, rc ); +#endif + } return rc; } @@ -1100,3 +1111,57 @@ bdb_lru_print( Cache *cache ) } } #endif + +#ifdef BDB_REUSE_LOCKERS +void +bdb_locker_id_free( void *key, void *data ) +{ + DB_ENV *env = key; + int lockid = (int) data; + + XLOCK_ID_FREE( env, lockid ); +} + +int +bdb_locker_id( Operation *op, DB_ENV *env, int *locker ) +{ + int i, rc, lockid; + void *data; + + if ( !env || !op || !locker ) return -1; + + /* Shouldn't happen unless we're single-threaded */ + if ( !op->o_threadctx ) { + *locker = 0; + return 0; + } + + if ( ldap_pvt_thread_pool_getkey( op->o_threadctx, env, &data, NULL ) ) { + for ( i=0, rc=1; rc != 0 && i<4; i++ ) { + rc = XLOCK_ID( env, &lockid ); + if (rc) ldap_pvt_thread_yield(); + } + if ( rc != 0) { + return rc; + } + data = (void *)lockid; + if ( ( rc = ldap_pvt_thread_pool_setkey( op->o_threadctx, env, + data, bdb_locker_id_free ) ) ) { + XLOCK_ID_FREE( env, lockid ); +#ifdef NEW_LOGGING + LDAP_LOG( BACK_BDB, ERR, "bdb_locker_id: err %s(%d)\n", + db_strerror(rc), rc, 0 ); +#else + Debug( LDAP_DEBUG_ANY, "bdb_locker_id: err %s(%d)\n", + db_strerror(rc), rc, 0 ); +#endif + + return rc; + } + } else { + lockid = (int)data; + } + *locker = lockid; + return 0; +} +#endif diff --git a/servers/slapd/back-bdb/dbcache.c b/servers/slapd/back-bdb/dbcache.c index 68efe9aad4..2110554fac 100644 --- a/servers/slapd/back-bdb/dbcache.c +++ b/servers/slapd/back-bdb/dbcache.c @@ -109,7 +109,10 @@ bdb_db_cache( file = ch_malloc( strlen( name ) + sizeof(BDB_SUFFIX) ); sprintf( file, "%s" BDB_SUFFIX, name ); - rc = db->bdi_db->open( db->bdi_db, +#ifdef HAVE_EBCDIC + __atoe( file ); +#endif + rc = DB_OPEN( db->bdi_db, file, name, DB_HASH, bdb->bi_db_opflags | DB_CREATE | DB_THREAD, bdb->bi_dbenv_mode ); diff --git a/servers/slapd/back-bdb/dn2id.c b/servers/slapd/back-bdb/dn2id.c index 4e8d02cd60..96eedca61b 100644 --- a/servers/slapd/back-bdb/dn2id.c +++ b/servers/slapd/back-bdb/dn2id.c @@ -744,7 +744,7 @@ int bdb_build_tree( rdns = ldap_explode_dn(be->be_nsuffix[0].bv_val, 0); for (i=0; rdns[i]; i++); bdb->bi_nrdns = i; - charray_free(rdns); + ldap_charray_free(rdns); DBTzero( &key ); DBTzero( &data ); @@ -938,7 +938,7 @@ bdb_dn2id_matched( for (i=0; rdns[i]; i++); i -= bdb->bi_nrdns; if (i < 0) { - charray_free(rdns); + ldap_charray_free(rdns); return -1; } n = p; @@ -951,7 +951,7 @@ bdb_dn2id_matched( p = n; } ldap_pvt_thread_rdwr_runlock(&bdb->bi_tree_rdwr); - charray_free(rdns); + ldap_charray_free(rdns); if (n) { *id = n->i_id; diff --git a/servers/slapd/back-bdb/error.c b/servers/slapd/back-bdb/error.c index c34b277df1..79d528a0e0 100644 --- a/servers/slapd/back-bdb/error.c +++ b/servers/slapd/back-bdb/error.c @@ -15,9 +15,28 @@ void bdb_errcall( const char *pfx, char * msg ) { +#ifdef HAVE_EBCDIC + if ( msg[0] > 0x7f ) + __etoa( msg ); +#endif #ifdef NEW_LOGGING LDAP_LOG ( OPERATION, INFO, "bdb(%s): %s\n", pfx, msg, 0 ); #else Debug( LDAP_DEBUG_ANY, "bdb(%s): %s\n", pfx, msg, 0 ); #endif } + +#ifdef HAVE_EBCDIC + +#undef db_strerror + +/* Not re-entrant! */ +char *ebcdic_dberror( int rc ) +{ + static char msg[1024]; + + strcpy( msg, db_strerror( rc ) ); + __etoa( msg ); + return msg; +} +#endif diff --git a/servers/slapd/back-bdb/idl.c b/servers/slapd/back-bdb/idl.c index 28c9a725e6..df4ec8f5f0 100644 --- a/servers/slapd/back-bdb/idl.c +++ b/servers/slapd/back-bdb/idl.c @@ -248,7 +248,13 @@ bdb_idl_fetch_key( #ifdef BDB_IDL_MULTI { DBC *cursor; - ID buf[BDB_PAGESIZE*4]; + /* buf must be large enough to grab the entire IDL in one + * get(), otherwise BDB 4 will leak resources on subsequent + * get's. We can safely call get() twice - once for the data, + * and once to get the DB_NOTFOUND result meaning there's + * no more data. See ITS#2040 for details. + */ + ID buf[BDB_IDL_DB_SIZE*5]; ID *i; void *ptr; size_t len; @@ -444,7 +450,7 @@ bdb_idl_insert_key( err = "c_count"; goto fail; } - if ( count >= BDB_IDL_DB_SIZE ) { + if ( count >= BDB_IDL_DB_MAX ) { /* No room, convert to a range */ DBT key2 = *key; @@ -1053,7 +1059,7 @@ over: ida = IDL_MIN( BDB_IDL_FIRST(a), BDB_IDL_FIRST(b) ); idb = NOID; else idb = b[cursorc]; - if (b[cursorb] < idb) + if (cursorb <= b[0] && b[cursorb] < idb) a[cursora++] = b[cursorb++]; else { a[cursora++] = idb; diff --git a/servers/slapd/back-bdb/idl.h b/servers/slapd/back-bdb/idl.h new file mode 100644 index 0000000000..c06d3bba9a --- /dev/null +++ b/servers/slapd/back-bdb/idl.h @@ -0,0 +1,64 @@ +/* back-bdb.h - ldap ldbm back-end header file */ +/* $OpenLDAP$ */ +/* + * Copyright 2000-2002 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + +#ifndef _BDB_IDL_H_ +#define _BDB_IDL_H_ + +/* IDL sizes - likely should be even bigger + * limiting factors: sizeof(ID), thread stack size + */ +#define BDB_IDL_DB_SIZE (1<<16) /* 64K IDL on disk */ +#define BDB_IDL_UM_SIZE (1<<17) /* 128K IDL in memory */ +#define BDB_IDL_UM_SIZEOF (BDB_IDL_UM_SIZE * sizeof(ID)) + +#define BDB_IDL_DB_MAX (BDB_IDL_DB_SIZE-1) + +#define BDB_IDL_UM_MAX (BDB_IDL_UM_SIZE-1) + +#define BDB_IDL_IS_RANGE(ids) ((ids)[0] == NOID) +#define BDB_IDL_RANGE_SIZE (3) +#define BDB_IDL_RANGE_SIZEOF (BDB_IDL_RANGE_SIZE * sizeof(ID)) +#define BDB_IDL_SIZEOF(ids) ((BDB_IDL_IS_RANGE(ids) \ + ? BDB_IDL_RANGE_SIZE : ((ids)[0]+1)) * sizeof(ID)) + +#define BDB_IDL_RANGE_FIRST(ids) ((ids)[1]) +#define BDB_IDL_RANGE_LAST(ids) ((ids)[2]) + +#define BDB_IDL_RANGE( ids, f, l ) \ + do { \ + (ids)[0] = NOID; \ + (ids)[1] = (f); \ + (ids)[2] = (l); \ + } while(0) + +#define BDB_IDL_ZERO(ids) \ + do { \ + (ids)[0] = 0; \ + (ids)[1] = 0; \ + (ids)[2] = 0; \ + } while(0) + +#define BDB_IDL_IS_ZERO(ids) ( (ids)[0] == 0 ) +#define BDB_IDL_IS_ALL( range, ids ) ( (ids)[0] == NOID \ + && (ids)[1] <= (range)[1] && (range)[2] <= (ids)[2] ) + +#define BDB_IDL_CPY( dst, src ) (AC_MEMCPY( dst, src, BDB_IDL_SIZEOF( src ) )) + +#define BDB_IDL_ID( bdb, ids, id ) BDB_IDL_RANGE( ids, id, ((bdb)->bi_lastid) ) +#define BDB_IDL_ALL( bdb, ids ) BDB_IDL_RANGE( ids, 1, ((bdb)->bi_lastid) ) + +#define BDB_IDL_FIRST( ids ) ( ids[1] ) +#define BDB_IDL_LAST( ids ) ( BDB_IDL_IS_RANGE(ids) \ + ? ids[2] : ids[ids[0]] ) + +#define BDB_IDL_N( ids ) ( BDB_IDL_IS_RANGE(ids) \ + ? (ids[2]-ids[1])+1 : ids[0] ) + +LDAP_BEGIN_DECL +LDAP_END_DECL + +#endif diff --git a/servers/slapd/back-bdb/init.c b/servers/slapd/back-bdb/init.c index 8fa83ec16b..978835bd91 100644 --- a/servers/slapd/back-bdb/init.c +++ b/servers/slapd/back-bdb/init.c @@ -173,6 +173,9 @@ bdb_db_open( BackendDB *be ) int rc, i; struct bdb_info *bdb = (struct bdb_info *) be->be_private; u_int32_t flags; +#ifdef HAVE_EBCDIC + char path[MAXPATHLEN]; +#endif #ifdef NEW_LOGGING LDAP_LOG( BACK_BDB, ARGS, @@ -284,10 +287,19 @@ bdb_db_open( BackendDB *be ) bdb->bi_dbenv_home, 0, 0); #endif +#ifdef HAVE_EBCDIC + strcpy( path, bdb->bi_dbenv_home ); + __atoe( path ); + rc = bdb->bi_dbenv->open( bdb->bi_dbenv, + path, + flags, + bdb->bi_dbenv_mode ); +#else rc = bdb->bi_dbenv->open( bdb->bi_dbenv, bdb->bi_dbenv_home, flags, bdb->bi_dbenv_mode ); +#endif if( rc != 0 ) { #ifdef NEW_LOGGING LDAP_LOG( BACK_BDB, ERR, @@ -362,12 +374,23 @@ bdb_db_open( BackendDB *be ) BDB_PAGESIZE ); } - rc = db->bdi_db->open( db->bdi_db, +#ifdef HAVE_EBCDIC + strcpy( path, bdbi_databases[i].file ); + __atoe( path ); + rc = DB_OPEN( db->bdi_db, + path, + /* bdbi_databases[i].name, */ NULL, + bdbi_databases[i].type, + bdbi_databases[i].flags | flags, + bdb->bi_dbenv_mode ); +#else + rc = DB_OPEN( db->bdi_db, bdbi_databases[i].file, /* bdbi_databases[i].name, */ NULL, bdbi_databases[i].type, bdbi_databases[i].flags | flags, bdb->bi_dbenv_mode ); +#endif if( rc != 0 ) { #ifdef NEW_LOGGING @@ -543,6 +566,17 @@ bdb_initialize( { /* version check */ int major, minor, patch; char *version = db_version( &major, &minor, &patch ); +#ifdef HAVE_EBCDIC + char v2[1024]; + + /* All our stdio does an ASCII to EBCDIC conversion on + * the output. Strings from the BDB library are already + * in EBCDIC; we have to go back and forth... + */ + strcpy( v2, version ); + __etoa( v2 ); + version = v2; +#endif if( major != DB_VERSION_MAJOR || minor != DB_VERSION_MINOR || diff --git a/servers/slapd/back-bdb/proto-bdb.h b/servers/slapd/back-bdb/proto-bdb.h index 7adf2f0d47..8fa8b55181 100644 --- a/servers/slapd/back-bdb/proto-bdb.h +++ b/servers/slapd/back-bdb/proto-bdb.h @@ -58,9 +58,12 @@ bdb_db_cache( * dn2entry.c */ int bdb_dn2entry_rw LDAP_P(( BackendDB *be, DB_TXN *tid, - struct berval *dn, Entry **e, Entry **matched, int flags, int rw , u_int32_t locker, DB_LOCK *lock)); -#define bdb_dn2entry_r(be, tid, dn, e, m, f, locker, lock) bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 0, locker, lock) -#define bdb_dn2entry_w(be, tid, dn, e, m, f, locker, lock) bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 1, locker, lock) + struct berval *dn, Entry **e, Entry **matched, int flags, int rw, + u_int32_t locker, DB_LOCK *lock)); +#define bdb_dn2entry_r(be, tid, dn, e, m, f, locker, lock) \ + bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 0, locker, lock) +#define bdb_dn2entry_w(be, tid, dn, e, m, f, locker, lock) \ + bdb_dn2entry_rw((be), (tid), (dn), (e), (m), (f), 1, locker, lock) /* * dn2id.c @@ -158,8 +161,10 @@ int bdb_id2entry_rw( int rw, u_int32_t locker, DB_LOCK *lock ); -#define bdb_id2entry_r(be, tid, id, e, locker, lock) bdb_id2entry_rw((be), (tid), (id), (e), 0, locker, lock) -#define bdb_id2entry_w(be, tid, id, e, locker, lock) bdb_id2entry_rw((be), (tid), (id), (e), 1, locker, lock) +#define bdb_id2entry_r(be, tid, id, e, locker, lock) \ + bdb_id2entry_rw((be), (tid), (id), (e), 0, locker, lock) +#define bdb_id2entry_w(be, tid, id, e, locker, lock) \ + bdb_id2entry_rw((be), (tid), (id), (e), 1, locker, lock) void bdb_entry_free ( Entry *e ); @@ -306,12 +311,17 @@ BI_op_extended bdb_exop_passwd; */ void bdb_cache_entry_commit( Entry *e ); -void bdb_cache_return_entry_rw( DB_ENV *env, Cache *cache, Entry *e, int rw, DB_LOCK *lock ); -#define bdb_cache_return_entry_r(env, c, e, l) bdb_cache_return_entry_rw((env), (c), (e), 0, (l)) -#define bdb_cache_return_entry_w(env, c, e, l) bdb_cache_return_entry_rw((env), (c), (e), 1, (l)) +void bdb_cache_return_entry_rw( DB_ENV *env, Cache *cache, Entry *e, + int rw, DB_LOCK *lock ); +#define bdb_cache_return_entry_r(env, c, e, l) \ + bdb_cache_return_entry_rw((env), (c), (e), 0, (l)) +#define bdb_cache_return_entry_w(env, c, e, l) \ + bdb_cache_return_entry_rw((env), (c), (e), 1, (l)) void bdb_unlocked_cache_return_entry_rw( Cache *cache, Entry *e, int rw ); -#define bdb_unlocked_cache_return_entry_r( c, e ) bdb_unlocked_cache_return_entry_rw((c), (e), 0) -#define bdb_unlocked_cache_return_entry_w( c, e ) bdb_unlocked_cache_return_entry_rw((c), (e), 1) +#define bdb_unlocked_cache_return_entry_r( c, e ) \ + bdb_unlocked_cache_return_entry_rw((c), (e), 0) +#define bdb_unlocked_cache_return_entry_w( c, e ) \ + bdb_unlocked_cache_return_entry_rw((c), (e), 1) int bdb_cache_add_entry_rw( DB_ENV *env, Cache *cache, @@ -343,6 +353,18 @@ int bdb_cache_delete_entry( ); void bdb_cache_release_all( Cache *cache ); +#ifdef BDB_REUSE_LOCKERS + +int bdb_locker_id( Operation *op, DB_ENV *env, int *locker ); + +#endif + +#ifdef HAVE_EBCDIC +char *ebcdic_dberror( int rc ); + +#define db_strerror(x) ebcdic_dberror(x) +#endif + LDAP_END_DECL #endif /* _PROTO_BDB_H */ diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index a7b0736719..462d8ec027 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -614,9 +614,8 @@ static int base_candidate( return 0; } -/* Is "objectClass=xx" mentioned anywhere in this filter? Presence - * doesn't count, we're looking for explicit values. Also count depth - * of filter tree while we're at it. +/* Look for "objectClass Present" in this filter. + * Also count depth of filter tree while we're at it. */ static int oc_filter( Filter *f, @@ -629,14 +628,8 @@ static int oc_filter( if( cur > *max ) *max = cur; switch(f->f_choice) { - case LDAP_FILTER_EQUALITY: - case LDAP_FILTER_APPROX: - if (f->f_av_desc == slap_schema.si_ad_objectClass) - rc = 1; - break; - - case LDAP_FILTER_SUBSTRINGS: - if (f->f_sub_desc == slap_schema.si_ad_objectClass) + case LDAP_FILTER_PRESENT: + if (f->f_desc == slap_schema.si_ad_objectClass) rc = 1; break; @@ -644,8 +637,7 @@ static int oc_filter( case LDAP_FILTER_OR: cur++; for (f=f->f_and; f; f=f->f_next) - if ((rc = oc_filter(f, cur, max))) - break; + rc |= oc_filter(f, cur, max); break; default: break; @@ -696,10 +688,10 @@ static int search_candidates( xf.f_choice = LDAP_FILTER_OR; xf.f_next = NULL; - /* If the user's filter doesn't mention objectClass, or if - * it just uses objectClass=*, these clauses are redundant. + /* If the user's filter uses objectClass=*, + * these clauses are redundant. */ - if (oc_filter(filter, 1, &depth) && !get_subentries_visibility(op) ) { + if (!oc_filter(filter, 1, &depth) && !get_subentries_visibility(op) ) { if( !get_manageDSAit(op) ) { /* match referrals */ struct berval bv_ref = { sizeof("REFERRAL")-1, "REFERRAL" }; rf.f_choice = LDAP_FILTER_EQUALITY; diff --git a/servers/slapd/back-dnssrv/referral.c b/servers/slapd/back-dnssrv/referral.c index 6d7e240dce..4bd8fbe037 100644 --- a/servers/slapd/back-dnssrv/referral.c +++ b/servers/slapd/back-dnssrv/referral.c @@ -65,7 +65,7 @@ dnssrv_back_referrals( goto done; } - hosts = str2charray( hostlist, " " ); + hosts = ldap_str2charray( hostlist, " " ); if( hosts == NULL ) { Debug( LDAP_DEBUG_TRACE, "DNSSRV: str2charrary error\n", 0, 0, 0 ); @@ -103,7 +103,7 @@ dnssrv_back_referrals( done: if( domain != NULL ) ch_free( domain ); if( hostlist != NULL ) ch_free( hostlist ); - if( hosts != NULL ) charray_free( hosts ); + if( hosts != NULL ) ldap_charray_free( hosts ); ber_bvarray_free( urls ); return rc; } diff --git a/servers/slapd/back-dnssrv/search.c b/servers/slapd/back-dnssrv/search.c index a619e3c23d..1af13a27e4 100644 --- a/servers/slapd/back-dnssrv/search.c +++ b/servers/slapd/back-dnssrv/search.c @@ -63,7 +63,7 @@ dnssrv_back_search( goto done; } - hosts = str2charray( hostlist, " " ); + hosts = ldap_str2charray( hostlist, " " ); if( hosts == NULL ) { Debug( LDAP_DEBUG_TRACE, "DNSSRV: str2charrary error\n", 0, 0, 0 ); @@ -225,7 +225,7 @@ dnssrv_back_search( done: if( domain != NULL ) ch_free( domain ); if( hostlist != NULL ) ch_free( hostlist ); - if( hosts != NULL ) charray_free( hosts ); + if( hosts != NULL ) ldap_charray_free( hosts ); if( urls != NULL ) ber_bvarray_free( urls ); return 0; } diff --git a/servers/slapd/back-ldbm/attr.c b/servers/slapd/back-ldbm/attr.c index 6bfa9824b4..47022cfe40 100644 --- a/servers/slapd/back-ldbm/attr.c +++ b/servers/slapd/back-ldbm/attr.c @@ -67,7 +67,7 @@ attr_index_config( char **attrs; char **indexes = NULL; - attrs = str2charray( argv[0], "," ); + attrs = ldap_str2charray( argv[0], "," ); if( attrs == NULL ) { fprintf( stderr, "%s: line %d: " @@ -77,7 +77,7 @@ attr_index_config( } if ( argc > 1 ) { - indexes = str2charray( argv[1], "," ); + indexes = ldap_str2charray( argv[1], "," ); if( indexes == NULL ) { fprintf( stderr, "%s: line %d: " @@ -206,8 +206,8 @@ attr_index_config( } } - charray_free( attrs ); - if ( indexes != NULL ) charray_free( indexes ); + ldap_charray_free( attrs ); + if ( indexes != NULL ) ldap_charray_free( indexes ); return LDAP_SUCCESS; } diff --git a/servers/slapd/back-shell/shell.h b/servers/slapd/back-shell/shell.h index 25b7aaf28d..907de602ca 100644 --- a/servers/slapd/back-shell/shell.h +++ b/servers/slapd/back-shell/shell.h @@ -32,7 +32,7 @@ extern void make_surrogate_parent LDAP_P(( void )); #else /* !SHELL_SURROGATE_PARENT */ typedef char **Cmd_info; -#define MAKE_CMD_INFO(args) charray_dup( args ) +#define MAKE_CMD_INFO(args) ldap_charray_dup( args ) #define IS_NULLCMD(cmd) ((cmd) == NULL) #endif /* SHELL_SURROGATE_PARENT */ diff --git a/servers/slapd/backend.c b/servers/slapd/backend.c index a6237ec5db..461fc7a9f5 100644 --- a/servers/slapd/backend.c +++ b/servers/slapd/backend.c @@ -748,7 +748,7 @@ backend_check_controls( for( ; *ctrls != NULL ; ctrls++ ) { if( (*ctrls)->ldctl_iscritical && - !charray_inlist( be->be_controls, (*ctrls)->ldctl_oid ) ) + !ldap_charray_inlist( be->be_controls, (*ctrls)->ldctl_oid ) ) { *text = "control unavailable in context"; return LDAP_UNAVAILABLE_CRITICAL_EXTENSION; diff --git a/servers/slapd/bind.c b/servers/slapd/bind.c index 63338b7e67..e4e8dd5e18 100644 --- a/servers/slapd/bind.c +++ b/servers/slapd/bind.c @@ -45,7 +45,7 @@ do_bind( int rc = LDAP_SUCCESS; const char *text; struct berval cred = { 0, NULL }; - Backend *be; + Backend *be = NULL; #ifdef NEW_LOGGING LDAP_LOG( OPERATION, ENTRY, "do_bind: conn %d\n", conn->c_connid, 0, 0 ); @@ -231,6 +231,9 @@ do_bind( goto cleanup; } + /* Set the bindop for the benefit of in-directory SASL lookups */ + conn->c_sasl_bindop = op; + if ( method == LDAP_AUTH_SASL ) { slap_ssf_t ssf = 0; @@ -570,6 +573,8 @@ do_bind( } cleanup: + conn->c_sasl_bindop = NULL; + if( pdn.bv_val != NULL ) { free( pdn.bv_val ); } diff --git a/servers/slapd/charray.c b/servers/slapd/charray.c deleted file mode 100644 index 46bff0714a..0000000000 --- a/servers/slapd/charray.c +++ /dev/null @@ -1,213 +0,0 @@ -/* charray.c - routines for dealing with char * arrays */ -/* $OpenLDAP$ */ -/* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file - */ - -#include "portable.h" - -#include - -#include -#include - -#include "slap.h" - -void -charray_add( - char ***a, - const char *s -) -{ - int n; - - if ( *a == NULL ) { - *a = (char **) ch_malloc( 2 * sizeof(char *) ); - n = 0; - } else { - for ( n = 0; *a != NULL && (*a)[n] != NULL; n++ ) { - ; /* NULL */ - } - - *a = (char **) ch_realloc( (char *) *a, - (n + 2) * sizeof(char *) ); - } - - (*a)[n++] = ch_strdup(s); - (*a)[n] = NULL; -} - -void -charray_add_n( - char ***a, - const char *s, - int l -) -{ - int n; - - if ( *a == NULL ) { - *a = (char **) ch_malloc( 2 * sizeof(char *) ); - n = 0; - } else { - for ( n = 0; *a != NULL && (*a)[n] != NULL; n++ ) { - ; /* NULL */ - } - - *a = (char **) ch_realloc( (char *) *a, - (n + 2) * sizeof(char *) ); - } - - (*a)[n] = (char *) ch_malloc( ( l + 1 ) * sizeof( char ) ); - strncpy( (*a)[n], s, l ); - (*a)[n][l] = '\0'; - (*a)[++n] = NULL; -} - -void -charray_merge( - char ***a, - char **s -) -{ - int i, n, nn; - - for ( n = 0; *a != NULL && (*a)[n] != NULL; n++ ) { - ; /* NULL */ - } - for ( nn = 0; s[nn] != NULL; nn++ ) { - ; /* NULL */ - } - - *a = (char **) ch_realloc( (char *) *a, (n + nn + 1) * sizeof(char *) ); - - for ( i = 0; i < nn; i++ ) { - (*a)[n + i] = ch_strdup(s[i]); - } - (*a)[n + nn] = NULL; -} - -void -charray_free( char **array ) -{ - char **a; - - if ( array == NULL ) { - return; - } - - for ( a = array; *a != NULL; a++ ) { - if ( *a != NULL ) { - free( *a ); - } - } - free( (char *) array ); -} - -int -charray_inlist( - char **a, - const char *s -) -{ - int i; - - if( a == NULL ) return 0; - - for ( i = 0; a[i] != NULL; i++ ) { - if ( strcasecmp( s, a[i] ) == 0 ) { - return( 1 ); - } - } - - return( 0 ); -} - -char ** -charray_dup( char **a ) -{ - int i; - char **new; - - for ( i = 0; a[i] != NULL; i++ ) - ; /* NULL */ - - new = (char **) ch_malloc( (i + 1) * sizeof(char *) ); - - for ( i = 0; a[i] != NULL; i++ ) { - new[i] = ch_strdup( a[i] ); - } - new[i] = NULL; - - return( new ); -} - - -char ** -str2charray( const char *str_in, const char *brkstr ) -{ - char *str; - char **res; - char *s; - char *lasts; - int i; - - /* protect the input string from strtok */ - str = ch_strdup( str_in ); - - i = 1; - for ( s = str; *s; s++ ) { - if ( strchr( brkstr, *s ) != NULL ) { - i++; - } - } - - res = (char **) ch_malloc( (i + 1) * sizeof(char *) ); - i = 0; - - for ( s = ldap_pvt_strtok( str, brkstr, &lasts ); - s != NULL; - s = ldap_pvt_strtok( NULL, brkstr, &lasts ) ) - { - res[i++] = ch_strdup( s ); - } - - res[i] = NULL; - - free( str ); - return( res ); -} - -int -charray_strcmp( const char **a1, const char **a2 ) -{ - for ( ; a1[0] && a2[0]; a1++, a2++ ) { - if ( strcmp( a1[0], a2[0] ) ) { - return( !0 ); - } - } - - if ( a1[0] || a2[0] ) { - return( !0 ); - } - - return 0; -} - - -int -charray_strcasecmp( const char **a1, const char **a2 ) -{ - for ( ; a1[0] && a2[0]; a1++, a2++ ) { - if ( strcasecmp( a1[0], a2[0] ) ) { - return( !0 ); - } - } - - if ( a1[0] || a2[0] ) { - return( !0 ); - } - - return 0; -} diff --git a/servers/slapd/connection.c b/servers/slapd/connection.c index 8570a4a163..e59d4f047b 100644 --- a/servers/slapd/connection.c +++ b/servers/slapd/connection.c @@ -60,6 +60,8 @@ static int connection_resched( Connection *conn ); static void connection_abandon( Connection *conn ); static void connection_destroy( Connection *c ); +static ldap_pvt_thread_start_t connection_operation; + struct co_arg { Connection *co_conn; Operation *co_op; @@ -434,6 +436,7 @@ long connection_init( c->c_sasl_bind_mech.bv_len = 0; c->c_sasl_context = NULL; c->c_sasl_extra = NULL; + c->c_sasl_bindop = NULL; c->c_sb = ber_sockbuf_alloc( ); @@ -468,6 +471,7 @@ long connection_init( assert( c->c_sasl_bind_mech.bv_val == NULL ); assert( c->c_sasl_context == NULL ); assert( c->c_sasl_extra == NULL ); + assert( c->c_sasl_bindop == NULL ); assert( c->c_currentber == NULL ); ber_str2bv( url, 0, 1, &c->c_listener_url ); @@ -904,7 +908,7 @@ void connection_done( Connection *c ) #endif /* !SLAPD_MONITOR */ static void * -connection_operation( void *arg_v ) +connection_operation( void *ctx, void *arg_v ) { int rc; struct co_arg *arg = arg_v; @@ -918,6 +922,8 @@ connection_operation( void *arg_v ) num_ops_initiated++; ldap_pvt_thread_mutex_unlock( &num_ops_mutex ); + arg->co_op->o_threadctx = ctx; + if( conn->c_sasl_bind_in_progress && tag != LDAP_REQ_BIND ) { #ifdef NEW_LOGGING LDAP_LOG( CONNECTION, ERR, @@ -1416,10 +1422,9 @@ connection_input( op = slap_op_alloc( ber, msgid, tag, conn->c_n_ops_received++ ); + op->o_conn = conn; op->vrFilter = NULL; - op->o_pagedresults_state = conn->c_pagedresults_state; - #ifdef LDAP_CONNECTIONLESS op->o_peeraddr = peeraddr; if (cdn) { @@ -1427,6 +1432,7 @@ connection_input( op->o_protocol = LDAP_VERSION2; } #endif + if ( conn->c_conn_state == SLAP_C_BINDING || conn->c_conn_state == SLAP_C_CLOSING ) { diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index c732e1afa6..f4022fc27c 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -95,7 +95,7 @@ static SLPHandle slapd_hslp = 0; void slapd_slp_init( const char* urls ) { int i; - slapd_srvurls = str2charray( urls, " " ); + slapd_srvurls = ldap_str2charray( urls, " " ); if( slapd_srvurls == NULL ) return; @@ -134,7 +134,7 @@ void slapd_slp_init( const char* urls ) { void slapd_slp_deinit() { if( slapd_srvurls == NULL ) return; - charray_free( slapd_srvurls ); + ldap_charray_free( slapd_srvurls ); slapd_srvurls = NULL; /* close the SLP handle */ @@ -927,7 +927,7 @@ int slapd_daemon_init( const char *urls ) urls = "ldap:///"; } - u = str2charray( urls, " " ); + u = ldap_str2charray( urls, " " ); if( u == NULL || u[0] == NULL ) { #ifdef NEW_LOGGING @@ -958,7 +958,7 @@ int slapd_daemon_init( const char *urls ) Debug( LDAP_DEBUG_ANY, "daemon_init: no listeners to open (%s)\n", urls, 0, 0 ); #endif - charray_free( u ); + ldap_charray_free( u ); return -1; } @@ -973,7 +973,7 @@ int slapd_daemon_init( const char *urls ) for(n = 0, j = 0; u[n]; n++ ) { if ( slap_open_listener( u[n], &i, &j ) ) { - charray_free( u ); + ldap_charray_free( u ); return -1; } } @@ -992,7 +992,7 @@ int slapd_daemon_init( const char *urls ) slapd_slp_reg(); #endif - charray_free( u ); + ldap_charray_free( u ); ldap_pvt_thread_mutex_init( &slap_daemon.sd_mutex ); return !i; } diff --git a/servers/slapd/init.c b/servers/slapd/init.c index b860b3f673..d091c4fe07 100644 --- a/servers/slapd/init.c +++ b/servers/slapd/init.c @@ -14,6 +14,7 @@ #include #include "slap.h" +#include "lber_pvt.h" /* * read-only global variables or variables only written by the listener @@ -33,6 +34,10 @@ int ldap_syslog_level = LOG_DEBUG; BerVarray default_referral = NULL; +struct berval AllUser = BER_BVC( LDAP_ALL_USER_ATTRIBUTES ); +struct berval AllOper = BER_BVC( LDAP_ALL_OPERATIONAL_ATTRIBUTES ); +struct berval NoAttrs = BER_BVC( LDAP_NO_ATTRS ); + /* * global variables that need mutex protection */ diff --git a/servers/slapd/libslapd.dsp b/servers/slapd/libslapd.dsp index a441af9c62..41614b6491 100644 --- a/servers/slapd/libslapd.dsp +++ b/servers/slapd/libslapd.dsp @@ -176,10 +176,6 @@ SOURCE=.\ch_malloc.c # End Source File # Begin Source File -SOURCE=.\charray.c -# End Source File -# Begin Source File - SOURCE=.\compare.c # End Source File # Begin Source File diff --git a/servers/slapd/limits.c b/servers/slapd/limits.c index c34e848821..e9e436f68d 100644 --- a/servers/slapd/limits.c +++ b/servers/slapd/limits.c @@ -436,6 +436,7 @@ parse_limit( } } else if ( arg[0] == '=' ) { + arg++; limit->lms_t_soft = atoi( arg ); limit->lms_t_hard = 0; @@ -487,6 +488,7 @@ parse_limit( } } else if ( arg[0] == '=' ) { + arg++; limit->lms_s_soft = atoi( arg ); limit->lms_s_hard = 0; diff --git a/servers/slapd/modify.c b/servers/slapd/modify.c index f9d6181747..d0b81b15c7 100644 --- a/servers/slapd/modify.c +++ b/servers/slapd/modify.c @@ -589,18 +589,17 @@ int slap_mods_opattrs( if( rc != LDAP_SUCCESS ) { return rc; } - if ( tmpval.bv_len ) { - mod = (Modifications *) ch_malloc( sizeof( Modifications ) ); - mod->sml_op = mop; - mod->sml_type.bv_val = NULL; - mod->sml_desc = slap_schema.si_ad_structuralObjectClass; - mod->sml_bvalues = (BerVarray) ch_malloc( 2 * sizeof( struct berval ) ); - ber_dupbv( &mod->sml_bvalues[0], &tmpval ); - mod->sml_bvalues[1].bv_val = NULL; - assert( mod->sml_bvalues[0].bv_val ); - *modtail = mod; - modtail = &mod->sml_next; - } + + mod = (Modifications *) ch_malloc( sizeof( Modifications ) ); + mod->sml_op = mop; + mod->sml_type.bv_val = NULL; + mod->sml_desc = slap_schema.si_ad_structuralObjectClass; + mod->sml_bvalues = (BerVarray) ch_malloc( 2 * sizeof( struct berval ) ); + ber_dupbv( &mod->sml_bvalues[0], &tmpval ); + mod->sml_bvalues[1].bv_val = NULL; + assert( mod->sml_bvalues[0].bv_val ); + *modtail = mod; + modtail = &mod->sml_next; } if( SLAP_LASTMOD(be) ) { diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c index 8bf032189e..7c8b4390bf 100644 --- a/servers/slapd/modrdn.c +++ b/servers/slapd/modrdn.c @@ -401,6 +401,9 @@ slap_modrdn2mods( Modifications *mod = NULL; int a_cnt, d_cnt; + assert( new_rdn != NULL ); + assert( !deleteoldrdn || old_rdn != NULL ); + /* Add new attribute values to the entry */ for ( a_cnt = 0; new_rdn[ 0 ][ a_cnt ]; a_cnt++ ) { AttributeDescription *desc = NULL; diff --git a/servers/slapd/oc.c b/servers/slapd/oc.c index 2d7c6ce097..1920762bc9 100644 --- a/servers/slapd/oc.c +++ b/servers/slapd/oc.c @@ -434,6 +434,13 @@ oc_add( soc = (ObjectClass *) ch_calloc( 1, sizeof(ObjectClass) ); AC_MEMCPY( &soc->soc_oclass, oc, sizeof(LDAPObjectClass) ); + if( oc->oc_names != NULL ) { + soc->soc_cname.bv_val = soc->soc_names[0]; + } else { + soc->soc_cname.bv_val = soc->soc_oid; + } + soc->soc_cname.bv_len = strlen( soc->soc_cname.bv_val ); + if( soc->soc_sup_oids == NULL && soc->soc_kind == LDAP_SCHEMA_STRUCTURAL ) { diff --git a/servers/slapd/oidm.c b/servers/slapd/oidm.c new file mode 100644 index 0000000000..a244d18b9b --- /dev/null +++ b/servers/slapd/oidm.c @@ -0,0 +1,122 @@ +/* schemaparse.c - routines to parse config file objectclass definitions */ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ + +#include "portable.h" + +#include + +#include +#include +#include + +#include "slap.h" + +static OidMacro *om_list = NULL; + +/* Replace an OID Macro invocation with its full numeric OID. + * If the macro is used with "macroname:suffix" append ".suffix" + * to the expansion. + */ +char * +oidm_find(char *oid) +{ + OidMacro *om; + + /* OID macros must start alpha */ + if ( OID_LEADCHAR( *oid ) ) { + return oid; + } + + for (om = om_list; om; om=om->som_next) { + char **names = om->som_names; + + if( names == NULL ) { + continue; + } + + for( ; *names != NULL ; names++ ) { + int pos = dscompare(*names, oid, ':'); + + if( pos ) { + int suflen = strlen(oid + pos); + char *tmp = ch_malloc( om->som_oid.bv_len + + suflen + 1); + strcpy(tmp, om->som_oid.bv_val); + if( suflen ) { + suflen = om->som_oid.bv_len; + tmp[suflen++] = '.'; + strcpy(tmp+suflen, oid+pos+1); + } + return tmp; + } + } + } + return NULL; +} + +void +oidm_destroy() +{ + OidMacro *om, *n; + + for (om = om_list; om; om = n) { + n = om->som_next; + ldap_charray_free(om->som_names); + free(om->som_oid.bv_val); + free(om); + } +} + +int +parse_oidm( + const char *fname, + int lineno, + int argc, + char **argv +) +{ + char *oid; + OidMacro *om; + + if (argc != 3) { + fprintf( stderr, "%s: line %d: too many arguments\n", + fname, lineno ); +usage: fprintf( stderr, "\tObjectIdentifier \n"); + return 1; + } + + oid = oidm_find( argv[1] ); + if( oid != NULL ) { + fprintf( stderr, + "%s: line %d: " + "ObjectIdentifier \"%s\" previously defined \"%s\"", + fname, lineno, argv[1], oid ); + return 1; + } + + om = (OidMacro *) ch_malloc( sizeof(OidMacro) ); + + om->som_names = NULL; + ldap_charray_add( &om->som_names, argv[1] ); + om->som_oid.bv_val = oidm_find( argv[2] ); + + if (!om->som_oid.bv_val) { + fprintf( stderr, "%s: line %d: OID %s not recognized\n", + fname, lineno, argv[2] ); + goto usage; + } + + if (om->som_oid.bv_val == argv[2]) { + om->som_oid.bv_val = ch_strdup( argv[2] ); + } + + om->som_oid.bv_len = strlen( om->som_oid.bv_val ); + om->som_next = om_list; + om_list = om; + + return 0; +} diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index 6282ee2848..95720738d0 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -7,6 +7,7 @@ #define PROTO_SLAP_H #include +#include "ldap_pvt.h" LDAP_BEGIN_DECL @@ -123,6 +124,9 @@ LDAP_SLAPD_F (Attribute *) attr_dup LDAP_P(( Attribute *a )); LDAP_SLAPD_F (int) attr_merge LDAP_P(( Entry *e, AttributeDescription *desc, BerVarray vals )); +LDAP_SLAPD_F (int) attr_merge_one LDAP_P(( Entry *e, + AttributeDescription *desc, + struct berval *val )); LDAP_SLAPD_F (Attribute *) attrs_find LDAP_P(( Attribute *a, AttributeDescription *desc )); LDAP_SLAPD_F (Attribute *) attr_find LDAP_P(( @@ -254,19 +258,6 @@ LDAP_SLAPD_F (void) ch_free LDAP_P(( void * )); #endif #endif -/* - * charray.c - */ -LDAP_SLAPD_F (void) charray_add LDAP_P(( char ***a, const char *s )); -LDAP_SLAPD_F (void) charray_add_n LDAP_P(( char ***a, const char *s, int l )); -LDAP_SLAPD_F (void) charray_merge LDAP_P(( char ***a, char **s )); -LDAP_SLAPD_F (void) charray_free LDAP_P(( char **array )); -LDAP_SLAPD_F (int) charray_inlist LDAP_P(( char **a, const char *s )); -LDAP_SLAPD_F (char **) charray_dup LDAP_P(( char **a )); -LDAP_SLAPD_F (char **) str2charray LDAP_P(( const char *str, const char *brkstr )); -LDAP_SLAPD_F (int) charray_strcmp LDAP_P(( const char **a1, const char **a2 )); -LDAP_SLAPD_F (int) charray_strcasecmp LDAP_P(( const char **a1, const char **a2 )); - /* * controls.c */ @@ -902,6 +893,24 @@ LDAP_SLAPD_V( int ) schema_init_done; LDAP_SLAPD_F (int) slap_schema_init LDAP_P((void)); LDAP_SLAPD_F (void) schema_destroy LDAP_P(( void )); +LDAP_SLAPD_F( int ) octetStringIndexer( + slap_mask_t use, + slap_mask_t flags, + Syntax *syntax, + MatchingRule *mr, + struct berval *prefix, + BerVarray values, + BerVarray *keysp ); + +LDAP_SLAPD_F( int ) octetStringFilter( + slap_mask_t use, + slap_mask_t flags, + Syntax *syntax, + MatchingRule *mr, + struct berval *prefix, + void * assertValue, + BerVarray *keysp ); + /* * schema_prep.c */ @@ -998,6 +1007,9 @@ LDAP_SLAPD_F (int) value_find_ex LDAP_P(( LDAP_SLAPD_F (int) value_add LDAP_P(( BerVarray *vals, BerVarray addvals )); +LDAP_SLAPD_F (int) value_add_one LDAP_P(( + BerVarray *vals, + struct berval *addval )); /* * Other... @@ -1073,6 +1085,10 @@ LDAP_SLAPD_V (ber_socket_t) dtblsize; LDAP_SLAPD_V (int) use_reverse_lookup; +LDAP_SLAPD_V (struct berval) AllUser; +LDAP_SLAPD_V (struct berval) AllOper; +LDAP_SLAPD_V (struct berval) NoAttrs; + /* * operations */ diff --git a/servers/slapd/result.c b/servers/slapd/result.c index 3551b745ed..ccc1de3083 100644 --- a/servers/slapd/result.c +++ b/servers/slapd/result.c @@ -645,11 +645,6 @@ send_search_result( } } -static struct berval AllUser = { sizeof(LDAP_ALL_USER_ATTRIBUTES)-1, - LDAP_ALL_USER_ATTRIBUTES }; -static struct berval AllOper = { sizeof(LDAP_ALL_OPERATIONAL_ATTRIBUTES)-1, - LDAP_ALL_OPERATIONAL_ATTRIBUTES }; - int send_search_entry( Backend *be, @@ -726,7 +721,7 @@ send_search_entry( Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 ); #endif ber_free_buf( ber ); - return; + return( 1 ); } } if (conn->c_is_udp && op->o_protocol == LDAP_VERSION2) { diff --git a/servers/slapd/root_dse.c b/servers/slapd/root_dse.c index 62c2fc7cf0..854bb0e2ec 100644 --- a/servers/slapd/root_dse.c +++ b/servers/slapd/root_dse.c @@ -143,7 +143,7 @@ root_dse_info( vals[0].bv_len = strlen( vals[0].bv_val ); attr_merge( e, ad_supportedSASLMechanisms, vals ); } - charray_free( supportedSASLMechanisms ); + ldap_charray_free( supportedSASLMechanisms ); } if ( default_referral != NULL ) { diff --git a/servers/slapd/sasl.c b/servers/slapd/sasl.c index 756ae1187b..6db5f1dc3c 100644 --- a/servers/slapd/sasl.c +++ b/servers/slapd/sasl.c @@ -32,7 +32,8 @@ #define SASL_CONST #endif -#include +#include "ldap_pvt.h" +#include "lber_pvt.h" /* Flags for telling slap_sasl_getdn() what type of identity is being passed */ #define FLAG_GETDN_AUTHCID 2 @@ -298,7 +299,7 @@ slap_sasl_log( #define SET_DN 1 #define SET_U 2 -static struct berval ext_bv = { sizeof("EXTERNAL")-1, "EXTERNAL" }; +static struct berval ext_bv = BER_BVC( "EXTERNAL" ); int slap_sasl_getdn( Connection *conn, char *id, int len, char *user_realm, struct berval *dn, int flags ) @@ -341,8 +342,10 @@ int slap_sasl_getdn( Connection *conn, char *id, int len, */ if( flags & FLAG_GETDN_AUTHCID ) { #ifdef HAVE_TLS - if( conn->c_is_tls && conn->c_sasl_bind_mech.bv_len == ext_bv.bv_len - && ( strcasecmp( ext_bv.bv_val, conn->c_sasl_bind_mech.bv_val ) == 0 ) ) { + if( conn->c_is_tls && + conn->c_sasl_bind_mech.bv_len == ext_bv.bv_len && + strcasecmp( ext_bv.bv_val, conn->c_sasl_bind_mech.bv_val ) == 0 ) + { /* X.509 DN is already normalized */ do_norm = 0; is_dn = SET_DN; @@ -607,6 +610,7 @@ slap_auxprop_lookup( op.o_callback = &cb; op.o_time = slap_get_time(); op.o_do_not_cache = 1; + op.o_threadctx = conn->c_sasl_bindop->o_threadctx; (*be->be_search)( be, conn, &op, NULL, &dn, LDAP_SCOPE_BASE, LDAP_DEREF_NEVER, 1, 0, @@ -731,6 +735,7 @@ slap_sasl_checkpass( op.o_callback = &cb; op.o_time = slap_get_time(); op.o_do_not_cache = 1; + op.o_threadctx = conn->c_sasl_bindop->o_threadctx; (*be->be_search)( be, conn, &op, NULL, &dn, LDAP_SCOPE_BASE, LDAP_DEREF_NEVER, 1, 0, @@ -1089,6 +1094,27 @@ int slap_sasl_init( void ) { SASL_CB_LIST_END, NULL, NULL } }; +#ifdef HAVE_SASL_VERSION +#define SASL_BUILD_VERSION ((SASL_VERSION_MAJOR << 24) |\ + (SASL_VERSION_MINOR << 16) | SASL_VERSION_STEP) + + sasl_version( NULL, &rc ); + if ( ((rc >> 16) != ((SASL_VERSION_MAJOR << 8)|SASL_VERSION_MINOR)) || + (rc & 0xffff) < SASL_VERSION_STEP) { + +#ifdef NEW_LOGGING + LDAP_LOG( TRANSPORT, INFO, + "slap_sasl_init: SASL version mismatch, got %x, wanted %x.\n", + rc, SASL_BUILD_VERSION, 0 ); +#else + Debug( LDAP_DEBUG_ANY, + "slap_sasl_init: SASL version mismatch, got %x, wanted %x.\n", + rc, SASL_BUILD_VERSION, 0 ); +#endif + return -1; + } +#endif + sasl_set_alloc( ber_memalloc, ber_memcalloc, @@ -1115,6 +1141,10 @@ int slap_sasl_init( void ) Debug( LDAP_DEBUG_ANY, "sasl_server_init failed\n", 0, 0, 0 ); #endif +#if SASL_VERSION_MAJOR < 2 + /* A no-op used to make sure we linked with Cyrus 1.5 */ + sasl_client_auth( NULL, NULL, NULL, 0, NULL, NULL ); +#endif return -1; } @@ -1371,7 +1401,7 @@ char ** slap_sasl_mechs( Connection *conn ) return NULL; } - mechs = str2charray( mechstr, "," ); + mechs = ldap_str2charray( mechstr, "," ); #if SASL_VERSION_MAJOR < 2 ch_free( mechstr ); diff --git a/servers/slapd/saslauthz.c b/servers/slapd/saslauthz.c index f9f53d85ec..7a1dd7836e 100644 --- a/servers/slapd/saslauthz.c +++ b/servers/slapd/saslauthz.c @@ -449,6 +449,7 @@ void slap_sasl2dn( Connection *conn, op.o_callback = &cb; op.o_time = slap_get_time(); op.o_do_not_cache = 1; + op.o_threadctx = conn->c_sasl_bindop->o_threadctx; (*be->be_search)( be, conn, &op, NULL, &dn, scope, LDAP_DEREF_NEVER, 1, 0, @@ -569,6 +570,7 @@ int slap_sasl_match(Connection *conn, struct berval *rule, struct berval *assert op.o_callback = &cb; op.o_time = slap_get_time(); op.o_do_not_cache = 1; + op.o_threadctx = conn->c_sasl_bindop->o_threadctx; (*be->be_search)( be, conn, &op, /*base=*/NULL, &searchbase, scope, /*deref=*/1, /*sizelimit=*/0, /*time=*/0, filter, /*fstr=*/NULL, @@ -622,7 +624,7 @@ slap_sasl_check_authz( Connection *conn, assertDN->bv_val, ad->ad_cname.bv_val, searchDN->bv_val); #endif - rc = backend_attribute( NULL, NULL, NULL, NULL, searchDN, ad, &vals ); + rc = backend_attribute( NULL, NULL, conn->c_sasl_bindop, NULL, searchDN, ad, &vals ); if( rc != LDAP_SUCCESS ) goto COMPLETE; diff --git a/servers/slapd/schema_check.c b/servers/slapd/schema_check.c index 4e1a17f920..f9b4e082b8 100644 --- a/servers/slapd/schema_check.c +++ b/servers/slapd/schema_check.c @@ -101,7 +101,7 @@ entry_schema_check( /* it's a REALLY bad idea to disable schema checks */ if( !global_schemacheck ) return LDAP_SUCCESS; - /* find the object class attribute - could error out here */ + /* find the structural object class attribute */ asc = attr_find( e->e_attrs, ad_structuralObjectClass ); if ( asc == NULL ) { #ifdef NEW_LOGGING @@ -115,7 +115,7 @@ entry_schema_check( #endif *text = "no structuralObjectClass operational attribute"; - return LDAP_OBJECT_CLASS_VIOLATION; + return LDAP_OTHER; } assert( asc->a_vals != NULL ); @@ -154,7 +154,7 @@ entry_schema_check( e->e_dn, textbuf, 0 ); #endif - return LDAP_OBJECT_CLASS_VIOLATION; + return LDAP_OTHER; } /* find the object class attribute */ @@ -179,8 +179,6 @@ entry_schema_check( rc = structural_class( aoc->a_vals, &nsc, &oc, text, textbuf, textlen ); if( rc != LDAP_SUCCESS ) { return rc; - } else if ( nsc.bv_len == 0 ) { - return LDAP_OBJECT_CLASS_VIOLATION; } *text = textbuf; @@ -193,7 +191,7 @@ entry_schema_check( } else if ( sc != oc ) { snprintf( textbuf, textlen, - "structuralObjectClass modification from '%s' to '%s' not allowed", + "structural object class modification from '%s' to '%s' not allowed", asc->a_vals[0].bv_val, nsc.bv_val ); return LDAP_NO_OBJECT_CLASS_MODS; } @@ -543,15 +541,27 @@ int structural_class( } } - if( scp ) + if( scp ) { *scp = sc; + } if( sc == NULL ) { *text = "no structural object classes provided"; return LDAP_OBJECT_CLASS_VIOLATION; } + if( scn < 0 ) { + *text = "invalid structural object class"; + return LDAP_OBJECT_CLASS_VIOLATION; + } + *scbv = ocs[scn]; + + if( scbv->bv_len == 0 ) { + *text = "invalid structural object class"; + return LDAP_OBJECT_CLASS_VIOLATION; + } + return LDAP_SUCCESS; } diff --git a/servers/slapd/schema_init.c b/servers/slapd/schema_init.c index eef80beb30..93427a0b2c 100644 --- a/servers/slapd/schema_init.c +++ b/servers/slapd/schema_init.c @@ -37,7 +37,7 @@ /* recycled matching routines */ #define bitStringMatch octetStringMatch #define numericStringMatch caseIgnoreIA5Match -#define objectIdentifierMatch caseIgnoreIA5Match +#define objectIdentifierMatch octetStringMatch #define telephoneNumberMatch caseIgnoreIA5Match #define telephoneNumberSubstringsMatch caseIgnoreIA5SubstringsMatch #define generalizedTimeMatch caseIgnoreIA5Match @@ -138,7 +138,7 @@ octetStringMatch( } /* Index generation function */ -static int octetStringIndexer( +int octetStringIndexer( slap_mask_t use, slap_mask_t flags, Syntax *syntax, @@ -186,6 +186,7 @@ static int octetStringIndexer( } keys[i].bv_val = NULL; + keys[i].bv_len = 0; *keysp = keys; @@ -193,20 +194,20 @@ static int octetStringIndexer( } /* Index generation function */ -static int octetStringFilter( +int octetStringFilter( slap_mask_t use, slap_mask_t flags, Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { size_t slen, mlen; BerVarray keys; HASH_CONTEXT HASHcontext; unsigned char HASHdigest[HASH_BYTES]; - struct berval *value = (struct berval *) assertValue; + struct berval *value = (struct berval *) assertedValue; struct berval digest; digest.bv_val = HASHdigest; digest.bv_len = sizeof(HASHdigest); @@ -231,6 +232,7 @@ static int octetStringFilter( ber_dupbv( keys, &digest ); keys[1].bv_val = NULL; + keys[1].bv_len = 0; *keysp = keys; @@ -929,7 +931,7 @@ approxFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { char *c; @@ -938,7 +940,7 @@ approxFilter( BerVarray keys; /* Yes, this is necessary */ - val = UTF8bvnormalize( ((struct berval *)assertValue), + val = UTF8bvnormalize( ((struct berval *)assertedValue), NULL, LDAP_UTF8_APPROX ); if( val == NULL || val->bv_val == NULL ) { keys = (struct berval *)ch_malloc( sizeof(struct berval) ); @@ -1068,7 +1070,7 @@ approxFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { BerVarray keys; @@ -1077,7 +1079,7 @@ approxFilter( keys = (struct berval *)ch_malloc( sizeof( struct berval * ) * 2 ); /* Yes, this is necessary */ - s = UTF8normalize( ((struct berval *)assertValue), + s = UTF8normalize( ((struct berval *)assertedValue), UTF8_NOCASEFOLD ); if( s == NULL ) { keys[0] = NULL; @@ -1333,7 +1335,7 @@ static int caseExactIgnoreFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { unsigned casefold; @@ -1353,7 +1355,7 @@ static int caseExactIgnoreFilter( casefold = ( mr != caseExactMatchingRule ) ? LDAP_UTF8_CASEFOLD : LDAP_UTF8_NOCASEFOLD; - UTF8bvnormalize( (struct berval *) assertValue, &value, casefold ); + UTF8bvnormalize( (struct berval *) assertedValue, &value, casefold ); /* This usually happens if filter contains bad UTF8 */ if( value.bv_val == NULL ) { keys = ch_malloc( sizeof( struct berval ) ); @@ -1572,7 +1574,7 @@ static int caseExactIgnoreSubstringsFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { SubstringsAssertion *sa; @@ -1589,7 +1591,7 @@ static int caseExactIgnoreSubstringsFilter( casefold = ( mr != caseExactSubstringsMatchingRule ) ? LDAP_UTF8_CASEFOLD : LDAP_UTF8_NOCASEFOLD; - sa = UTF8SubstringsassertionNormalize( assertValue, casefold ); + sa = UTF8SubstringsassertionNormalize( assertedValue, casefold ); if( sa == NULL ) { *keysp = NULL; return LDAP_SUCCESS; @@ -2021,7 +2023,7 @@ static int integerFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { size_t slen, mlen; @@ -2036,7 +2038,7 @@ static int integerFilter( slen = syntax->ssyn_oidlen; mlen = mr->smr_oidlen; - integerNormalize( syntax, assertValue, &norm ); + integerNormalize( syntax, assertedValue, &norm ); keys = ch_malloc( sizeof( struct berval ) * 2 ); @@ -2415,7 +2417,7 @@ static int caseExactIA5Filter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { size_t slen, mlen; @@ -2430,7 +2432,7 @@ static int caseExactIA5Filter( slen = syntax->ssyn_oidlen; mlen = mr->smr_oidlen; - value = (struct berval *) assertValue; + value = (struct berval *) assertedValue; keys = ch_malloc( sizeof( struct berval ) * 2 ); @@ -2621,10 +2623,10 @@ static int caseExactIA5SubstringsFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { - SubstringsAssertion *sa = assertValue; + SubstringsAssertion *sa = assertedValue; char pre; ber_len_t nkeys = 0; size_t slen, mlen, klen; @@ -3002,7 +3004,7 @@ static int caseIgnoreIA5Filter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { size_t slen, mlen; @@ -3017,7 +3019,7 @@ static int caseIgnoreIA5Filter( slen = syntax->ssyn_oidlen; mlen = mr->smr_oidlen; - ber_dupbv( &value, (struct berval *) assertValue ); + ber_dupbv( &value, (struct berval *) assertedValue ); ldap_pvt_str2lower( value.bv_val ); keys = ch_malloc( sizeof( struct berval ) * 2 ); @@ -3216,10 +3218,10 @@ static int caseIgnoreIA5SubstringsFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { - SubstringsAssertion *sa = assertValue; + SubstringsAssertion *sa = assertedValue; char pre; ber_len_t nkeys = 0; size_t slen, mlen, klen; @@ -3915,13 +3917,13 @@ static int certificateExactFilter( Syntax *syntax, MatchingRule *mr, struct berval *prefix, - void * assertValue, + void * assertedValue, BerVarray *keysp ) { BerVarray keys; struct berval asserted_serial; - serial_and_issuer_parse(assertValue, + serial_and_issuer_parse(assertedValue, &asserted_serial, NULL); diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index 15bf1e3c8f..a6833eefd9 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -17,12 +17,42 @@ #include "ldap_pvt.h" #include "ldap_pvt_uc.h" +#define OCDEBUG 0 + int schema_init_done = 0; struct slap_internal_schema slap_schema; +static int objectClassNormalize( + slap_mask_t use, + struct slap_syntax *syntax, /* NULL if in is asserted value */ + struct slap_matching_rule *mr, + struct berval * in, + struct berval * out ) +{ + ObjectClass *oc = oc_bvfind( in ); + + if( oc != NULL ) { + ber_dupbv( out, &oc->soc_cname ); + } else { + ber_dupbv( out, in ); + } + +#if OCDEBUG +#ifdef NEW_LOGGING + LDAP_LOG( CONFIG, ENTRY, + "< objectClassNormalize(%s, %s)\n", in->bv_val, out->bv_val, 0 ); +#else + Debug( LDAP_DEBUG_TRACE, "< objectClassNormalize(%s,%s)\n", + in->bv_val, out->bv_val, 0 ); +#endif +#endif + + return LDAP_SUCCESS; +} + static int -objectClassMatch( +objectSubClassMatch( int *matchp, slap_mask_t flags, Syntax *syntax, @@ -34,12 +64,12 @@ objectClassMatch( ObjectClass *oc = oc_bvfind( value ); ObjectClass *asserted = oc_bvfind( a ); -#if 1 +#if OCDEBUG #ifdef NEW_LOGGING LDAP_LOG( CONFIG, ENTRY, - "> objectClassMatch(%s, %s)\n", value->bv_val, a->bv_val, 0 ); + "> objectSubClassMatch(%s, %s)\n", value->bv_val, a->bv_val, 0 ); #else - Debug( LDAP_DEBUG_TRACE, "> objectClassMatch(%s,%s)\n", + Debug( LDAP_DEBUG_TRACE, "> objectSubClassMatch(%s,%s)\n", value->bv_val, a->bv_val, 0 ); #endif #endif @@ -66,13 +96,13 @@ objectClassMatch( *matchp = !is_object_subclass( asserted, oc ); } -#if 1 +#if OCDEBUG #ifdef NEW_LOGGING LDAP_LOG( CONFIG, ENTRY, - "< objectClassMatch(%s, %s) = %d\n", + "< objectSubClassMatch(%s, %s) = %d\n", value->bv_val, a->bv_val, *matchp ); #else - Debug( LDAP_DEBUG_TRACE, "< objectClassMatch(%s,%s) = %d\n", + Debug( LDAP_DEBUG_TRACE, "< objectSubClassMatch(%s,%s) = %d\n", value->bv_val, a->bv_val, *matchp ); #endif #endif @@ -80,65 +110,154 @@ objectClassMatch( return LDAP_SUCCESS; } -#if 1 -#define structuralObjectClassMatch objectClassMatch -#else -static int -structuralObjectClassMatch( - int *matchp, - slap_mask_t flags, - Syntax *syntax, - MatchingRule *mr, - struct berval *value, - void *assertedValue ) +static int objectSubClassIndexer( + slap_mask_t use, + slap_mask_t mask, + struct slap_syntax *syntax, + struct slap_matching_rule *mr, + struct berval *prefix, + BerVarray values, + BerVarray *keysp ) { - struct berval *a = (struct berval *) assertedValue; - ObjectClass *oc = oc_bvfind( value ); - ObjectClass *asserted = oc_bvfind( a ); + int rc, noc, i; + BerVarray ocvalues; + + for( noc=0; values[noc].bv_val != NULL; noc++ ) { + /* just count em */; + } + + /* over allocate */ + ocvalues = ch_malloc( sizeof( struct berval ) * (noc+16) ); -#if 1 + /* copy listed values (and termination) */ + for( i=0; isoc_cname; + } else { + ocvalues[i] = values[i]; + } +#if OCDEBUG #ifdef NEW_LOGGING - LDAP_LOG( CONFIG, ENTRY, - "> structuralObjectClassMatch(%s, %s)\n", value->bv_val, a->bv_val, 0 ); + LDAP_LOG( CONFIG, ENTRY, + "> objectSubClassIndexer(%d, %s)\n", + i, ocvalues[i].bv_val, 0 ); #else - Debug( LDAP_DEBUG_TRACE, "> structuralObjectClassMatch(%s,%s)\n", - value->bv_val, a->bv_val, 0 ); + Debug( LDAP_DEBUG_TRACE, + "> objectSubClassIndexer(%d, %s)\n", + i, ocvalues[i].bv_val, 0 ); #endif #endif + } - if( asserted == NULL ) { - if( OID_LEADCHAR( *a->bv_val ) ) { - /* OID form, return FALSE */ - *matchp = 1; - return LDAP_SUCCESS; - } + /* expand values */ + for( i=0; isoc_sups == NULL ) continue; + + for( j=0; oc->soc_sups[j] != NULL; j++ ) { + int found = 0; + ObjectClass *sup = oc->soc_sups[j]; + int k; - /* desc form, return undefined */ - return SLAPD_COMPARE_UNDEFINED; - } + for( k=0; ksoc_cname.bv_val ); +#else + Debug( LDAP_DEBUG_TRACE, + "= objectSubClassIndexer(%d, %s, %s)\n", + k, ocvalues[k].bv_val, sup->soc_cname.bv_val ); +#endif +#endif + if( ber_bvcmp( &ocvalues[k], &sup->soc_cname ) == 0 ) { + found++; + break; + } + } + + if( !found ) { + ocvalues = ch_realloc( ocvalues, + sizeof( struct berval ) * (noc+2) ); + + assert( k == noc ); - *matchp = ( asserted != oc ); + ocvalues[noc] = sup->soc_cname; -#if 1 + assert( ocvalues[noc].bv_val ); + assert( ocvalues[noc].bv_len ); + + noc++; + + ocvalues[noc].bv_len = 0; + ocvalues[noc].bv_val = NULL; + +#if OCDEBUG +#ifdef NEW_LOGGING + LDAP_LOG( CONFIG, ENTRY, + "< objectSubClassIndexer(%d, %d, %s)\n", + i, k, sup->soc_cname.bv_val ); +#else + Debug( LDAP_DEBUG_TRACE, + "< objectSubClassIndexer(%d, %d, %s)\n", + i, k, sup->soc_cname.bv_val ); +#endif +#endif + } + } + } + +#if 0 #ifdef NEW_LOGGING LDAP_LOG( CONFIG, ENTRY, - "< structuralObjectClassMatch( %s, %s ) = %d\n", - value->bv_val, a->bv_val, *matchp ); + "< objectSubClassIndexer(%d)\n", noc, 0, 0 ); #else - Debug( LDAP_DEBUG_TRACE, "< structuralObjectClassMatch(%s,%s) = %d\n", - value->bv_val, a->bv_val, *matchp ); + Debug( LDAP_DEBUG_TRACE, "< objectSubClassIndexer(%d)\n", + noc, 0, 0 ); #endif #endif - return LDAP_SUCCESS; + rc = octetStringIndexer( use, mask, syntax, mr, + prefix, ocvalues, keysp ); + + ch_free( ocvalues ); + return rc; } + +/* Index generation function */ +static int objectSubClassFilter( + slap_mask_t use, + slap_mask_t flags, + Syntax *syntax, + MatchingRule *mr, + struct berval *prefix, + void * assertedValue, + BerVarray *keysp ) +{ +#if OCDEBUG + struct berval *bv = (struct berval *) assertedValue; + ObjectClass *oc = oc_bvfind( bv ); + if( oc ) { + bv = &oc->soc_cname; + } + +#ifdef NEW_LOGGING + LDAP_LOG( CONFIG, ENTRY, + "< objectSubClassFilter(%s)\n", bv->bv_val, 0, 0 ); +#else + Debug( LDAP_DEBUG_TRACE, "< objectSubClassFilter(%s)\n", + bv->bv_val, 0, 0 ); +#endif #endif + return octetStringFilter( use, flags, syntax, mr, + prefix, assertedValue, keysp ); +} + static ObjectClassSchemaCheckFN rootDseObjectClass; static ObjectClassSchemaCheckFN aliasObjectClass; static ObjectClassSchemaCheckFN referralObjectClass; @@ -213,6 +332,8 @@ static struct slap_schema_ad_map { char *ssam_defn; AttributeTypeSchemaCheckFN *ssam_check; slap_mask_t ssam_flags; + slap_mr_convert_func *ssam_convert; + slap_mr_normalize_func *ssam_normalize; slap_mr_match_func *ssam_match; slap_mr_indexer_func *ssam_indexer; slap_mr_filter_func *ssam_filter; @@ -222,7 +343,9 @@ static struct slap_schema_ad_map { "DESC 'RFC2256: object classes of the entity' " "EQUALITY objectIdentifierMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", - NULL, SLAP_AT_FINAL, objectClassMatch, NULL, NULL, + NULL, SLAP_AT_FINAL, + NULL, objectClassNormalize, objectSubClassMatch, + objectSubClassIndexer, objectSubClassFilter, offsetof(struct slap_internal_schema, si_ad_objectClass) }, /* user entry operational attributes */ @@ -231,7 +354,9 @@ static struct slap_schema_ad_map { "EQUALITY objectIdentifierMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, structuralObjectClassMatch, NULL, NULL, + NULL, 0, + NULL, objectClassNormalize, objectSubClassMatch, + objectSubClassIndexer, objectSubClassFilter, offsetof(struct slap_internal_schema, si_ad_structuralObjectClass) }, { "createTimestamp", "( 2.5.18.1 NAME 'createTimestamp' " "DESC 'RFC2252: time which object was created' " @@ -239,7 +364,8 @@ static struct slap_schema_ad_map { "ORDERING generalizedTimeOrderingMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_createTimestamp) }, { "modifyTimestamp", "( 2.5.18.2 NAME 'modifyTimestamp' " "DESC 'RFC2252: time which object was last modified' " @@ -247,35 +373,40 @@ static struct slap_schema_ad_map { "ORDERING generalizedTimeOrderingMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_modifyTimestamp) }, { "creatorsName", "( 2.5.18.3 NAME 'creatorsName' " "DESC 'RFC2252: name of creator' " "EQUALITY distinguishedNameMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_creatorsName) }, { "modifiersName", "( 2.5.18.4 NAME 'modifiersName' " "DESC 'RFC2252: name of last modifier' " "EQUALITY distinguishedNameMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_modifiersName) }, { "hasSubordinates", "( 2.5.18.9 NAME 'hasSubordinates' " "DESC 'X.501: entry has children' " "EQUALITY booleanMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_hasSubordinates) }, { "subschemaSubentry", "( 2.5.18.10 NAME 'subschemaSubentry' " "DESC 'RFC2252: name of controlling subschema entry' " "EQUALITY distinguishedNameMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE " "NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_subschemaSubentry) }, { "entryUUID", "( 1.3.6.1.4.1.4203.666.1.6 NAME 'entryUUID' " @@ -283,51 +414,59 @@ static struct slap_schema_ad_map { "EQUALITY octetStringMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_entryUUID) }, { "entryCSN", "( 1.3.6.1.4.1.4203.666.1.7 NAME 'entryCSN' " "DESC 'LCUP/LDUP: change sequence number' " "EQUALITY octetStringMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{64} " "SINGLE-VALUE NO-USER-MODIFICATION USAGE directoryOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_entryCSN) }, /* root DSE attributes */ { "altServer", "( 1.3.6.1.4.1.1466.101.120.6 NAME 'altServer' " "DESC 'RFC2252: alternative servers' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_altServer) }, { "namingContexts", "( 1.3.6.1.4.1.1466.101.120.5 " "NAME 'namingContexts' " "DESC 'RFC2252: naming contexts' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_namingContexts) }, { "supportedControl", "( 1.3.6.1.4.1.1466.101.120.13 " "NAME 'supportedControl' " "DESC 'RFC2252: supported controls' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedControl) }, { "supportedExtension", "( 1.3.6.1.4.1.1466.101.120.7 " "NAME 'supportedExtension' " "DESC 'RFC2252: supported extended operations' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedExtension) }, { "supportedLDAPVersion", "( 1.3.6.1.4.1.1466.101.120.15 " "NAME 'supportedLDAPVersion' " "DESC 'RFC2252: supported LDAP versions' " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedLDAPVersion) }, { "supportedSASLMechanisms", "( 1.3.6.1.4.1.1466.101.120.14 " "NAME 'supportedSASLMechanisms' " "DESC 'RFC2252: supported SASL mechanisms'" "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedSASLMechanisms) }, { "supportedFeatures", "( 1.3.6.1.4.1.4203.1.3.5 " "NAME 'supportedFeatures' " @@ -335,7 +474,8 @@ static struct slap_schema_ad_map { "EQUALITY objectIdentifierMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_supportedFeatures) }, { "monitorContext", "( 1.3.6.1.4.1.4203.666.1.10 " "NAME 'monitorContext' " @@ -344,7 +484,8 @@ static struct slap_schema_ad_map { "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 " "SINGLE-VALUE NO-USER-MODIFICATION " "USAGE dSAOperation )", - rootDseAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + rootDseAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_monitorContext) }, { "vendorName", "( 1.3.6.1.1.4 NAME 'vendorName' " "DESC 'RFC3045: name of implementation vendor' " @@ -352,7 +493,8 @@ static struct slap_schema_ad_map { "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "SINGLE-VALUE NO-USER-MODIFICATION " "USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_vendorName) }, { "vendorVersion", "( 1.3.6.1.1.5 NAME 'vendorVersion' " "DESC 'RFC3045: version of implementation' " @@ -360,7 +502,8 @@ static struct slap_schema_ad_map { "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "SINGLE-VALUE NO-USER-MODIFICATION " "USAGE dSAOperation )", - rootDseAttribute, 0, NULL, NULL, NULL, + rootDseAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_vendorVersion) }, /* subentry attributes */ @@ -368,13 +511,15 @@ static struct slap_schema_ad_map { "EQUALITY objectIdentifierMatch " "USAGE directoryOperation " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.38 )", - administrativeRoleAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + administrativeRoleAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_administrativeRole) }, { "subtreeSpecification", "( 2.5.18.6 NAME 'subtreeSpecification' " "SINGLE-VALUE " "USAGE directoryOperation " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.45 )", - subentryAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + subentryAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_subtreeSpecification) }, /* subschema subentry attributes */ @@ -383,50 +528,58 @@ static struct slap_schema_ad_map { "EQUALITY integerFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.17 " "USAGE directoryOperation ) ", - subentryAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + subentryAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_ditStructureRules) }, { "ditContentRules", "( 2.5.21.2 NAME 'dITContentRules' " "DESC 'RFC2252: DIT content rules' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.16 USAGE directoryOperation )", - subentryAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + subentryAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_ditContentRules) }, { "matchingRules", "( 2.5.21.4 NAME 'matchingRules' " "DESC 'RFC2252: matching rules' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.30 USAGE directoryOperation )", - subentryAttribute, 0, NULL, NULL, NULL, + subentryAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_matchingRules) }, { "attributeTypes", "( 2.5.21.5 NAME 'attributeTypes' " "DESC 'RFC2252: attribute types' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.3 USAGE directoryOperation )", - subentryAttribute, 0, NULL, NULL, NULL, + subentryAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_attributeTypes) }, { "objectClasses", "( 2.5.21.6 NAME 'objectClasses' " "DESC 'RFC2252: object classes' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.37 USAGE directoryOperation )", - subentryAttribute, 0, NULL, NULL, NULL, + subentryAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_objectClasses) }, { "nameForms", "( 2.5.21.7 NAME 'nameForms' " "DESC 'RFC2252: name forms ' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.35 USAGE directoryOperation )", - subentryAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + subentryAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_nameForms) }, { "matchingRuleUse", "( 2.5.21.8 NAME 'matchingRuleUse' " "DESC 'RFC2252: matching rule uses' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.31 USAGE directoryOperation )", - subentryAttribute, SLAP_AT_HIDE, NULL, NULL, NULL, + subentryAttribute, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_matchingRuleUse) }, { "ldapSyntaxes", "( 1.3.6.1.4.1.1466.101.120.16 NAME 'ldapSyntaxes' " "DESC 'RFC2252: LDAP syntaxes' " "EQUALITY objectIdentifierFirstComponentMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.54 USAGE directoryOperation )", - subentryAttribute, 0, NULL, NULL, NULL, + subentryAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_ldapSyntaxes) }, /* knowledge information */ @@ -435,14 +588,16 @@ static struct slap_schema_ad_map { "DESC 'RFC2256: name of aliased object' " "EQUALITY distinguishedNameMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 SINGLE-VALUE )", - aliasAttribute, SLAP_AT_FINAL, NULL, NULL, NULL, + aliasAttribute, SLAP_AT_FINAL, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_aliasedObjectName) }, { "ref", "( 2.16.840.1.113730.3.1.34 NAME 'ref' " "DESC 'namedref: subordinate referral URL' " "EQUALITY caseExactMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "USAGE distributedOperation )", - referralAttribute, 0, NULL, NULL, NULL, + referralAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_ref) }, /* access control internals */ @@ -451,14 +606,16 @@ static struct slap_schema_ad_map { "DESC 'OpenLDAP ACL entry pseudo-attribute' " "SYNTAX 1.3.6.1.4.1.4203.1.1.1 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_entry) }, { "children", "( 1.3.6.1.4.1.4203.1.3.2 " "NAME 'children' " "DESC 'OpenLDAP ACL children pseudo-attribute' " "SYNTAX 1.3.6.1.4.1.4203.1.1.1 " "SINGLE-VALUE NO-USER-MODIFICATION USAGE dSAOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_children) }, { "saslAuthzTo", "( 1.3.6.1.4.1.4203.666.1.8 " "NAME 'saslAuthzTo' " @@ -466,7 +623,8 @@ static struct slap_schema_ad_map { "EQUALITY caseExactMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "USAGE distributedOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_saslAuthzTo) }, { "saslAuthzFrom", "( 1.3.6.1.4.1.4203.666.1.9 " "NAME 'saslAuthzFrom' " @@ -474,7 +632,8 @@ static struct slap_schema_ad_map { "EQUALITY caseExactMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 " "USAGE distributedOperation )", - NULL, SLAP_AT_HIDE, NULL, NULL, NULL, + NULL, SLAP_AT_HIDE, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_saslAuthzFrom) }, #ifdef SLAPD_ACI_ENABLED { "OpenLDAPaci", "( 1.3.6.1.4.1.4203.666.1.5 " @@ -483,7 +642,8 @@ static struct slap_schema_ad_map { "EQUALITY OpenLDAPaciMatch " "SYNTAX 1.3.6.1.4.1.4203.666.2.1 " "USAGE directoryOperation )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_aci) }, #endif @@ -492,25 +652,29 @@ static struct slap_schema_ad_map { "DESC 'RFC2256: common supertype of DN attributes' " "EQUALITY distinguishedNameMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.12 )", - NULL, SLAP_AT_ABSTRACT, NULL, NULL, NULL, + NULL, SLAP_AT_ABSTRACT, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_distinguishedName) }, { "name", "( 2.5.4.41 NAME 'name' " "DESC 'RFC2256: common supertype of name attributes' " "EQUALITY caseIgnoreMatch " "SUBSTR caseIgnoreSubstringsMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )", - NULL, SLAP_AT_ABSTRACT, NULL, NULL, NULL, + NULL, SLAP_AT_ABSTRACT, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_name) }, { "cn", "( 2.5.4.3 NAME ( 'cn' 'commonName' ) " "DESC 'RFC2256: common name(s) for which the entity is known by' " "SUP name )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_cn) }, { "userPassword", "( 2.5.4.35 NAME 'userPassword' " "DESC 'RFC2256/2307: password of user' " "EQUALITY octetStringMatch " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.40{128} )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_userPassword) }, #ifdef SLAPD_AUTHPASSWD @@ -520,7 +684,7 @@ static struct slap_schema_ad_map { "EQUALITY 1.3.6.1.4.1.4203.1.2.2 " "SYNTAX 1.3.6.1.4.1.4203.1.1.2 )", NULL, 0, - NULL, NULL, NULL, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_authPassword) }, { "supportedAuthPasswordSchemes", "( 1.3.6.1.4.1.4203.1.3.3 " "NAME 'supportedAuthPasswordSchemes' " @@ -528,7 +692,8 @@ static struct slap_schema_ad_map { "EQUALITY caseExactIA5Match " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{32} " "USAGE dSAOperation )", - subschemaAttribute, 0, NULL, NULL, NULL, + subschemaAttribute, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_authPassword) }, #endif #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND @@ -538,7 +703,8 @@ static struct slap_schema_ad_map { "EQUALITY caseIgnoreIA5Match " "SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 " "SINGLE-VALUE )", - NULL, 0, NULL, NULL, NULL, + NULL, 0, + NULL, NULL, NULL, NULL, NULL, offsetof(struct slap_internal_schema, si_ad_krbName) }, #endif @@ -678,9 +844,32 @@ slap_schema_load( void ) /* install flags */ (*adp)->ad_type->sat_flags |= ad_map[i].ssam_flags; - if( ad_map[i].ssam_match ) { - /* install custom matching routine */ - (*adp)->ad_type->sat_equality->smr_match = ad_map[i].ssam_match; + /* install custom rule routine */ + if( ad_map[i].ssam_convert || + ad_map[i].ssam_normalize || + ad_map[i].ssam_match || + ad_map[i].ssam_indexer || + ad_map[i].ssam_filter ) + { + MatchingRule *mr = ch_malloc( sizeof( MatchingRule ) ); + *mr = *(*adp)->ad_type->sat_equality; + (*adp)->ad_type->sat_equality = mr; + + if( ad_map[i].ssam_convert ) { + mr->smr_convert = ad_map[i].ssam_convert; + } + if( ad_map[i].ssam_normalize ) { + mr->smr_normalize = ad_map[i].ssam_normalize; + } + if( ad_map[i].ssam_match ) { + mr->smr_match = ad_map[i].ssam_match; + } + if( ad_map[i].ssam_indexer ) { + mr->smr_indexer = ad_map[i].ssam_indexer; + } + if( ad_map[i].ssam_filter ) { + mr->smr_filter = ad_map[i].ssam_filter; + } } } } diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index e02ef73970..86a324d736 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -505,7 +505,8 @@ typedef int (ObjectClassSchemaCheckFN)( char *textbuf, size_t textlen ); typedef struct slap_object_class { - LDAPObjectClass soc_oclass; + LDAPObjectClass soc_oclass; + struct berval soc_cname; struct slap_object_class **soc_sups; AttributeType **soc_required; AttributeType **soc_allowed; @@ -1500,6 +1501,7 @@ typedef struct slap_paged_state { typedef struct slap_op { unsigned long o_opid; /* id of this operation */ unsigned long o_connid; /* id of conn initiating this op */ + struct slap_conn *o_conn; /* connection spawning this op */ ber_int_t o_msgid; /* msgid of the request */ ber_int_t o_protocol; /* version of the LDAP protocol used by client */ @@ -1534,6 +1536,7 @@ typedef struct slap_op { slap_callback *o_callback; /* callback pointers */ LDAPControl **o_ctrls; /* controls */ + void *o_threadctx; /* thread pool thread context */ void *o_private; /* anything the backend needs */ LDAP_STAILQ_ENTRY(slap_op) o_next; /* next operation in list */ @@ -1609,6 +1612,7 @@ typedef struct slap_conn { int c_sasl_layers; /* true if we need to install SASL i/o handlers */ void *c_sasl_context; /* SASL session context */ void *c_sasl_extra; /* SASL session extra stuff */ + struct slap_op *c_sasl_bindop; /* set to current op if it's a bind */ PagedResultsState c_pagedresults_state; /* paged result state */ diff --git a/servers/slapd/value.c b/servers/slapd/value.c index 002a105ab3..3aa2adfa50 100644 --- a/servers/slapd/value.c +++ b/servers/slapd/value.c @@ -53,6 +53,36 @@ value_add( return LDAP_SUCCESS; } +int +value_add_one( + BerVarray *vals, + struct berval *addval +) +{ + int n; + BerVarray v2; + + if ( *vals == NULL ) { + *vals = (BerVarray) ch_malloc( 2 * sizeof(struct berval) ); + n = 0; + } else { + for ( n = 0; (*vals)[n].bv_val != NULL; n++ ) { + ; /* Empty */ + } + *vals = (BerVarray) ch_realloc( (char *) *vals, + (n + 2) * sizeof(struct berval) ); + } + + v2 = *vals + n; + ber_dupbv(v2, addval); + + v2++; + v2->bv_val = NULL; + v2->bv_len = 0; + + return LDAP_SUCCESS; +} + int value_validate( MatchingRule *mr, diff --git a/tests/data/acl.out.master b/tests/data/acl.out.master index 4bef01e521..0300c166c4 100644 --- a/tests/data/acl.out.master +++ b/tests/data/acl.out.master @@ -1,141 +1,103 @@ -dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson cn: James A Jones 1 cn: James Jones cn: Jim Jones sn: Jones -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jaj -krbname: jaj@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 homephone: +1 313 555 4772 -multilinedescription: Outstanding +description: Outstanding title: Mad Cow Researcher, UM Alumni Association pager: +1 313 555 3923 mail: jaj@mail.alumni.umich.edu -modifytimestamp: 960404171231Z -modifiersname: cn=Manager,o=University of Michigan,c=US facsimiletelephonenumber: +1 313 555 4332 telephonenumber: +1 313 555 0895 + dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Un - iversity of Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup +description: Everyone in the sample data +objectclass: groupofnames dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames -dn: ou=Alumni Association, ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Alumni Association -dn: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Univer - sity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit + y of Michigan,c=US +objectclass: OpenLDAPperson cn: Barbara Jensen cn: Babs Jensen sn: Jensen +uid: bjensen title: Mythical Manager, Research Systems postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann Arbor, MI 48103-4943 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: bjensen +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US mail: bjensen@mailgw.umich.edu homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 -krbname: bjensen@umich.edu -multilinedescription: Mythical manager of the rsdd unix project -nobatchupdates: TRUE -notice: Off sailing this month. -onvacation: FALSE -labeledurl: http://www.umich.edu/ U-M Home Page +description: Mythical manager of the rsdd unix project drink: water -lastmodifiedtime: 960404035839Z -lastmodifiedby: cn=Barbara Jensen, ou=Information Technology Division, ou=Peop - le, o=University of Michigan, c=US homephone: +1 313 555 2333 pager: +1 313 555 3233 facsimiletelephonenumber: +1 313 555 2274 telephonenumber: +1 313 555 9022 -dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +objectclass: OpenLDAPperson cn: Bjorn Jensen cn: Biiff Jensen sn: Jensen -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: bjorn -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 drink: Iced Tea -multilinedescription: Hiker, biker +description: Hiker, biker title: Director, Embedded Systems postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 mail: bjorn@mailgw.umich.edu @@ -144,126 +106,84 @@ pager: +1 313 555 4474 facsimiletelephonenumber: +1 313 555 2177 telephonenumber: +1 313 555 0355 -dn: ou=Groups, o=University of Michigan, c=US -objectclass: top +dn: ou=Groups,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Groups -lastmodifiedtime: 950120182331Z -lastmodifiedby: cn=manager, o=university of michigan, c=US -dn: ou=Information Technology Division, ou=People, o=University of Michigan, c - =US -objectclass: top +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject -ou: Information Technology Divisio +ou: Information Technology Division dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All ITD Staff +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff cn: ITD Staff -joinable: FALSE -objectclass: rfc822mailgroup -member: cn=Manager, o=University of Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -labeledurl: http://www.itd.umich.edu ITD Home Page - University of Michigan,c=US -telephonenumber: +1 810 555 1212 +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +ou: Groups -dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=Unive - rsity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Universi + ty of Michigan,c=US +objectclass: OpenLDAPperson cn: James A Jones 2 cn: James Jones cn: Jim Jones sn: Doe -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jjones -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 933 Brooks $ Ann Arbor, MI 48104 homephone: +1 313 555 8838 title: Senior Manager, Information Technology Division -multilinedescription: Not around very much +description: Not around very much mail: jjones@mailgw.umich.edu postaladdress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 pager: +1 313 555 2833 facsimiletelephonenumber: +1 313 555 8688 telephonenumber: +1 313 555 7334 -dn: cn=John Doe, ou=Information Technology Division, ou=People, o=University o - f Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University of M + ichigan,c=US +objectclass: OpenLDAPperson cn: John Doe cn: Jonathon Doe sn: Doe -postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: johnd -krbname: johnd@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 912 East Bllvd $ Ann Arbor, MI 48104 title: System Administrator, Information Technology Division -multilinedescription: overworked! +description: overworked! mail: johnd@mailgw.umich.edu homephone: +1 313 555 3774 pager: +1 313 555 6573 facsimiletelephonenumber: +1 313 555 4544 telephonenumber: +1 313 555 9394 -dn: cn=Manager, o=University of Michigan, c=US -objectclass: top +dn: cn=Manager,o=University of Michigan,c=US objectclass: person -objectclass: quipuObject -objectclass: kerberosSecurityObject cn: Manager cn: Directory Manager cn: Dir Man sn: Manager description: Manager of the directory -lastmodifiedtime: 951212214144Z -lastmodifiedby: cn=Manager, o=University of Michigan, c=US -krbname: bjensen@umich.edu -dn: ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: People -dn: o=University of Michigan, c=US -objectclass: top +dn: o=University of Michigan,c=US objectclass: organization objectclass: domainRelatedObject -objectclass: quipuObject -objectclass: quipuNonLeafObject l: Ann Arbor, Michigan st: Michigan -streetaddress: 535 West William St. o: University of Michigan o: UMICH o: UM @@ -271,8 +191,7 @@ o: U-M o: U of M description: The University of Michigan at Ann Arbor postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 - 09 $ USpostalcode: 48109 + 09 $ US telephonenumber: +1 313 764-1817 -lastmodifiedtime: 930106182800Z -lastmodifiedby: cn=manager, o=university of michigan, c=US associateddomain: umich.edu + diff --git a/tests/data/do_add.1 b/tests/data/do_add.1 new file mode 100644 index 0000000000..f54182d170 --- /dev/null +++ b/tests/data/do_add.1 @@ -0,0 +1,19 @@ +cn=James A Jones 2,ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 2 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/do_add.2 b/tests/data/do_add.2 new file mode 100644 index 0000000000..728823de7f --- /dev/null +++ b/tests/data/do_add.2 @@ -0,0 +1,19 @@ +cn=James A Jones 3,ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 3 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/do_add.3 b/tests/data/do_add.3 new file mode 100644 index 0000000000..f0d4d26b27 --- /dev/null +++ b/tests/data/do_add.3 @@ -0,0 +1,19 @@ +cn=James A Jones 4,ou=People,o=University of Michigan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 4 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/do_add.4 b/tests/data/do_add.4 new file mode 100644 index 0000000000..9dc9e4ad34 --- /dev/null +++ b/tests/data/do_add.4 @@ -0,0 +1,19 @@ +cn=James A Jones 5,o=University of Michigan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 5 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/lang-out.ldif b/tests/data/lang-out.ldif new file mode 100644 index 0000000000..45d1a1580f --- /dev/null +++ b/tests/data/lang-out.ldif @@ -0,0 +1,34 @@ +dn: o=University of Michigan,c=US +objectClass: organization +objectClass: extensibleObject +o: University of Michigan +o;lang-x;lang-xx;lang-yy;lang-z;lang-y;lang-zz: University of Michigan +name;lang-en-us: Billy Ray +name;lang-en-us: Billy Bob +cn;lang-en-us: Billy Ray +name: Billy Ray +sn;lang-en-gb;lang-en-us: Billy Ray +sn: Ray + +dn: o=University of Michigan,c=US +o: University of Michigan +o;lang-x;lang-xx;lang-yy;lang-z;lang-y;lang-zz: University of Michigan +name;lang-en-us: Billy Ray +name;lang-en-us: Billy Bob +cn;lang-en-us: Billy Ray +name: Billy Ray +sn;lang-en-gb;lang-en-us: Billy Ray +sn: Ray + +dn: o=University of Michigan,c=US +name;lang-en-us: Billy Ray +name;lang-en-us: Billy Bob +cn;lang-en-us: Billy Ray +sn;lang-en-gb;lang-en-us: Billy Ray + +dn: o=University of Michigan,c=US +name;lang-en-us: Billy Ray +name;lang-en-us: Billy Bob +cn;lang-en-us: Billy Ray +sn;lang-en-gb;lang-en-us: Billy Ray + diff --git a/tests/data/modify.out.master b/tests/data/modify.out.master index 7147534100..7a29e3f54b 100644 --- a/tests/data/modify.out.master +++ b/tests/data/modify.out.master @@ -1,94 +1,64 @@ dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup -modifiersname: cn=Manager,o=University of Michigan,c=US +description: Everyone in the sample data +objectclass: groupofnames +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames -dn: ou=Alumni Association, ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Alumni Association -dn: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Univer - sity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit + y of Michigan,c=US +objectclass: OpenLDAPperson cn: Barbara Jensen cn: Babs Jensen sn: Jensen +uid: bjensen title: Mythical Manager, Research Systems postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann Arbor, MI 48103-4943 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: bjensen -userpassword: bjensen +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: YmplbnNlbg== mail: bjensen@mailgw.umich.edu homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 -krbname: bjensen@umich.edu -multilinedescription: Mythical manager of the rsdd unix project -nobatchupdates: TRUE -notice: Off sailing this month. -onvacation: FALSE -labeledurl: http://www.umich.edu/ U-M Home Page +description: Mythical manager of the rsdd unix project drink: water -lastmodifiedtime: 960404035839Z -lastmodifiedby: cn=Barbara Jensen, ou=Information Technology Division, ou=Peop - le, o=University of Michigan, c=US -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 2333 pager: +1 313 555 3233 facsimiletelephonenumber: +1 313 555 2274 telephonenumber: +1 313 555 9022 -dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +objectclass: OpenLDAPperson cn: Bjorn Jensen cn: Biiff Jensen sn: Jensen -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: bjorn -userpassword: bjorn -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: Ympvcm4= homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 title: Director, Embedded Systems postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 @@ -97,262 +67,177 @@ homephone: +1 313 555 5444 pager: +1 313 555 4474 facsimiletelephonenumber: +1 313 555 2177 telephonenumber: +1 313 555 0355 -modifiersname: cn=Manager,o=University of Michigan,c=US -multilinedescription: The replaced multiLineDescription $ Blah Woof. +description: The replaced multiLineDescription $ Blah Woof. drink: Iced Tea drink: Mad Dog 20/20 -dn: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson cn: Dorothy Stevens cn: Dot Stevens sn: Stevens +uid: dots title: Secretary, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: dots -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US drink: Lemonade homepostaladdress: 377 White St. Apt. 3 $ Ann Arbor, MI 48104 -multilinedescription: Very tall +description: Very tall facsimiletelephonenumber: +1 313 555 3223 telephonenumber: +1 313 555 3664 mail: dots@mail.alumni.umich.edu -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 0454 -dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=Universit - y of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Gern Jensen,ou=Information Technology Division,ou=People,o=University o + f Michigan,c=US +objectclass: OpenLDAPperson cn: Gern Jensen +sn: Jensen +uid: gjensen title: Chief Investigator, ITD postaladdress: ITD $ 535 W. William St $ Ann Arbor, MI 48103 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: gjensen -krbname: gjensen@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US drink: Coffee homepostaladdress: 844 Brown St. Apt. 4 $ Ann Arbor, MI 48104 -multilinedescription: Very odd +description: Very odd facsimiletelephonenumber: +1 313 555 7557 telephonenumber: +1 313 555 8343 mail: gjensen@mailgw.umich.edu homephone: +1 313 555 8844 -creatorsname: cn=Manager,o=University of Michigan,c=US -dn: ou=Groups, o=University of Michigan, c=US -objectclass: top +dn: ou=Groups,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Groups -lastmodifiedtime: 950120182331Z -lastmodifiedby: cn=manager, o=university of michigan, c=US -dn: ou=Information Technology Division, ou=People, o=University of Michigan, c - =US -objectclass: top +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject -ou: Information Technology Divisio +ou: Information Technology Division dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All ITD Staff +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff cn: ITD Staff -joinable: FALSE -objectclass: rfc822mailgroup -member: cn=Manager, o=University of Michigan, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -labeledurl: http://www.itd.umich.edu ITD Home Page -modifiersname: cn=Manager,o=University of Michigan,c=US +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US -dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson cn: James A Jones 1 cn: James Jones cn: Jim Jones sn: Jones -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jaj -krbname: jaj@umich.edu -userpassword: jaj -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 homephone: +1 313 555 4772 -multilinedescription: Outstanding +description: Outstanding title: Mad Cow Researcher, UM Alumni Association pager: +1 313 555 3923 mail: jaj@mail.alumni.umich.edu facsimiletelephonenumber: +1 313 555 4332 telephonenumber: +1 313 555 0895 -modifiersname: cn=Manager,o=University of Michigan,c=US drink: Orange Juice -dn: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michigan, c - =US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: OpenLDAPperson cn: Jane Doe cn: Jane Alverson sn: Doe +uid: jdoe title: Programmer Analyst, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: jdoe +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE drink: diet coke -multilinedescription: Enthusiastic +description: Enthusiastic mail: jdoe@woof.net -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 5445 pager: +1 313 555 1220 facsimiletelephonenumber: +1 313 555 2311 telephonenumber: +1 313 555 4774 -dn: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of Michi - gan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michigan + ,c=US +objectclass: OpenLDAPperson cn: Jennifer Smith cn: Jen Smith sn: Smith -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jen -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US drink: Sam Adams homepostaladdress: 1000 Maple #44 $ Ann Arbor, MI 48103 title: Telemarketer, UM Alumni Association mail: jen@mail.alumni.umich.edu -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 2333 pager: +1 313 555 6442 facsimiletelephonenumber: +1 313 555 2756 telephonenumber: +1 313 555 8232 -dn: cn=John Doe, ou=Information Technology Division, ou=People, o=University o - f Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University of M + ichigan,c=US +objectclass: OpenLDAPperson cn: John Doe cn: Jonathon Doe sn: Doe -postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: johnd -krbname: johnd@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 912 East Bllvd $ Ann Arbor, MI 48104 title: System Administrator, Information Technology Division -multilinedescription: overworked! +description: overworked! mail: johnd@mailgw.umich.edu -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 3774 pager: +1 313 555 6573 facsimiletelephonenumber: +1 313 555 4544 telephonenumber: +1 313 555 9394 -dn: cn=Manager, o=University of Michigan, c=US -objectclass: top +dn: cn=Manager,o=University of Michigan,c=US objectclass: person -objectclass: quipuObject -objectclass: kerberosSecurityObject cn: Manager cn: Directory Manager cn: Dir Man sn: Manager description: Manager of the directory -userpassword: secret -lastmodifiedtime: 951212214144Z -lastmodifiedby: cn=Manager, o=University of Michigan, c=US -krbname: bjensen@umich.edu +userpassword:: c2VjcmV0 -dn: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Michigan - , c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan,c= + US +objectclass: OpenLDAPperson cn: Mark Elliot cn: Mark A Elliot sn: Elliot -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: melliot -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 199 Outer Drive $ Ypsilanti, MI 48198 homephone: +1 313 555 0388 drink: Gasoline title: Director, UM Alumni Association mail: melliot@mail.alumni.umich.edu -modifiersname: cn=Manager,o=University of Michigan,c=US pager: +1 313 555 7671 facsimiletelephonenumber: +1 313 555 7762 telephonenumber: +1 313 555 4177 -dn: ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: People -dn: o=University of Michigan, c=US -objectclass: top +dn: o=University of Michigan,c=US objectclass: organization objectclass: domainRelatedObject -objectclass: quipuObject -objectclass: quipuNonLeafObject l: Ann Arbor, Michigan st: Michigan -streetaddress: 535 West William St. o: University of Michigan o: UMICH o: UM @@ -360,32 +245,23 @@ o: U-M o: U of M description: The University of Michigan at Ann Arbor postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 - 09 $ USpostalcode: 48109 + 09 $ US telephonenumber: +1 313 764-1817 -lastmodifiedtime: 930106182800Z -lastmodifiedby: cn=manager, o=university of michigan, c=US associateddomain: umich.edu -dn: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson cn: Ursula Hampster sn: Hampster +uid: uham title: Secretary, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: uham +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE mail: uham@mail.alumni.umich.edu -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 8421 pager: +1 313 555 2844 facsimiletelephonenumber: +1 313 555 9700 telephonenumber: +1 313 555 5331 + diff --git a/tests/data/modrdn.out.master b/tests/data/modrdn.out.master new file mode 100644 index 0000000000..d0cf29c272 --- /dev/null +++ b/tests/data/modrdn.out.master @@ -0,0 +1,289 @@ +dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +cn: All Staff +description: Everyone in the sample data +objectclass: groupofnames + +dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff +cn: Alumni Assoc Staff +objectclass: groupofnames + +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: Alumni Association + +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Univer + sity of Michigan,c=US +objectclass: OpenLDAPperson +cn: Barbara Jensen +cn: Babs Jensen +sn: Jensen +uid: bjensen +title: Mythical Manager, Research Systems +postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann + Arbor, MI 48103-4943 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: YmplbnNlbg== +mail: bjensen@mailgw.umich.edu +homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 +description: Mythical manager of the rsdd unix project +drink: water +homephone: +1 313 555 2333 +pager: +1 313 555 3233 +facsimiletelephonenumber: +1 313 555 2274 +telephonenumber: +1 313 555 9022 + +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Universi + ty of Michigan,c=US +objectclass: OpenLDAPperson +cn: Bjorn Jensen +cn: Biiff Jensen +sn: Jensen +uid: bjorn +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: Ympvcm4= +homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 +drink: Iced Tea +description: Hiker, biker +title: Director, Embedded Systems +postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 +mail: bjorn@mailgw.umich.edu +homephone: +1 313 555 5444 +pager: +1 313 555 4474 +facsimiletelephonenumber: +1 313 555 2177 +telephonenumber: +1 313 555 0355 + +dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +objectclass: OpenLDAPperson +cn: Dorothy Stevens +cn: Dot Stevens +sn: Stevens +uid: dots +title: Secretary, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Lemonade +homepostaladdress: 377 White St. Apt. 3 $ Ann Arbor, MI 48104 +description: Very tall +facsimiletelephonenumber: +1 313 555 3223 +telephonenumber: +1 313 555 3664 +mail: dots@mail.alumni.umich.edu +homephone: +1 313 555 0454 + +dn: ou=Groups,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: Groups + +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c + =US +objectclass: organizationalUnit +ou: Information Technology Division + +dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff +cn: ITD Staff +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US + +dn: cn=James A Jones II,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +objectclass: OpenLDAPperson +cn: James Jones +cn: Jim Jones +cn: James A Jones II +sn: Doe +uid: jjones +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 933 Brooks $ Ann Arbor, MI 48104 +homephone: +1 313 555 8838 +title: Senior Manager, Information Technology Division +description: Not around very much +mail: jjones@mailgw.umich.edu +postaladdress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 +pager: +1 313 555 2833 +facsimiletelephonenumber: +1 313 555 8688 +telephonenumber: +1 313 555 7334 + +dn: cn=James A Jones III,ou=Alumni Association,ou=People,o=University of Mi + chigan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +cn: James A Jones III +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + +dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +objectclass: OpenLDAPperson +cn: Jane Doe +cn: Jane Alverson +sn: Doe +uid: jdoe +title: Programmer Analyst, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 +drink: diet coke +description: Enthusiastic +mail: jdoe@woof.net +homephone: +1 313 555 5445 +pager: +1 313 555 1220 +facsimiletelephonenumber: +1 313 555 2311 +telephonenumber: +1 313 555 4774 + +dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michi + gan,c=US +objectclass: OpenLDAPperson +cn: Jennifer Smith +cn: Jen Smith +sn: Smith +uid: jen +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Sam Adams +homepostaladdress: 1000 Maple #44 $ Ann Arbor, MI 48103 +title: Telemarketer, UM Alumni Association +mail: jen@mail.alumni.umich.edu +homephone: +1 313 555 2333 +pager: +1 313 555 6442 +facsimiletelephonenumber: +1 313 555 2756 +telephonenumber: +1 313 555 8232 + +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University o + f Michigan,c=US +objectclass: OpenLDAPperson +cn: John Doe +cn: Jonathon Doe +sn: Doe +uid: johnd +postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 912 East Bllvd $ Ann Arbor, MI 48104 +title: System Administrator, Information Technology Division +description: overworked! +mail: johnd@mailgw.umich.edu +homephone: +1 313 555 3774 +pager: +1 313 555 6573 +facsimiletelephonenumber: +1 313 555 4544 +telephonenumber: +1 313 555 9394 + +dn: cn=Manager,o=University of Michigan,c=US +objectclass: person +cn: Manager +cn: Directory Manager +cn: Dir Man +sn: Manager +description: Manager of the directory +userpassword:: c2VjcmV0 + +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan + ,c=US +objectclass: OpenLDAPperson +cn: Mark Elliot +cn: Mark A Elliot +sn: Elliot +uid: melliot +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 199 Outer Drive $ Ypsilanti, MI 48198 +homephone: +1 313 555 0388 +drink: Gasoline +title: Director, UM Alumni Association +mail: melliot@mail.alumni.umich.edu +pager: +1 313 555 7671 +facsimiletelephonenumber: +1 313 555 7762 +telephonenumber: +1 313 555 4177 + +dn: ou=People,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: People + +dn: o=University of Michigan,c=US +objectclass: organization +objectclass: domainRelatedObject +l: Ann Arbor, Michigan +st: Michigan +o: University of Michigan +o: UMICH +o: UM +o: U-M +o: U of M +description: The University of Michigan at Ann Arbor +postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 + 09 $ US +telephonenumber: +1 313 764-1817 +associateddomain: umich.edu + +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +objectclass: OpenLDAPperson +cn: Ursula Hampster +sn: Hampster +uid: uham +title: Secretary, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 +mail: uham@mail.alumni.umich.edu +homephone: +1 313 555 8421 +pager: +1 313 555 2844 +facsimiletelephonenumber: +1 313 555 9700 +telephonenumber: +1 313 555 5331 + diff --git a/tests/data/modrdn.out.master.0 b/tests/data/modrdn.out.master.0 new file mode 100644 index 0000000000..58e584d961 --- /dev/null +++ b/tests/data/modrdn.out.master.0 @@ -0,0 +1,287 @@ +dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +cn: All Staff +description: Everyone in the sample data +objectclass: groupofnames + +dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff +cn: Alumni Assoc Staff +objectclass: groupofnames + +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: Alumni Association + +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit + y of Michigan,c=US +objectclass: OpenLDAPperson +cn: Barbara Jensen +cn: Babs Jensen +sn: Jensen +uid: bjensen +title: Mythical Manager, Research Systems +postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann + Arbor, MI 48103-4943 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: YmplbnNlbg== +mail: bjensen@mailgw.umich.edu +homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 +description: Mythical manager of the rsdd unix project +drink: water +homephone: +1 313 555 2333 +pager: +1 313 555 3233 +facsimiletelephonenumber: +1 313 555 2274 +telephonenumber: +1 313 555 9022 + +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +objectclass: OpenLDAPperson +cn: Bjorn Jensen +cn: Biiff Jensen +sn: Jensen +uid: bjorn +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: Ympvcm4= +homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 +drink: Iced Tea +description: Hiker, biker +title: Director, Embedded Systems +postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 +mail: bjorn@mailgw.umich.edu +homephone: +1 313 555 5444 +pager: +1 313 555 4474 +facsimiletelephonenumber: +1 313 555 2177 +telephonenumber: +1 313 555 0355 + +dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson +cn: Dorothy Stevens +cn: Dot Stevens +sn: Stevens +uid: dots +title: Secretary, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Lemonade +homepostaladdress: 377 White St. Apt. 3 $ Ann Arbor, MI 48104 +description: Very tall +facsimiletelephonenumber: +1 313 555 3223 +telephonenumber: +1 313 555 3664 +mail: dots@mail.alumni.umich.edu +homephone: +1 313 555 0454 + +dn: ou=Groups,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: Groups + +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: Information Technology Division + +dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff +cn: ITD Staff +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US + +dn: cn=James A Jones II,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +objectclass: OpenLDAPperson +cn: James Jones +cn: Jim Jones +cn: James A Jones II +sn: Doe +uid: jjones +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 933 Brooks $ Ann Arbor, MI 48104 +homephone: +1 313 555 8838 +title: Senior Manager, Information Technology Division +description: Not around very much +mail: jjones@mailgw.umich.edu +postaladdress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 +pager: +1 313 555 2833 +facsimiletelephonenumber: +1 313 555 8688 +telephonenumber: +1 313 555 7334 + +dn: cn=James A Jones III,ou=Alumni Association,ou=People,o=University of Michi + gan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +cn: James A Jones III +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + +dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectclass: OpenLDAPperson +cn: Jane Doe +cn: Jane Alverson +sn: Doe +uid: jdoe +title: Programmer Analyst, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 +drink: diet coke +description: Enthusiastic +mail: jdoe@woof.net +homephone: +1 313 555 5445 +pager: +1 313 555 1220 +facsimiletelephonenumber: +1 313 555 2311 +telephonenumber: +1 313 555 4774 + +dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michigan + ,c=US +objectclass: OpenLDAPperson +cn: Jennifer Smith +cn: Jen Smith +sn: Smith +uid: jen +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Sam Adams +homepostaladdress: 1000 Maple #44 $ Ann Arbor, MI 48103 +title: Telemarketer, UM Alumni Association +mail: jen@mail.alumni.umich.edu +homephone: +1 313 555 2333 +pager: +1 313 555 6442 +facsimiletelephonenumber: +1 313 555 2756 +telephonenumber: +1 313 555 8232 + +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University of M + ichigan,c=US +objectclass: OpenLDAPperson +cn: John Doe +cn: Jonathon Doe +sn: Doe +uid: johnd +postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 912 East Bllvd $ Ann Arbor, MI 48104 +title: System Administrator, Information Technology Division +description: overworked! +mail: johnd@mailgw.umich.edu +homephone: +1 313 555 3774 +pager: +1 313 555 6573 +facsimiletelephonenumber: +1 313 555 4544 +telephonenumber: +1 313 555 9394 + +dn: cn=Manager,o=University of Michigan,c=US +objectclass: person +cn: Manager +cn: Directory Manager +cn: Dir Man +sn: Manager +description: Manager of the directory +userpassword:: c2VjcmV0 + +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan,c= + US +objectclass: OpenLDAPperson +cn: Mark Elliot +cn: Mark A Elliot +sn: Elliot +uid: melliot +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 199 Outer Drive $ Ypsilanti, MI 48198 +homephone: +1 313 555 0388 +drink: Gasoline +title: Director, UM Alumni Association +mail: melliot@mail.alumni.umich.edu +pager: +1 313 555 7671 +facsimiletelephonenumber: +1 313 555 7762 +telephonenumber: +1 313 555 4177 + +dn: ou=People,o=University of Michigan,c=US +objectclass: organizationalUnit +ou: People + +dn: o=University of Michigan,c=US +objectclass: organization +objectclass: domainRelatedObject +l: Ann Arbor, Michigan +st: Michigan +o: University of Michigan +o: UMICH +o: UM +o: U-M +o: U of M +description: The University of Michigan at Ann Arbor +postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 + 09 $ US +telephonenumber: +1 313 764-1817 +associateddomain: umich.edu + +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson +cn: Ursula Hampster +sn: Hampster +uid: uham +title: Secretary, UM Alumni Association +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 +mail: uham@mail.alumni.umich.edu +homephone: +1 313 555 8421 +pager: +1 313 555 2844 +facsimiletelephonenumber: +1 313 555 9700 +telephonenumber: +1 313 555 5331 + diff --git a/tests/data/modrdn.out.master.1 b/tests/data/modrdn.out.master.1 new file mode 100644 index 0000000000..c99c1e369a --- /dev/null +++ b/tests/data/modrdn.out.master.1 @@ -0,0 +1,21 @@ +dn: cn=James A Jones III,ou=Alumni Association,ou=People,o=University of Michi + gan,c=US +objectclass: OpenLDAPperson +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +cn: James A Jones III +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/modrdn.out.master.2 b/tests/data/modrdn.out.master.2 new file mode 100644 index 0000000000..61dd866822 --- /dev/null +++ b/tests/data/modrdn.out.master.2 @@ -0,0 +1,19 @@ +dn: cn=James A Jones II,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +objectclass: OpenLDAPperson +cn: James Jones +cn: Jim Jones +cn: James A Jones II +sn: Doe +uid: jjones +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homepostaladdress: 933 Brooks $ Ann Arbor, MI 48104 +homephone: +1 313 555 8838 +title: Senior Manager, Information Technology Division +description: Not around very much +mail: jjones@mailgw.umich.edu +postaladdress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 +pager: +1 313 555 2833 +facsimiletelephonenumber: +1 313 555 8688 +telephonenumber: +1 313 555 7334 + diff --git a/tests/data/modrdn.out.master.3 b/tests/data/modrdn.out.master.3 new file mode 100644 index 0000000000..7b8474b8d3 --- /dev/null +++ b/tests/data/modrdn.out.master.3 @@ -0,0 +1,20 @@ +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq +homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homephone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimiletelephonenumber: +1 313 555 4332 +telephonenumber: +1 313 555 0895 + diff --git a/tests/data/passwd.ldif b/tests/data/passwd.ldif index 221af87ea2..a8768b095f 100644 --- a/tests/data/passwd.ldif +++ b/tests/data/passwd.ldif @@ -1,31 +1,26 @@ dn: o=University of Michigan,c=US -objectclass: top objectclass: organization o: University of Michigan dn: cn=md5,o=University of Michigan,c=US -objectclass: top objectclass: person cn: md5 sn: md5 userpassword:: e01ENX1YcjRpbE96UTRQQ09xM2FRMHFidWFRPT0= dn: cn=smd5,o=University of Michigan,c=US -objectclass: top objectclass: person cn: smd5 sn: smd5 userpassword: secret dn: cn=sha,o=University of Michigan,c=US -objectclass: top objectclass: person cn: sha sn: sha userpassword:: e1NIQX01ZW42RzZNZXpScm9UM1hLcWtkUE9tWS9CZlE9 dn: cn=ssha,o=University of Michigan,c=US -objectclass: top objectclass: person cn: ssha sn: ssha diff --git a/tests/data/search.out.master b/tests/data/search.out.master index 52619e9837..3614047aea 100644 --- a/tests/data/search.out.master +++ b/tests/data/search.out.master @@ -1,334 +1,258 @@ -dn: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Univer - sity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit + y of Michigan,c=US +objectclass: OpenLDAPperson cn: Barbara Jensen cn: Babs Jensen sn: Jensen +uid: bjensen title: Mythical Manager, Research Systems postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann Arbor, MI 48103-4943 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: bjensen -userpassword: bjensen +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: YmplbnNlbg== mail: bjensen@mailgw.umich.edu homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 -krbname: bjensen@umich.edu -multilinedescription: Mythical manager of the rsdd unix project -nobatchupdates: TRUE -notice: Off sailing this month. -onvacation: FALSE -labeledurl: http://www.umich.edu/ U-M Home Page +description: Mythical manager of the rsdd unix project drink: water -lastmodifiedtime: 960404035839Z -lastmodifiedby: cn=Barbara Jensen, ou=Information Technology Division, ou=Peop - le, o=University of Michigan, c=US -modifytimestamp: 960404171405Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 2333 pager: +1 313 555 3233 facsimiletelephonenumber: +1 313 555 2274 telephonenumber: +1 313 555 9022 -dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +objectclass: OpenLDAPperson cn: Bjorn Jensen cn: Biiff Jensen sn: Jensen -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: bjorn -userpassword: bjorn -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: Ympvcm4= homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 drink: Iced Tea -multilinedescription: Hiker, biker +description: Hiker, biker title: Director, Embedded Systems postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 mail: bjorn@mailgw.umich.edu -modifytimestamp: 960404171424Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 5444 pager: +1 313 555 4474 facsimiletelephonenumber: +1 313 555 2177 telephonenumber: +1 313 555 0355 + dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Un - iversity of Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup +description: Everyone in the sample data +objectclass: groupofnames dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All ITD Staff +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff cn: ITD Staff -joinable: FALSE -objectclass: rfc822mailgroup -member: cn=Manager, o=University of Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -modifytimestamp: 960404171730Z -modifiersname: cn=Manager,o=University of Michigan,c=US -labeledurl: http://www.itd.umich.edu ITD Home Page +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US -dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectclass: OpenLDAPperson cn: James A Jones 1 cn: James Jones cn: Jim Jones sn: Jones -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jaj -krbname: jaj@umich.edu -userpassword: jaj -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 homephone: +1 313 555 4772 -multilinedescription: Outstanding +description: Outstanding title: Mad Cow Researcher, UM Alumni Association pager: +1 313 555 3923 mail: jaj@mail.alumni.umich.edu -modifytimestamp: 960404171231Z -modifiersname: cn=Manager,o=University of Michigan,c=US facsimiletelephonenumber: +1 313 555 4332 telephonenumber: +1 313 555 0895 + dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Un - iversity of Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup +description: Everyone in the sample data +objectclass: groupofnames dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames + dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Un - iversity of Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup +description: Everyone in the sample data +objectclass: groupofnames dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames -dn: ou=Alumni Association, ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Alumni Association -dn: ou=Groups, o=University of Michigan, c=US -objectclass: top +dn: ou=Groups,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Groups -lastmodifiedtime: 950120182331Z -lastmodifiedby: cn=manager, o=university of michigan, c=US -dn: ou=Information Technology Division, ou=People, o=University of Michigan, c - =US -objectclass: top +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject -ou: Information Technology Divisio +ou: Information Technology Division dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All ITD Staff +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff cn: ITD Staff -joinable: FALSE -objectclass: rfc822mailgroup -member: cn=Manager, o=University of Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -modifiersname: cn=Manager,o=University of Michigan,c=US -labeledurl: http://www.itd.umich.edu ITD Home Page +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US -dn: ou=People, o=University of Michigan, c=US -objectclass: top +dn: cn=Manager,o=University of Michigan,c=US +objectClass: person +cn: Manager +cn: Directory Manager +cn: Dir Man +sn: Manager +description: Manager of the directory +userPassword:: c2VjcmV0 + +dn: ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: People -dn: o=University of Michigan, c=US -objectclass: top +dn: o=University of Michigan,c=US objectclass: organization objectclass: domainRelatedObject -objectclass: quipuObject -objectclass: quipuNonLeafObject l: Ann Arbor, Michigan st: Michigan -streetaddress: 535 West William St. o: University of Michigan o: UMICH o: UM @@ -336,8 +260,12 @@ o: U-M o: U of M description: The University of Michigan at Ann Arbor postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 - 09 $ USpostalcode: 48109 + 09 $ US telephonenumber: +1 313 764-1817 -lastmodifiedtime: 930106182800Z -lastmodifiedby: cn=manager, o=university of michigan, c=US associateddomain: umich.edu + +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectClass: OpenLDAPperson +uid: uham + diff --git a/tests/data/test-glued.ldif b/tests/data/test-glued.ldif new file mode 100644 index 0000000000..17dd4f7949 --- /dev/null +++ b/tests/data/test-glued.ldif @@ -0,0 +1,286 @@ +dn: o=University of Michigan,c=US +objectClass: organization +objectClass: domainRelatedObject +l: Ann Arbor, Michigan +st: Michigan +o: University of Michigan +o: UMICH +o: UM +o: U-M +o: U of M +description: The University of Michigan at Ann Arbor +postalAddress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 + 09 $ US +telephoneNumber: +1 313 764-1817 +associatedDomain: umich.edu + +dn: ou=People,o=University of Michigan,c=US +objectClass: organizationalUnit +ou: People + +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectClass: organizationalUnit +ou: Alumni Association + +dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectClass: OpenLDAPperson +cn: Dorothy Stevens +cn: Dot Stevens +sn: Stevens +uid: dots +title: Secretary, UM Alumni Association +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Lemonade +homePostalAddress: 377 White St. Apt. 3 $ Ann Arbor, MI 48104 +description: Very tall +facsimileTelephoneNumber: +1 313 555 3223 +telephoneNumber: +1 313 555 3664 +mail: dots@mail.alumni.umich.edu +homePhone: +1 313 555 0454 + +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectClass: OpenLDAPperson +cn: James A Jones 1 +cn: James Jones +cn: Jim Jones +sn: Jones +uid: jaj +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userPassword:: amFq +homePostalAddress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 +homePhone: +1 313 555 4772 +description: Outstanding +title: Mad Cow Researcher, UM Alumni Association +pager: +1 313 555 3923 +mail: jaj@mail.alumni.umich.edu +facsimileTelephoneNumber: +1 313 555 4332 +telephoneNumber: +1 313 555 0895 + +dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c=US +objectClass: OpenLDAPperson +cn: Jane Doe +cn: Jane Alverson +sn: Doe +uid: jdoe +title: Programmer Analyst, UM Alumni Association +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homePostalAddress: 123 Anystreet $ Ann Arbor, MI 48104 +drink: diet coke +description: Enthusiastic +mail: jdoe@woof.net +homePhone: +1 313 555 5445 +pager: +1 313 555 1220 +facsimileTelephoneNumber: +1 313 555 2311 +telephoneNumber: +1 313 555 4774 + +dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michigan + ,c=US +objectClass: OpenLDAPperson +cn: Jennifer Smith +cn: Jen Smith +sn: Smith +uid: jen +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +drink: Sam Adams +homePostalAddress: 1000 Maple #44 $ Ann Arbor, MI 48103 +title: Telemarketer, UM Alumni Association +mail: jen@mail.alumni.umich.edu +homePhone: +1 313 555 2333 +pager: +1 313 555 6442 +facsimileTelephoneNumber: +1 313 555 2756 +telephoneNumber: +1 313 555 8232 + +dn: cn=Manager,o=University of Michigan,c=US +objectClass: person +cn: Manager +cn: Directory Manager +cn: Dir Man +sn: Manager +description: Manager of the directory +userPassword:: c2VjcmV0 + +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan,c= + US +objectClass: OpenLDAPperson +cn: Mark Elliot +cn: Mark A Elliot +sn: Elliot +uid: melliot +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homePostalAddress: 199 Outer Drive $ Ypsilanti, MI 48198 +homePhone: +1 313 555 0388 +drink: Gasoline +title: Director, UM Alumni Association +mail: melliot@mail.alumni.umich.edu +pager: +1 313 555 7671 +facsimileTelephoneNumber: +1 313 555 7762 +telephoneNumber: +1 313 555 4177 + +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +objectClass: OpenLDAPperson +cn: Ursula Hampster +sn: Hampster +uid: uham +title: Secretary, UM Alumni Association +postalAddress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homePostalAddress: 123 Anystreet $ Ann Arbor, MI 48104 +mail: uham@mail.alumni.umich.edu +homePhone: +1 313 555 8421 +pager: +1 313 555 2844 +facsimileTelephoneNumber: +1 313 555 9700 +telephoneNumber: +1 313 555 5331 + +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US +objectClass: organizationalUnit +ou: Information Technology Division + +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit + y of Michigan,c=US +objectClass: OpenLDAPperson +cn: Barbara Jensen +cn: Babs Jensen +sn: Jensen +uid: bjensen +title: Mythical Manager, Research Systems +postalAddress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann + Arbor, MI 48103-4943 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userPassword:: YmplbnNlbg== +mail: bjensen@mailgw.umich.edu +homePostalAddress: 123 Wesley $ Ann Arbor, MI 48103 +description: Mythical manager of the rsdd unix project +drink: water +homePhone: +1 313 555 2333 +pager: +1 313 555 3233 +facsimileTelephoneNumber: +1 313 555 2274 +telephoneNumber: +1 313 555 9022 + +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +objectClass: OpenLDAPperson +cn: Bjorn Jensen +cn: Biiff Jensen +sn: Jensen +uid: bjorn +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userPassword:: Ympvcm4= +homePostalAddress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 +drink: Iced Tea +description: Hiker, biker +title: Director, Embedded Systems +postalAddress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 +mail: bjorn@mailgw.umich.edu +homePhone: +1 313 555 5444 +pager: +1 313 555 4474 +facsimileTelephoneNumber: +1 313 555 2177 +telephoneNumber: +1 313 555 0355 + +dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Universi + ty of Michigan,c=US +objectClass: OpenLDAPperson +cn: James A Jones 2 +cn: James Jones +cn: Jim Jones +sn: Doe +uid: jjones +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homePostalAddress: 933 Brooks $ Ann Arbor, MI 48104 +homePhone: +1 313 555 8838 +title: Senior Manager, Information Technology Division +description: Not around very much +mail: jjones@mailgw.umich.edu +postalAddress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 +pager: +1 313 555 2833 +facsimileTelephoneNumber: +1 313 555 8688 +telephoneNumber: +1 313 555 7334 + +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University of M + ichigan,c=US +objectClass: OpenLDAPperson +cn: John Doe +cn: Jonathon Doe +sn: Doe +uid: johnd +postalAddress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seeAlso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +homePostalAddress: 912 East Bllvd $ Ann Arbor, MI 48104 +title: System Administrator, Information Technology Division +description: overworked! +mail: johnd@mailgw.umich.edu +homePhone: +1 313 555 3774 +pager: +1 313 555 6573 +facsimileTelephoneNumber: +1 313 555 4544 +telephoneNumber: +1 313 555 9394 + +dn: ou=Groups,o=University of Michigan,c=US +objectClass: organizationalUnit +ou: Groups + +dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +cn: All Staff +description: Everyone in the sample data +objectClass: groupofnames + +dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff +cn: Alumni Assoc Staff +objectClass: groupofnames + +dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff +cn: ITD Staff +objectClass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US + diff --git a/tests/data/test-lang.ldif b/tests/data/test-lang.ldif new file mode 100644 index 0000000000..f108b06949 --- /dev/null +++ b/tests/data/test-lang.ldif @@ -0,0 +1,12 @@ +dn: o=University of Michigan,c=US +objectClass: organization +objectClass: extensibleObject +o: University of Michigan +o;lang-zz;lang-y;lang-yy;lang-xx;lang-x;lang-z: University of Michigan +name;lang-en-US: Billy Ray +name;lang-en-US: Billy Bob +CN;lang-en-US: Billy Ray +name: Billy Ray +SN;lang-en-US;lang-en-GB: Billy Ray +SN: Ray + diff --git a/tests/data/test-ordered.ldif b/tests/data/test-ordered.ldif index c9f9325633..f3ad43563d 100644 --- a/tests/data/test-ordered.ldif +++ b/tests/data/test-ordered.ldif @@ -1,12 +1,8 @@ -dn: o=University of Michigan, c=US -objectclass: top +dn: o=University of Michigan,c=US objectclass: organization objectclass: domainRelatedObject -objectclass: quipuObject -objectclass: quipuNonLeafObject l: Ann Arbor, Michigan st: Michigan -streetaddress: 535 West William St. o: University of Michigan o: UMICH o: UM @@ -14,410 +10,279 @@ o: U-M o: U of M description: The University of Michigan at Ann Arbor postaladdress: University of Michigan $ 535 W. William St. $ Ann Arbor, MI 481 - 09 $ USpostalcode: 48109 + 09 $ US telephonenumber: +1 313 764-1817 -lastmodifiedtime: 930106182800Z -lastmodifiedby: cn=manager, o=university of michigan, c=US associateddomain: umich.edu -dn: ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: People -dn: ou=Groups, o=University of Michigan, c=US -objectclass: top +dn: ou=Groups,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Groups -lastmodifiedtime: 950120182331Z -lastmodifiedby: cn=manager, o=university of michigan, c=US -dn: ou=Alumni Association, ou=People, o=University of Michigan, c=US -objectclass: top +dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject ou: Alumni Association -dn: ou=Information Technology Division, ou=People, o=University of Michigan, c +dn: ou=Information Technology Division,ou=People,o=University of Michigan,c =US -objectclass: top objectclass: organizationalUnit -objectclass: quipuObject -objectclass: quipuNonLeafObject -ou: Information Technology Divisio +ou: Information Technology Division dn: cn=All Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Un - iversity of Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US +member: cn=Manager,o=University of Michigan,c=US +member: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +owner: cn=Manager,o=University of Michigan,c=US cn: All Staff -joinable: FALSE -multilinedescription: Everyone in the sample data -objectclass: rfc822mailgroup +description: Everyone in the sample data +objectclass: groupofnames dn: cn=Alumni Assoc Staff,ou=Groups,o=University of Michigan,c=US -member: cn=Manager, o=University of Michigan, c=US -member: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -member: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michiga - n, c=US -member: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of M - ichigan, c=US -member: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -member: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of - Michigan, c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All Alumni Assoc Staff +member: cn=Manager,o=University of Michigan,c=US +member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +member: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c + =US +member: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +member: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michiga + n,c=US +member: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mic + higan,c=US +owner: cn=Manager,o=University of Michigan,c=US +description: All Alumni Assoc Staff cn: Alumni Assoc Staff -joinable: FALSE -objectclass: rfc822mailgroup +objectclass: groupofnames -dn: cn=Barbara Jensen, ou=Information Technology Division, ou=People, o=Univer - sity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Univer + sity of Michigan,c=US +objectclass: OpenLDAPperson cn: Barbara Jensen cn: Babs Jensen sn: Jensen +uid: bjensen title: Mythical Manager, Research Systems postaladdress: ITD Prod Dev & Deployment $ 535 W. William St. Room 4212 $ Ann Arbor, MI 48103-4943 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: bjensen -userpassword: bjensen +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: YmplbnNlbg== mail: bjensen@mailgw.umich.edu homepostaladdress: 123 Wesley $ Ann Arbor, MI 48103 -krbname: bjensen@umich.edu -multilinedescription: Mythical manager of the rsdd unix project -nobatchupdates: TRUE -notice: Off sailing this month. -onvacation: FALSE -labeledurl: http://www.umich.edu/ U-M Home Page +description: Mythical manager of the rsdd unix project drink: water -lastmodifiedtime: 960404035839Z -lastmodifiedby: cn=Barbara Jensen, ou=Information Technology Division, ou=Peop - le, o=University of Michigan, c=US -modifytimestamp: 960404171405Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 2333 pager: +1 313 555 3233 facsimiletelephonenumber: +1 313 555 2274 telephonenumber: +1 313 555 9022 -dn: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Universi + ty of Michigan,c=US +objectclass: OpenLDAPperson cn: Bjorn Jensen cn: Biiff Jensen sn: Jensen -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: bjorn -userpassword: bjorn -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: Ympvcm4= homepostaladdress: 19923 Seven Mile Rd. $ South Lyon, MI 49999 drink: Iced Tea -multilinedescription: Hiker, biker +description: Hiker, biker title: Director, Embedded Systems postaladdress: Info Tech Division $ 535 W. William St. $ Ann Arbor, MI 48103 mail: bjorn@mailgw.umich.edu -modifytimestamp: 960404171424Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 5444 pager: +1 313 555 4474 facsimiletelephonenumber: +1 313 555 2177 telephonenumber: +1 313 555 0355 -dn: cn=Dorothy Stevens, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +objectclass: OpenLDAPperson cn: Dorothy Stevens cn: Dot Stevens sn: Stevens +uid: dots title: Secretary, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: dots -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US drink: Lemonade homepostaladdress: 377 White St. Apt. 3 $ Ann Arbor, MI 48104 -multilinedescription: Very tall +description: Very tall facsimiletelephonenumber: +1 313 555 3223 telephonenumber: +1 313 555 3664 mail: dots@mail.alumni.umich.edu -modifytimestamp: 960404171218Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 0454 dn: cn=ITD Staff,ou=Groups,o=University of Michigan,c=US -associateddomain: umich.edu -requeststo: cn=Manager, o=University of Michigan, c=US -errorsto: cn=Manager, o=University of Michigan, c=US -owner: cn=Manager, o=University of Michigan, c=US -multilinedescription: All ITD Staff +owner: cn=Manager,o=University of Michigan,c=US +description: All ITD Staff cn: ITD Staff -joinable: FALSE -objectclass: rfc822mailgroup -member: cn=Manager, o=University of Michigan, c=US -member: cn=Bjorn Jensen, ou=Information Technology Division, ou=People, o=Univ - ersity of Michigan, c=US -member: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=U - niversity of Michigan, c=US -member: cn=John Doe, ou=Information Technology Division, ou=People, o=Universi - ty of Michigan, c=US -modifytimestamp: 960404171730Z -modifiersname: cn=Manager,o=University of Michigan,c=US -labeledurl: http://www.itd.umich.edu ITD Home Page +objectclass: groupofnames +member: cn=Manager,o=University of Michigan,c=US +member: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=Univers + ity of Michigan,c=US +member: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Univ + ersity of Michigan,c=US +member: cn=John Doe,ou=Information Technology Division,ou=People,o=University + of Michigan,c=US -dn: cn=James A Jones 1, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +objectclass: OpenLDAPperson cn: James A Jones 1 cn: James Jones cn: Jim Jones sn: Jones -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jaj -krbname: jaj@umich.edu -userpassword: jaj -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US +userpassword:: amFq homepostaladdress: 3882 Beverly Rd. $ Ann Arbor, MI 48105 homephone: +1 313 555 4772 -multilinedescription: Outstanding +description: Outstanding title: Mad Cow Researcher, UM Alumni Association pager: +1 313 555 3923 mail: jaj@mail.alumni.umich.edu -modifytimestamp: 960404171231Z -modifiersname: cn=Manager,o=University of Michigan,c=US facsimiletelephonenumber: +1 313 555 4332 telephonenumber: +1 313 555 0895 -dn: cn=James A Jones 2, ou=Information Technology Division, ou=People, o=Unive - rsity of Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Unive + rsity of Michigan,c=US +objectclass: OpenLDAPperson cn: James A Jones 2 cn: James Jones cn: Jim Jones sn: Doe -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jjones -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 933 Brooks $ Ann Arbor, MI 48104 homephone: +1 313 555 8838 title: Senior Manager, Information Technology Division -multilinedescription: Not around very much +description: Not around very much mail: jjones@mailgw.umich.edu postaladdress: Info Tech Division $ 535 W William $ Ann Arbor, MI 48103 -modifytimestamp: 960404171442Z -modifiersname: cn=Manager,o=University of Michigan,c=US pager: +1 313 555 2833 facsimiletelephonenumber: +1 313 555 8688 telephonenumber: +1 313 555 7334 -dn: cn=Jane Doe, ou=Alumni Association, ou=People, o=University of Michigan, c +dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c =US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +objectclass: OpenLDAPperson cn: Jane Doe cn: Jane Alverson sn: Doe +uid: jdoe title: Programmer Analyst, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: jdoe +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE drink: diet coke -multilinedescription: Enthusiastic +description: Enthusiastic mail: jdoe@woof.net -modifytimestamp: 960404171249Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 5445 pager: +1 313 555 1220 facsimiletelephonenumber: +1 313 555 2311 telephonenumber: +1 313 555 4774 -dn: cn=Jennifer Smith, ou=Alumni Association, ou=People, o=University of Michi - gan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michi + gan,c=US +objectclass: OpenLDAPperson cn: Jennifer Smith cn: Jen Smith sn: Smith -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: jen -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US drink: Sam Adams homepostaladdress: 1000 Maple #44 $ Ann Arbor, MI 48103 title: Telemarketer, UM Alumni Association mail: jen@mail.alumni.umich.edu -modifytimestamp: 960404171309Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 2333 pager: +1 313 555 6442 facsimiletelephonenumber: +1 313 555 2756 telephonenumber: +1 313 555 8232 -dn: cn=John Doe, ou=Information Technology Division, ou=People, o=University o - f Michigan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University o + f Michigan,c=US +objectclass: OpenLDAPperson cn: John Doe cn: Jonathon Doe sn: Doe -postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: johnd -krbname: johnd@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: ITD $ 535 W. William $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 912 East Bllvd $ Ann Arbor, MI 48104 title: System Administrator, Information Technology Division -multilinedescription: overworked! +description: overworked! mail: johnd@mailgw.umich.edu -modifytimestamp: 960404171509Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 3774 pager: +1 313 555 6573 facsimiletelephonenumber: +1 313 555 4544 telephonenumber: +1 313 555 9394 -dn: cn=Manager, o=University of Michigan, c=US -objectclass: top +dn: cn=Manager,o=University of Michigan,c=US objectclass: person -objectclass: quipuObject -objectclass: kerberosSecurityObject cn: Manager cn: Directory Manager cn: Dir Man sn: Manager description: Manager of the directory -userpassword: secret -lastmodifiedtime: 951212214144Z -lastmodifiedby: cn=Manager, o=University of Michigan, c=US -krbname: bjensen@umich.edu +userpassword:: c2VjcmV0 -dn: cn=Mark Elliot, ou=Alumni Association, ou=People, o=University of Michigan - , c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan + ,c=US +objectclass: OpenLDAPperson cn: Mark Elliot cn: Mark A Elliot sn: Elliot -postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US uid: melliot -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE +postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 199 Outer Drive $ Ypsilanti, MI 48198 homephone: +1 313 555 0388 drink: Gasoline title: Director, UM Alumni Association mail: melliot@mail.alumni.umich.edu -modifytimestamp: 960404171327Z -modifiersname: cn=Manager,o=University of Michigan,c=US pager: +1 313 555 7671 facsimiletelephonenumber: +1 313 555 7762 telephonenumber: +1 313 555 4177 -dn: cn=Ursula Hampster, ou=Alumni Association, ou=People, o=University of Mich - igan, c=US -objectclass: top -objectclass: person -objectclass: organizationalPerson -objectclass: newPilotPerson -objectclass: umichPerson +dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Mich + igan,c=US +objectclass: OpenLDAPperson cn: Ursula Hampster sn: Hampster +uid: uham title: Secretary, UM Alumni Association postaladdress: Alumni Association $ 111 Maple St $ Ann Arbor, MI 48109 -seealso: cn=All Staff, ou=Groups, o=University of Michigan, c=US -uid: uham +seealso: cn=All Staff,ou=Groups,o=University of Michigan,c=US homepostaladdress: 123 Anystreet $ Ann Arbor, MI 48104 -krbname: jdoe@umich.edu -nobatchupdates: TRUE -onvacation: FALSE mail: uham@mail.alumni.umich.edu -modifytimestamp: 960404171346Z -modifiersname: cn=Manager,o=University of Michigan,c=US homephone: +1 313 555 8421 pager: +1 313 555 2844 facsimiletelephonenumber: +1 313 555 9700 telephonenumber: +1 313 555 5331 + diff --git a/tests/data/test.ldif b/tests/data/test.ldif index 6478a1620b..752883585a 100644 --- a/tests/data/test.ldif +++ b/tests/data/test.ldif @@ -45,14 +45,11 @@ cn: Alumni Assoc Staff objectclass: groupofnames dn: ou=Alumni Association,ou=People,o=University of Michigan,c=US -objectclass: top objectclass: organizationalUnit ou: Alumni Association dn: cn=Barbara Jensen,ou=Information Technology Division,ou=People,o=Universit y of Michigan,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Barbara Jensen cn: Babs Jensen @@ -74,8 +71,6 @@ telephonenumber: +1 313 555 9022 dn: cn=Bjorn Jensen,ou=Information Technology Division,ou=People,o=University of Michigan,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Bjorn Jensen cn: Biiff Jensen @@ -96,8 +91,6 @@ telephonenumber: +1 313 555 0355 dn: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Michiga n,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Dorothy Stevens cn: Dot Stevens @@ -115,12 +108,10 @@ mail: dots@mail.alumni.umich.edu homephone: +1 313 555 0454 dn: ou=Groups,o=University of Michigan,c=US -objectclass: top objectclass: organizationalUnit ou: Groups dn: ou=Information Technology Division,ou=People,o=University of Michigan,c=US -objectclass: top objectclass: organizationalUnit ou: Information Technology Division @@ -139,8 +130,6 @@ member: cn=John Doe,ou=Information Technology Division,ou=People,o=University dn: cn=James A Jones 1,ou=Alumni Association,ou=People,o=University of Michiga n,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: James A Jones 1 cn: James Jones @@ -161,8 +150,6 @@ telephonenumber: +1 313 555 0895 dn: cn=James A Jones 2,ou=Information Technology Division,ou=People,o=Universi ty of Michigan,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: James A Jones 2 cn: James Jones @@ -181,8 +168,6 @@ facsimiletelephonenumber: +1 313 555 8688 telephonenumber: +1 313 555 7334 dn: cn=Jane Doe,ou=Alumni Association,ou=People,o=University of Michigan,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Jane Doe cn: Jane Alverson @@ -202,8 +187,6 @@ telephonenumber: +1 313 555 4774 dn: cn=Jennifer Smith,ou=Alumni Association,ou=People,o=University of Michigan ,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Jennifer Smith cn: Jen Smith @@ -222,8 +205,6 @@ telephonenumber: +1 313 555 8232 dn: cn=John Doe,ou=Information Technology Division,ou=People,o=University of M ichigan,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: John Doe cn: Jonathon Doe @@ -241,7 +222,6 @@ facsimiletelephonenumber: +1 313 555 4544 telephonenumber: +1 313 555 9394 dn: cn=Manager,o=University of Michigan,c=US -objectclass: top objectclass: person cn: Manager cn: Directory Manager @@ -252,8 +232,6 @@ userpassword:: c2VjcmV0 dn: cn=Mark Elliot,ou=Alumni Association,ou=People,o=University of Michigan,c= US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Mark Elliot cn: Mark A Elliot @@ -271,12 +249,10 @@ facsimiletelephonenumber: +1 313 555 7762 telephonenumber: +1 313 555 4177 dn: ou=People,o=University of Michigan,c=US -objectclass: top objectclass: organizationalUnit ou: People dn: o=University of Michigan,c=US -objectclass: top objectclass: organization objectclass: domainRelatedObject l: Ann Arbor, Michigan @@ -294,8 +270,6 @@ associateddomain: umich.edu dn: cn=Ursula Hampster,ou=Alumni Association,ou=People,o=University of Michiga n,c=US -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Ursula Hampster sn: Hampster diff --git a/tests/scripts/test003-search b/tests/scripts/test003-search index b763a6e853..77fb4616dc 100755 --- a/tests/scripts/test003-search +++ b/tests/scripts/test003-search @@ -54,7 +54,7 @@ fi echo "Testing slapd searching..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT \ - 'objectclass=*' > /dev/null 2>&1 + '(objectclass=*)' > /dev/null 2>&1 RC=$? if test $RC = 1 ; then echo "Waiting 5 seconds for slapd to start..." @@ -72,7 +72,7 @@ cat /dev/null > $SEARCHOUT echo "Testing exact searching..." $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \ - 'sn=jensen' >> $SEARCHOUT 2>&1 + '(sn=jensen)' >> $SEARCHOUT 2>&1 RC=$? if test $RC != 0 ; then echo "ldapsearch failed ($RC)!" @@ -104,14 +104,25 @@ echo "Testing NOT searching..." $LDAPSEARCH -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \ '(!(objectclass=pilotPerson))' >> $SEARCHOUT 2>&1 RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + kill -HUP $PID + exit $RC +fi -kill -HUP $PID - +echo "Testing objectClass/attributeType inheritance ..." +$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \ + '(&(objectClass=inetorgperson)(userid=uham))' \ + "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 +RC=$? if test $RC != 0 ; then echo "ldapsearch failed ($RC)!" + kill -HUP $PID exit $RC fi + +kill -HUP $PID LDIF=$SEARCHOUTMASTER echo "Filtering ldapsearch results..." diff --git a/tests/scripts/test004-modify b/tests/scripts/test004-modify index d5571ae3a4..fa7d25bbd1 100755 --- a/tests/scripts/test004-modify +++ b/tests/scripts/test004-modify @@ -104,8 +104,6 @@ member: cn=Dorothy Stevens,ou=Alumni Association,ou=People,o=University of Michi dn: cn=Gern Jensen,ou=Information Technology Division,ou=People,o=University of Michigan,c=US changetype: add -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Gern Jensen sn: Jensen diff --git a/tests/scripts/test007-replication b/tests/scripts/test007-replication index e3eaab27bd..dd828dd386 100755 --- a/tests/scripts/test007-replication +++ b/tests/scripts/test007-replication @@ -134,8 +134,6 @@ delete: member dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Gern Jensen sn: Jensen @@ -153,14 +151,12 @@ homephone: +1 313 555 8844 dn: ou=Retired, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top objectclass: organizationalUnit ou: Retired dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top -objectclass: person +objectclass: OpenLDAPperson cn: Rosco P. Coltrane sn: Coltrane diff --git a/tests/scripts/test009-referral b/tests/scripts/test009-referral index bf295ea656..aab5a45356 100755 --- a/tests/scripts/test009-referral +++ b/tests/scripts/test009-referral @@ -127,6 +127,18 @@ if test $RC != 0 ; then exit $RC fi +echo "Testing objectClass/attributeType inheritance ..." +$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \ + '(&(objectClass=inetorgperson)(userid=uham))' \ + "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + kill -HUP $PID + exit $RC +fi + + kill -HUP $PID $SLAVEPID LDIF=$SEARCHOUTMASTER diff --git a/tests/scripts/test011-subtree-repl b/tests/scripts/test011-subtree-repl index 9957160c01..0f2e688cd8 100755 --- a/tests/scripts/test011-subtree-repl +++ b/tests/scripts/test011-subtree-repl @@ -139,8 +139,6 @@ delete: member dn: cn=Gern Jensen, ou=Information Technology Division, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top -objectclass: person objectclass: OpenLDAPperson cn: Gern Jensen sn: Jensen @@ -158,14 +156,12 @@ homephone: +1 313 555 8844 dn: ou=Retired, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top objectclass: organizationalUnit ou: Retired dn: cn=Rosco P. Coltrane, ou=Information Technology Division, ou=People, o=University of Michigan, c=US changetype: add -objectclass: top -objectclass: person +objectclass: OpenLDAPperson cn: Rosco P. Coltrane sn: Coltrane diff --git a/tests/scripts/test015-xsearch b/tests/scripts/test015-xsearch index 1657b9204c..acdc134128 100755 --- a/tests/scripts/test015-xsearch +++ b/tests/scripts/test015-xsearch @@ -110,6 +110,17 @@ if test $RC != 0 ; then exit $RC fi +echo "Testing objectClass/attributeType inheritance ..." +$LDAPSEARCH -M -a never -S "" -b "$BASEDN" -h $LOCALHOST -p $PORT \ + '(&(objectClass=inetorgperson)(userid=uham))' \ + "2.5.4.0" "userid" >> $SEARCHOUT 2>&1 +RC=$? +if test $RC != 0 ; then + echo "ldapsearch failed ($RC)!" + kill -HUP $PID + exit $RC +fi + kill -HUP $PID LDIF=$SEARCHOUTMASTER -- 2.39.5