From: Kurt Zeilenga Date: Thu, 1 Jun 2000 23:00:22 +0000 (+0000) Subject: Move ldapd into the Attic, quipu tools remain for now. X-Git-Tag: LDBM_PRE_GIANT_RWLOCK~2777 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=45c6324a9d348c32c713541a3082f29460c79b81;p=openldap Move ldapd into the Attic, quipu tools remain for now. --- diff --git a/build/top.mk b/build/top.mk index cccef371a0..a92af5005e 100644 --- a/build/top.mk +++ b/build/top.mk @@ -140,7 +140,7 @@ SLAPD_SQL_LDFLAGS = @SLAPD_SQL_LDFLAGS@ SLAPD_SQL_INCLUDES = @SLAPD_SQL_INCLUDES@ SLAPD_SQL_LIBS = @SLAPD_SQL_LIBS@ -LDAPD_LIBS = @LDAPD_LIBS@ +QUIPU_LIBS = @QUIPU_LIBS@ SLAPD_LIBS = @SLAPD_LIBS@ @SLAPD_PERL_LDFLAGS@ @SLAPD_SQL_LDFLAGS@ @SLAPD_SQL_LIBS@ SLURPD_LIBS = @SLURPD_LIBS@ diff --git a/configure b/configure index 76f76d02a0..7216f3708c 100755 --- a/configure +++ b/configure @@ -61,10 +61,6 @@ ac_help="$ac_help ac_help="$ac_help --with-yielding-select with implicitly yielding select (auto)" ac_help="$ac_help -LDAPD (X.500-to-LDAP Gateway) Options:" -ac_help="$ac_help - --enable-ldapd enable building ldapd (no)" -ac_help="$ac_help SLAPD (Standalone LDAP Daemon) Options:" ac_help="$ac_help --enable-slapd enable building slapd (yes)" @@ -682,7 +678,7 @@ echo "Configuring OpenLDAP $OL_VERSION ..." echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:686: checking host system type" >&5 +echo "configure:682: checking host system type" >&5 if test "x$ac_cv_host" = "x" || (test "x$host" != "xNONE" && test "x$host" != "x$ac_cv_host_alias"); then # Make sure we can run config.sub. @@ -723,7 +719,7 @@ host_os=$ac_cv_host_os echo $ac_n "checking target system type""... $ac_c" 1>&6 -echo "configure:727: checking target system type" >&5 +echo "configure:723: checking target system type" >&5 if test "x$ac_cv_target" = "x" || (test "x$target" != "xNONE" && test "x$target" != "x$ac_cv_target_alias"); then # Make sure we can run config.sub. @@ -763,7 +759,7 @@ target_os=$ac_cv_target_os echo $ac_n "checking build system type""... $ac_c" 1>&6 -echo "configure:767: checking build system type" >&5 +echo "configure:763: checking build system type" >&5 if test "x$ac_cv_build" = "x" || (test "x$build" != "xNONE" && test "x$build" != "x$ac_cv_build_alias"); then # Make sure we can run config.sub. @@ -840,7 +836,7 @@ test "$host_alias" != "$target_alias" && # 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:844: checking for a BSD compatible install" >&5 +echo "configure:840: 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 @@ -897,7 +893,7 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6 -echo "configure:901: checking whether build environment is sane" >&5 +echo "configure:897: checking whether build environment is sane" >&5 # Just in case sleep 1 echo timestamp > conftestfile @@ -958,7 +954,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:962: checking for $ac_word" >&5 +echo "configure:958: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AWK+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -988,7 +984,7 @@ test -n "$AWK" && break done echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6 -echo "configure:992: checking whether ${MAKE-make} sets \${MAKE}" >&5 +echo "configure:988: checking whether ${MAKE-make} sets \${MAKE}" >&5 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'` if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1028,7 +1024,7 @@ fi missing_dir=`cd $ac_aux_dir && pwd` echo $ac_n "checking for working aclocal""... $ac_c" 1>&6 -echo "configure:1032: checking for working aclocal" >&5 +echo "configure:1028: checking for working aclocal" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1041,7 +1037,7 @@ else fi echo $ac_n "checking for working autoconf""... $ac_c" 1>&6 -echo "configure:1045: checking for working autoconf" >&5 +echo "configure:1041: checking for working autoconf" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1054,7 +1050,7 @@ else fi echo $ac_n "checking for working automake""... $ac_c" 1>&6 -echo "configure:1058: checking for working automake" >&5 +echo "configure:1054: checking for working automake" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1067,7 +1063,7 @@ else fi echo $ac_n "checking for working autoheader""... $ac_c" 1>&6 -echo "configure:1071: checking for working autoheader" >&5 +echo "configure:1067: checking for working autoheader" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1080,7 +1076,7 @@ else fi echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6 -echo "configure:1084: checking for working makeinfo" >&5 +echo "configure:1080: checking for working makeinfo" >&5 # Run test in a subshell; some versions of sh will print an error if # an executable is not found, even if stderr is redirected. # Redirect stdin to placate older versions of autoconf. Sigh. @@ -1100,7 +1096,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:1104: checking for $ac_word" >&5 +echo "configure:1100: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AMTAR+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1151,7 +1147,7 @@ EOF echo $ac_n "checking configure arguments""... $ac_c" 1>&6 -echo "configure:1155: checking configure arguments" >&5 +echo "configure:1151: checking configure arguments" >&5 top_builddir=`pwd` @@ -1527,32 +1523,6 @@ fi # end --with-yielding_select -# Check whether --with-xxldapdoptions or --without-xxldapdoptions was given. -if test "${with_xxldapdoptions+set}" = set; then - withval="$with_xxldapdoptions" - : -fi - -# OpenLDAP --enable-ldapd - # Check whether --enable-ldapd or --disable-ldapd was given. -if test "${enable_ldapd+set}" = set; then - enableval="$enable_ldapd" - - ol_arg=invalid - for ol_val in auto yes no ; do - if test "$enableval" = "$ol_val" ; then - ol_arg="$ol_val" - fi - done - if test "$ol_arg" = "invalid" ; then - { echo "configure: error: bad value $enableval for --enable-ldapd" 1>&2; exit 1; } - fi - ol_enable_ldapd="$ol_arg" - -else - ol_enable_ldapd="no" -fi -# end --enable-ldapd # Check whether --with-xxslapdoptions or --without-xxslapdoptions was given. if test "${with_xxslapdoptions+set}" = set; then @@ -2545,11 +2515,10 @@ LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= -LDAPD_LIBS= +QUIPU_LIBS= SLAPD_LIBS= SLURPD_LIBS= -BUILD_LDAPD=no BUILD_SLAPD=no BUILD_SLURPD=no @@ -2624,7 +2593,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:2628: checking for $ac_word" >&5 +echo "configure:2597: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2676,7 +2645,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:2680: checking for $ac_word" >&5 +echo "configure:2649: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2736,7 +2705,7 @@ fi # 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:2740: checking for $ac_word" >&5 +echo "configure:2709: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_RANLIB+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2766,7 +2735,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:2770: checking for $ac_word" >&5 +echo "configure:2739: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2796,7 +2765,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:2800: checking for $ac_word" >&5 +echo "configure:2769: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2847,7 +2816,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:2851: checking for $ac_word" >&5 +echo "configure:2820: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_CC+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2879,7 +2848,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:2883: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) works" >&5 +echo "configure:2852: 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. @@ -2890,12 +2859,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 2894 "configure" +#line 2863 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:2899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2868: \"$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 @@ -2921,12 +2890,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:2925: checking whether the C compiler ($CC $CFLAGS $CPPFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:2894: 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:2930: checking whether we are using GNU C" >&5 +echo "configure:2899: 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 @@ -2935,7 +2904,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2939: \"$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:2908: \"$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 @@ -2954,7 +2923,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:2958: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:2927: 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 @@ -2997,7 +2966,7 @@ ac_prog=ld if test "$ac_cv_prog_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:3001: checking for ld used by GCC" >&5 +echo "configure:2970: checking for ld used by GCC" >&5 ac_prog=`($CC -print-prog-name=ld) 2>&5` case "$ac_prog" in # Accept absolute paths. @@ -3021,10 +2990,10 @@ echo "configure:3001: 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:3025: checking for GNU ld" >&5 +echo "configure:2994: checking for GNU ld" >&5 else echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6 -echo "configure:3028: checking for non-GNU ld" >&5 +echo "configure:2997: checking for non-GNU ld" >&5 fi if eval "test \"\${ac_cv_path_LD+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -3059,7 +3028,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:3063: checking if the linker ($LD) is GNU ld" >&5 +echo "configure:3032: checking if the linker ($LD) is GNU ld" >&5 if eval "test \"\${ac_cv_prog_gnu_ld+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3075,7 +3044,7 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6 -echo "configure:3079: checking for BSD-compatible nm" >&5 +echo "configure:3048: checking for BSD-compatible nm" >&5 if eval "test \"\${ac_cv_path_NM+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3111,7 +3080,7 @@ NM="$ac_cv_path_NM" echo "$ac_t""$NM" 1>&6 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:3115: checking whether ln -s works" >&5 +echo "configure:3084: 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 @@ -3166,8 +3135,8 @@ test x"$silent" = xyes && libtool_flags="$libtool_flags --silent" case "$lt_target" in *-*-irix6*) # Find out which ABI we are using. - echo '#line 3170 "configure"' > conftest.$ac_ext - if { (eval echo configure:3171: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then + echo '#line 3139 "configure"' > conftest.$ac_ext + if { (eval echo configure:3140: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then case "`/usr/bin/file conftest.o`" in *32-bit*) LD="${LD-ld} -32" @@ -3188,19 +3157,19 @@ case "$lt_target" in SAVE_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS -belf" echo $ac_n "checking whether the C compiler needs -belf""... $ac_c" 1>&6 -echo "configure:3192: checking whether the C compiler needs -belf" >&5 +echo "configure:3161: 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 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3173: \"$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 @@ -3223,7 +3192,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:3227: checking for $ac_word" >&5 +echo "configure:3196: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_DLLTOOL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3255,7 +3224,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:3259: checking for $ac_word" >&5 +echo "configure:3228: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_DLLTOOL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3290,7 +3259,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:3294: checking for $ac_word" >&5 +echo "configure:3263: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AS+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3322,7 +3291,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:3326: checking for $ac_word" >&5 +echo "configure:3295: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AS+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3357,7 +3326,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:3361: checking for $ac_word" >&5 +echo "configure:3330: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_OBJDUMP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3389,7 +3358,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:3393: checking for $ac_word" >&5 +echo "configure:3362: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_OBJDUMP+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3457,7 +3426,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:3461: checking for $ac_word" >&5 +echo "configure:3430: checking for $ac_word" >&5 if eval "test \"\${ac_cv_prog_AWK+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3488,7 +3457,7 @@ done # test for ln hardlink support echo $ac_n "checking whether ln works""... $ac_c" 1>&6 -echo "configure:3492: checking whether ln works" >&5 +echo "configure:3461: 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 @@ -3511,7 +3480,7 @@ else fi echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6 -echo "configure:3515: checking whether ln -s works" >&5 +echo "configure:3484: 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 @@ -3539,7 +3508,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:3543: checking for $ac_word" >&5 +echo "configure:3512: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_SENDMAIL+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3575,7 +3544,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:3579: checking for $ac_word" >&5 +echo "configure:3548: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_EDITOR+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3611,7 +3580,7 @@ fi # Extract the first word of "finger", so it can be a program name with args. set dummy finger; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3615: checking for $ac_word" >&5 +echo "configure:3584: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_FINGER+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3650,7 +3619,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:3654: checking for $ac_word" >&5 +echo "configure:3623: checking for $ac_word" >&5 if eval "test \"\${ac_cv_path_PERLBIN+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3701,7 +3670,7 @@ fi fi echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6 -echo "configure:3705: checking how to run the C preprocessor" >&5 +echo "configure:3674: checking how to run the C preprocessor" >&5 # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= @@ -3716,13 +3685,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:3726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3695: \"$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 : @@ -3733,13 +3702,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:3743: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3712: \"$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 : @@ -3750,13 +3719,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:3760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3729: \"$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 : @@ -3794,9 +3763,9 @@ elif test $cross_compiling = yes -a $ol_enable_x_compile = no; then fi echo $ac_n "checking for AIX""... $ac_c" 1>&6 -echo "configure:3798: checking for AIX" >&5 +echo "configure:3767: checking for AIX" >&5 cat > conftest.$ac_ext <&6 -echo "configure:3822: checking for POSIXized ISC" >&5 +echo "configure:3791: checking for POSIXized ISC" >&5 if test -d /etc/conf/kconfig.d && grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1 then @@ -3840,17 +3809,17 @@ fi ac_safe=`echo "minix/config.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for minix/config.h""... $ac_c" 1>&6 -echo "configure:3844: checking for minix/config.h" >&5 +echo "configure:3813: checking for minix/config.h" >&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:3854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:3823: \"$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* @@ -3889,12 +3858,12 @@ fi echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6 -echo "configure:3893: checking for Cygwin environment" >&5 +echo "configure:3862: 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:3878: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_cygwin=yes else @@ -3921,19 +3890,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:3925: checking for mingw32 environment" >&5 +echo "configure:3894: 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:3906: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_mingw32=yes else @@ -3949,19 +3918,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:3953: checking for EMX OS/2 environment" >&5 +echo "configure:3922: 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:3934: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_emxos2=yes else @@ -3980,7 +3949,7 @@ test "$ac_cv_emxos2" = yes && EMXOS2=yes echo $ac_n "checking for executable suffix""... $ac_c" 1>&6 -echo "configure:3984: checking for executable suffix" >&5 +echo "configure:3953: checking for executable suffix" >&5 if eval "test \"\${ac_cv_exeext+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3990,7 +3959,7 @@ else rm -f conftest* echo 'int main () { return 0; }' > conftest.$ac_ext ac_cv_exeext= - if { (eval echo configure:3994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then + if { (eval echo configure:3963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then for file in conftest.*; do case $file in *.c | *.C | *.o | *.obj | *.xcoff) ;; @@ -4011,13 +3980,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:4015: checking for object suffix" >&5 +echo "configure:3984: 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:4021: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:3990: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then for ac_file in conftest.*; do case $ac_file in *.c) ;; @@ -4041,7 +4010,7 @@ EOF echo $ac_n "checking for be_app in -lbe""... $ac_c" 1>&6 -echo "configure:4045: checking for be_app in -lbe" >&5 +echo "configure:4014: 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 @@ -4049,7 +4018,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:4033: \"$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 @@ -4086,7 +4055,7 @@ fi echo $ac_n "checking for ${CC-cc} option to accept ANSI C""... $ac_c" 1>&6 -echo "configure:4090: checking for ${CC-cc} option to accept ANSI C" >&5 +echo "configure:4059: 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 @@ -4103,7 +4072,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 @@ -4140,7 +4109,7 @@ return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } EOF -if { (eval echo configure:4144: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4113: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_prog_cc_stdc="$ac_arg"; break else @@ -4174,7 +4143,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:4178: checking for ${OL_MKDEP} depend flag" >&5 +echo "configure:4147: 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 @@ -4184,7 +4153,7 @@ else cat > conftest.c <&5; (eval $ac_try) 2>&5; }; } \ + if { ac_try='$OL_MKDEP $flag conftest.c'; { (eval echo configure:4157: \"$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 @@ -4217,7 +4186,7 @@ if test "${ol_cv_mkdep}" = no ; then fi echo $ac_n "checking for afopen in -ls""... $ac_c" 1>&6 -echo "configure:4221: checking for afopen in -ls" >&5 +echo "configure:4190: 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 @@ -4225,7 +4194,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:4209: \"$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 @@ -4269,17 +4238,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:4273: checking for $ac_hdr" >&5 +echo "configure:4242: 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:4283: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4252: \"$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* @@ -4311,7 +4280,7 @@ done fi echo $ac_n "checking for lt_dlinit in -lltdl""... $ac_c" 1>&6 -echo "configure:4315: checking for lt_dlinit in -lltdl" >&5 +echo "configure:4284: 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 @@ -4319,7 +4288,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:4303: \"$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 @@ -4375,13 +4344,13 @@ fi # test for EBCDIC echo $ac_n "checking for EBCDIC""... $ac_c" 1>&6 -echo "configure:4379: checking for EBCDIC" >&5 +echo "configure:4348: 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:4363: \"$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* @@ -4414,12 +4383,12 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:4418: checking for ANSI C header files" >&5 +echo "configure:4387: 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 @@ -4427,7 +4396,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:4431: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4400: \"$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* @@ -4444,7 +4413,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 @@ -4462,7 +4431,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 @@ -4483,7 +4452,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #ifndef HAVE_EBCDIC @@ -4501,7 +4470,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:4505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:4474: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -4535,12 +4504,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:4539: checking for $ac_hdr that defines DIR" >&5 +echo "configure:4508: 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> @@ -4548,7 +4517,7 @@ int main() { DIR *dirp = 0; ; return 0; } EOF -if { (eval echo configure:4552: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4521: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* eval "ac_cv_header_dirent_$ac_safe=yes" else @@ -4573,7 +4542,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:4577: checking for opendir in -ldir" >&5 +echo "configure:4546: 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 @@ -4581,7 +4550,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:4565: \"$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 @@ -4614,7 +4583,7 @@ fi else echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6 -echo "configure:4618: checking for opendir in -lx" >&5 +echo "configure:4587: 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 @@ -4622,7 +4591,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:4606: \"$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 @@ -4656,12 +4625,12 @@ fi fi echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6 -echo "configure:4660: checking for sys/wait.h that is POSIX.1 compatible" >&5 +echo "configure:4629: 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 @@ -4677,7 +4646,7 @@ wait (&s); s = WIFEXITED (s) ? WEXITSTATUS (s) : 1; ; return 0; } EOF -if { (eval echo configure:4681: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:4650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_sys_wait_h=yes else @@ -4698,12 +4667,12 @@ EOF fi echo $ac_n "checking POSIX termios""... $ac_c" 1>&6 -echo "configure:4702: checking POSIX termios" >&5 +echo "configure:4671: 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 @@ -4713,7 +4682,7 @@ int main() { tcgetattr(0, 0); ; return 0; } EOF -if { (eval echo configure:4717: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4686: \"$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 @@ -4729,7 +4698,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:4733: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5 +echo "configure:4702: 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 @@ -4738,7 +4707,7 @@ else gwinsz_in_termios_h=no if test $am_cv_sys_posix_termios = yes; then cat > conftest.$ac_ext < # include @@ -4758,7 +4727,7 @@ rm -f conftest* if test $gwinsz_in_termios_h = no; then cat > conftest.$ac_ext < # include @@ -4841,17 +4810,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:4845: checking for $ac_hdr" >&5 +echo "configure:4814: 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:4855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:4824: \"$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* @@ -4881,7 +4850,7 @@ done echo $ac_n "checking for sigset in -lV3""... $ac_c" 1>&6 -echo "configure:4885: checking for sigset in -lV3" >&5 +echo "configure:4854: 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 @@ -4889,7 +4858,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:4873: \"$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 @@ -4930,12 +4899,12 @@ fi if test $ac_cv_header_winsock_h = yes; then echo $ac_n "checking for winsock""... $ac_c" 1>&6 -echo "configure:4934: checking for winsock" >&5 +echo "configure:4903: checking for winsock" >&5 if eval "test \"\${ol_cv_winsock+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < int main() { @@ -4947,7 +4916,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:4951: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:4920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_winsock=yes else @@ -4975,12 +4944,12 @@ fi echo $ac_n "checking for socket""... $ac_c" 1>&6 -echo "configure:4979: checking for socket" >&5 +echo "configure:4948: 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:4977: \"$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 @@ -5023,7 +4992,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6 -echo "configure:5027: checking for main in -lsocket" >&5 +echo "configure:4996: 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 @@ -5031,14 +5000,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:5011: \"$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 @@ -5066,7 +5035,7 @@ else fi echo $ac_n "checking for main in -lnet""... $ac_c" 1>&6 -echo "configure:5070: checking for main in -lnet" >&5 +echo "configure:5039: 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 @@ -5074,14 +5043,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:5054: \"$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 @@ -5109,7 +5078,7 @@ else fi echo $ac_n "checking for main in -lnsl_s""... $ac_c" 1>&6 -echo "configure:5113: checking for main in -lnsl_s" >&5 +echo "configure:5082: 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 @@ -5117,14 +5086,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:5097: \"$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 @@ -5152,7 +5121,7 @@ else fi echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:5156: checking for main in -lnsl" >&5 +echo "configure:5125: 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 @@ -5160,14 +5129,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:5140: \"$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 @@ -5195,7 +5164,7 @@ else fi echo $ac_n "checking for socket in -linet""... $ac_c" 1>&6 -echo "configure:5199: checking for socket in -linet" >&5 +echo "configure:5168: 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 @@ -5203,7 +5172,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:5187: \"$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 @@ -5242,7 +5211,7 @@ else fi echo $ac_n "checking for main in -lgen""... $ac_c" 1>&6 -echo "configure:5246: checking for main in -lgen" >&5 +echo "configure:5215: 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 @@ -5250,14 +5219,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:5230: \"$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 @@ -5289,12 +5258,12 @@ fi echo $ac_n "checking for select""... $ac_c" 1>&6 -echo "configure:5293: checking for select" >&5 +echo "configure:5262: 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:5291: \"$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 @@ -5341,7 +5310,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:5345: checking types of arguments for select()" >&5 +echo "configure:5314: 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 @@ -5355,7 +5324,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 < @@ -5374,7 +5343,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:5378: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:5347: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_not_found=no ; break 3 else @@ -5419,17 +5388,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:5423: checking for $ac_hdr" >&5 +echo "configure:5392: 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:5433: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5402: \"$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* @@ -5459,12 +5428,12 @@ if test "$ac_cv_header_regex_h" != yes ; then { echo "configure: error: POSIX regex.h required." 1>&2; exit 1; } fi echo $ac_n "checking for regfree""... $ac_c" 1>&6 -echo "configure:5463: checking for regfree" >&5 +echo "configure:5432: checking for regfree" >&5 if eval "test \"\${ac_cv_func_regfree+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:5461: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_regfree=yes" else @@ -5511,7 +5480,7 @@ fi echo $ac_n "checking for compatible POSIX regex""... $ac_c" 1>&6 -echo "configure:5515: checking for compatible POSIX regex" >&5 +echo "configure:5484: 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 @@ -5520,7 +5489,7 @@ else ol_cv_c_posix_regex=cross else cat > conftest.$ac_ext < @@ -5546,7 +5515,7 @@ main() return rc; } EOF -if { (eval echo configure:5550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:5519: \"$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 @@ -5567,12 +5536,12 @@ if test "$ol_cv_c_posix_regex" = no ; then fi echo $ac_n "checking for res_search""... $ac_c" 1>&6 -echo "configure:5571: checking for res_search" >&5 +echo "configure:5540: checking for res_search" >&5 if eval "test \"\${ac_cv_func_res_search+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:5569: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_res_search=yes" else @@ -5617,7 +5586,7 @@ fi if test $ac_cv_func_res_search = no ; then echo $ac_n "checking for res_search in -lbind""... $ac_c" 1>&6 -echo "configure:5621: checking for res_search in -lbind" >&5 +echo "configure:5590: checking for res_search in -lbind" >&5 ac_lib_var=`echo bind'_'res_search | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5625,7 +5594,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:5609: \"$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 @@ -5668,7 +5637,7 @@ fi if test $ac_cv_func_res_search = no ; then echo $ac_n "checking for __res_search in -lbind""... $ac_c" 1>&6 -echo "configure:5672: checking for __res_search in -lbind" >&5 +echo "configure:5641: checking for __res_search in -lbind" >&5 ac_lib_var=`echo bind'_'__res_search | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5676,7 +5645,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:5660: \"$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 @@ -5719,7 +5688,7 @@ fi if test $ac_cv_func_res_search = no ; then echo $ac_n "checking for res_search in -lresolv""... $ac_c" 1>&6 -echo "configure:5723: checking for res_search in -lresolv" >&5 +echo "configure:5692: checking for res_search in -lresolv" >&5 ac_lib_var=`echo resolv'_'res_search | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -5727,7 +5696,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:5711: \"$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 @@ -5780,242 +5749,22 @@ elif test $ol_enable_dns != no ; then fi -ol_link_isode=no -if test $ol_enable_ldapd != no ; then - echo "configure: warning: ldapd is not supported and may suffer from bit rot." 1>&2 - - echo $ac_n "checking for main in -lxtpp""... $ac_c" 1>&6 -echo "configure:5789: checking for main in -lxtpp" >&5 -ac_lib_var=`echo xtpp'_'main | sed 'y%./+-:%__p__%'` -if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lxtpp -lxtdsap -lxtisode -losi $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - - ol_link_isode=yes - cat >> confdefs.h <<\EOF -#define HAVE_XTPP 1 -EOF - - LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi" - -else - echo "$ac_t""no" 1>&6 -: -fi - - echo $ac_n "checking for main in -ldsap""... $ac_c" 1>&6 -echo "configure:5833: checking for main in -ldsap" >&5 -ac_lib_var=`echo dsap'_'main | sed 'y%./+-:%__p__%'` -if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-ldsap -lisode $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - - ol_link_isode=yes - cat >> confdefs.h <<\EOF -#define HAVE_DSAP 1 -EOF - - LDAPD_LIBS="$LDAPD_LIBS -ldsap" - -else - echo "$ac_t""no" 1>&6 -: -fi - - echo $ac_n "checking for main in -lisode""... $ac_c" 1>&6 -echo "configure:5877: checking for main in -lisode" >&5 -ac_lib_var=`echo isode'_'main | sed 'y%./+-:%__p__%'` -if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lisode $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - - ol_link_isode=yes - cat >> confdefs.h <<\EOF -#define HAVE_ISODE 1 -EOF - - LDAPD_LIBS="$LDAPD_LIBS -lisode" - -else - echo "$ac_t""no" 1>&6 -: -fi - -fi - -if test $ol_link_isode != no; then - echo $ac_n "checking for main in -lpp""... $ac_c" 1>&6 -echo "configure:5924: checking for main in -lpp" >&5 -ac_lib_var=`echo pp'_'main | sed 'y%./+-:%__p__%'` -if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lpp $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - - cat >> confdefs.h <<\EOF -#define HAVE_PP 1 -EOF - - LDAPD_LIBS="-lpp $LDAPD_LIBS" - -else - echo "$ac_t""no" 1>&6 -: -fi - - - # Extract the first word of "pepsy", so it can be a program name with args. -set dummy pepsy; ac_word=$2 -echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:5970: checking for $ac_word" >&5 -if eval "test \"\${ac_cv_path_PEPSY+set}\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - case "$PEPSY" in - /*) - ac_cv_path_PEPSY="$PEPSY" # Let the user override the test with a path. - ;; - ?:/*) - ac_cv_path_PEPSY="$PEPSY" # Let the user override the test with a dos path. - ;; - *) - IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" - ac_dummy="$PATH" - for ac_dir in $ac_dummy; do - test -z "$ac_dir" && ac_dir=. - if test -f $ac_dir/$ac_word; then - ac_cv_path_PEPSY="$ac_dir/$ac_word" - break - fi - done - IFS="$ac_save_ifs" - ;; -esac -fi -PEPSY="$ac_cv_path_PEPSY" -if test -n "$PEPSY"; then - echo "$ac_t""$PEPSY" 1>&6 -else - echo "$ac_t""no" 1>&6 -fi - -fi - if test $ol_enable_quipu != no ; then for ac_hdr in quipu/commonarg.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6009: checking for $ac_hdr" >&5 +echo "configure:5758: 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:6019: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5768: \"$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* @@ -6063,17 +5812,17 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k5 \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6067: checking for $ac_hdr" >&5 +echo "configure:5816: 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:6077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5826: \"$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* @@ -6105,17 +5854,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6109: checking for $ac_hdr" >&5 +echo "configure:5858: 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:6119: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:5868: \"$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* @@ -6149,7 +5898,7 @@ done if test $krb5_impl = mit; then echo $ac_n "checking for main in -lkrb5""... $ac_c" 1>&6 -echo "configure:6153: checking for main in -lkrb5" >&5 +echo "configure:5902: 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 @@ -6157,14 +5906,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 -lcrypto -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:5917: \"$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 @@ -6189,7 +5938,7 @@ fi elif test $krb5_impl = heimdal; then echo $ac_n "checking for main in -lkrb5""... $ac_c" 1>&6 -echo "configure:6193: checking for main in -lkrb5" >&5 +echo "configure:5942: 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 @@ -6197,14 +5946,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb5 -ldes -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:5957: \"$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 @@ -6266,17 +6015,17 @@ if test $ol_link_krb5 = yes -a \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6270: checking for $ac_hdr" >&5 +echo "configure:6019: 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:6280: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6029: \"$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* @@ -6306,7 +6055,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:6310: checking for main in -lkrb4" >&5 +echo "configure:6059: 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 @@ -6314,14 +6063,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6074: \"$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 @@ -6346,7 +6095,7 @@ fi elif test $krb5_impl = heimdal; then echo $ac_n "checking for main in -lkrb4""... $ac_c" 1>&6 -echo "configure:6350: checking for main in -lkrb4" >&5 +echo "configure:6099: 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 @@ -6354,14 +6103,14 @@ else ac_save_LIBS="$LIBS" LIBS="-lkrb4 -lkrb5 -ldes -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:6114: \"$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 @@ -6403,7 +6152,7 @@ EOF echo $ac_n "checking for des_debug in Kerberos libraries""... $ac_c" 1>&6 -echo "configure:6407: checking for des_debug in Kerberos libraries" >&5 +echo "configure:6156: 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 @@ -6411,7 +6160,7 @@ else save_LIBS="$LIBS" LIBS="$KRB4_LIBS $KRB5_LIBS $LIBS" cat > conftest.$ac_ext < @@ -6424,7 +6173,7 @@ des_debug = 1; ; return 0; } EOF -if { (eval echo configure:6428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:6177: \"$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 @@ -6463,17 +6212,17 @@ if test $ol_with_kerberos = auto -o $ol_with_kerberos = k4 \ do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:6467: checking for $ac_hdr" >&5 +echo "configure:6216: 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:6477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6226: \"$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* @@ -6502,7 +6251,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:6506: checking for main in -lkrb" >&5 +echo "configure:6255: 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 @@ -6510,14 +6259,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:6270: \"$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 @@ -6581,17 +6330,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:6585: checking for $ac_hdr" >&5 +echo "configure:6334: 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:6595: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6344: \"$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* @@ -6620,7 +6369,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:6624: checking for SSLeay_add_ssl_algorithms in -lssl" >&5 +echo "configure:6373: 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 @@ -6628,7 +6377,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:6392: \"$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 @@ -6664,7 +6413,7 @@ fi if test $have_ssleay = no ; then echo $ac_n "checking for SSL_library_init in -lssl""... $ac_c" 1>&6 -echo "configure:6668: checking for SSL_library_init in -lssl" >&5 +echo "configure:6417: 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 @@ -6672,7 +6421,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:6436: \"$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 @@ -6709,7 +6458,7 @@ fi if test $have_ssleay = no ; then echo $ac_n "checking for ssl3_accept in -lssl""... $ac_c" 1>&6 -echo "configure:6713: checking for ssl3_accept in -lssl" >&5 +echo "configure:6462: 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 @@ -6717,7 +6466,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:6481: \"$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 @@ -6788,12 +6537,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:6792: checking for $ac_func" >&5 +echo "configure:6541: 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:6570: \"$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 @@ -6846,19 +6595,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:6850: checking number of arguments of ctime_r" >&5 +echo "configure:6599: 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:6862: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6611: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_ctime_r_nargs3=yes else @@ -6870,14 +6619,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:6881: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6630: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_ctime_r_nargs2=yes else @@ -6917,12 +6666,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:6921: checking number of arguments of gethostbyname_r" >&5 +echo "configure:6670: 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 @@ -6936,7 +6685,7 @@ struct hostent hent; char buffer[BUFSIZE]; buffer, bufsize, &h_errno); ; return 0; } EOF -if { (eval echo configure:6940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6689: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyname_r_nargs5=yes else @@ -6948,7 +6697,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < #include @@ -6963,7 +6712,7 @@ struct hostent hent;struct hostent *rhent; &rhent, &h_errno); ; return 0; } EOF -if { (eval echo configure:6967: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6716: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyname_r_nargs6=yes else @@ -7004,12 +6753,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:7008: checking number of arguments of gethostbyaddr_r" >&5 +echo "configure:6757: 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 @@ -7025,7 +6774,7 @@ struct hostent hent; char buffer[BUFSIZE]; alen, AF_INET, &hent, buffer, bufsize, &h_errno); ; return 0; } EOF -if { (eval echo configure:7029: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6778: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyaddr_r_nargs7=yes else @@ -7037,7 +6786,7 @@ fi rm -f conftest* cat > conftest.$ac_ext < #include @@ -7055,7 +6804,7 @@ struct hostent hent; &rhent, &h_errno); ; return 0; } EOF -if { (eval echo configure:7059: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:6808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_func_gethostbyaddr_r_nargs8=yes else @@ -7118,18 +6867,18 @@ if test $ol_with_threads = auto -o $ol_with_threads = yes \ echo $ac_n "checking for NT Threads""... $ac_c" 1>&6 -echo "configure:7122: checking for NT Threads" >&5 +echo "configure:6871: checking for NT Threads" >&5 if eval "test \"\${ol_cv_nt_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else echo $ac_n "checking for _beginthread""... $ac_c" 1>&6 -echo "configure:7128: checking for _beginthread" >&5 +echo "configure:6877: 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:6906: \"$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 @@ -7213,17 +6962,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:7217: checking for $ac_hdr" >&5 +echo "configure:6966: 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:7227: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:6976: \"$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* @@ -7252,13 +7001,13 @@ done if test $ac_cv_header_pthread_h = yes ; then echo $ac_n "checking POSIX thread version""... $ac_c" 1>&6 -echo "configure:7256: checking POSIX thread version" >&5 +echo "configure:7005: 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 < @@ -7280,7 +7029,7 @@ rm -f conftest* cat > conftest.$ac_ext < @@ -7333,12 +7082,12 @@ EOF echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6 -echo "configure:7337: checking for LinuxThreads pthread.h" >&5 +echo "configure:7086: 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 @@ -7365,12 +7114,12 @@ EOF echo $ac_n "checking for GNU Pth pthread.h""... $ac_c" 1>&6 -echo "configure:7369: checking for GNU Pth pthread.h" >&5 +echo "configure:7118: 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 @@ -7399,17 +7148,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:7403: checking for $ac_hdr" >&5 +echo "configure:7152: 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:7413: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:7162: \"$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* @@ -7439,14 +7188,14 @@ done echo $ac_n "checking for pthread_create in default libraries""... $ac_c" 1>&6 -echo "configure:7443: checking for pthread_create in default libraries" >&5 +echo "configure:7192: 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 < @@ -7502,7 +7251,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7506: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7255: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_create=yes else @@ -7514,7 +7263,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -7575,7 +7324,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:7579: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7328: \"$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 @@ -7600,7 +7349,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:7604: checking for pthread link with -kthread" >&5 +echo "configure:7353: 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 @@ -7611,7 +7360,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -7667,7 +7416,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7671: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7420: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_kthread=yes else @@ -7679,7 +7428,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -7740,7 +7489,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:7744: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7493: \"$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 @@ -7770,7 +7519,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:7774: checking for pthread link with -pthread" >&5 +echo "configure:7523: 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 @@ -7781,7 +7530,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -7837,7 +7586,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:7841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_pthread=yes else @@ -7849,7 +7598,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -7910,7 +7659,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:7914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7663: \"$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 @@ -7940,7 +7689,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:7944: checking for pthread link with -pthreads" >&5 +echo "configure:7693: 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 @@ -7951,7 +7700,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8007,7 +7756,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7760: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_pthreads=yes else @@ -8019,7 +7768,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8080,7 +7829,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:7833: \"$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 @@ -8110,7 +7859,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:8114: checking for pthread link with -mthreads" >&5 +echo "configure:7863: 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 @@ -8121,7 +7870,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8177,7 +7926,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:7930: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_mthreads=yes else @@ -8189,7 +7938,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8250,7 +7999,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8254: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8003: \"$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 @@ -8280,7 +8029,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:8284: checking for pthread link with -thread" >&5 +echo "configure:8033: 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 @@ -8291,7 +8040,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8347,7 +8096,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8351: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_thread=yes else @@ -8359,7 +8108,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8420,7 +8169,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8173: \"$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 @@ -8451,7 +8200,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:8455: checking for pthread link with -lpthread -lmach -lexc -lc_r" >&5 +echo "configure:8204: 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 @@ -8462,7 +8211,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8518,7 +8267,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8271: \"$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 @@ -8530,7 +8279,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8591,7 +8340,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8344: \"$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 @@ -8621,7 +8370,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:8625: checking for pthread link with -lpthread -lmach -lexc" >&5 +echo "configure:8374: 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 @@ -8632,7 +8381,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8688,7 +8437,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8441: \"$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 @@ -8700,7 +8449,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8761,7 +8510,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8514: \"$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 @@ -8792,7 +8541,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:8796: checking for pthread link with -lpthread -Wl,-woff,85" >&5 +echo "configure:8545: 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 @@ -8803,7 +8552,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -8859,7 +8608,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:8863: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8612: \"$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 @@ -8871,7 +8620,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -8932,7 +8681,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:8936: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8685: \"$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 @@ -8963,7 +8712,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:8967: checking for pthread link with -lpthread" >&5 +echo "configure:8716: 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 @@ -8974,7 +8723,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9030,7 +8779,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9034: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8783: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_pthread_lpthread=yes else @@ -9042,7 +8791,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9103,7 +8852,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9107: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:8856: \"$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 @@ -9133,7 +8882,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:9137: checking for pthread link with -lc_r" >&5 +echo "configure:8886: 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 @@ -9144,7 +8893,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9200,7 +8949,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:8953: \"$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 @@ -9212,7 +8961,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9273,7 +9022,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9277: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9026: \"$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 @@ -9304,7 +9053,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:9308: checking for pthread link with -threads" >&5 +echo "configure:9057: 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 @@ -9315,7 +9064,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9371,7 +9120,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9375: \"$ac_link\") 1>&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* ol_cv_pthread_threads=yes else @@ -9383,7 +9132,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9444,7 +9193,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9197: \"$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 @@ -9475,7 +9224,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:9479: checking for pthread link with -lpthreads -lmach -lexc -lc_r" >&5 +echo "configure:9228: 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 @@ -9486,7 +9235,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9542,7 +9291,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9546: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9295: \"$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 @@ -9554,7 +9303,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9615,7 +9364,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9619: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9368: \"$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 @@ -9645,7 +9394,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:9649: checking for pthread link with -lpthreads -lmach -lexc" >&5 +echo "configure:9398: 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 @@ -9656,7 +9405,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9712,7 +9461,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9716: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9465: \"$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 @@ -9724,7 +9473,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9785,7 +9534,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9789: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9538: \"$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 @@ -9815,7 +9564,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:9819: checking for pthread link with -lpthreads -lexc" >&5 +echo "configure:9568: 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 @@ -9826,7 +9575,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -9882,7 +9631,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:9886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9635: \"$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 @@ -9894,7 +9643,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -9955,7 +9704,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:9959: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9708: \"$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 @@ -9986,7 +9735,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:9990: checking for pthread link with -lpthreads" >&5 +echo "configure:9739: 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 @@ -9997,7 +9746,7 @@ else if test "$cross_compiling" = yes; then cat > conftest.$ac_ext < @@ -10053,7 +9802,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:10057: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:9806: \"$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 @@ -10065,7 +9814,7 @@ fi rm -f conftest* else cat > conftest.$ac_ext < @@ -10126,7 +9875,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:10130: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:9879: \"$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 @@ -10168,12 +9917,12 @@ EOF for ac_func in sched_yield pthread_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10172: checking for $ac_func" >&5 +echo "configure:9921: 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:9950: \"$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 @@ -10225,7 +9974,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:10229: checking for sched_yield in -lrt" >&5 +echo "configure:9978: 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 @@ -10233,7 +9982,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:9997: \"$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 @@ -10276,12 +10025,12 @@ fi for ac_func in thr_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10280: checking for $ac_func" >&5 +echo "configure:10029: 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:10058: \"$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 @@ -10339,12 +10088,12 @@ done for ac_func in pthread_kill do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10343: checking for $ac_func" >&5 +echo "configure:10092: 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:10121: \"$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 @@ -10394,13 +10143,13 @@ done echo $ac_n "checking for pthread_detach with ""... $ac_c" 1>&6 -echo "configure:10398: checking for pthread_detach with " >&5 +echo "configure:10147: 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 < @@ -10412,7 +10161,7 @@ int main() { pthread_detach(NULL); ; return 0; } EOF -if { (eval echo configure:10416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10165: \"$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 @@ -10444,12 +10193,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:10448: checking for $ac_func" >&5 +echo "configure:10197: 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:10226: \"$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 @@ -10500,12 +10249,12 @@ done echo $ac_n "checking for pthread_kill_other_threads_np""... $ac_c" 1>&6 -echo "configure:10504: checking for pthread_kill_other_threads_np" >&5 +echo "configure:10253: checking for pthread_kill_other_threads_np" >&5 if eval "test \"\${ac_cv_func_pthread_kill_other_threads_np+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:10282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_pthread_kill_other_threads_np=yes" else @@ -10549,7 +10298,7 @@ else fi echo $ac_n "checking for LinuxThreads implementation""... $ac_c" 1>&6 -echo "configure:10553: checking for LinuxThreads implementation" >&5 +echo "configure:10302: 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 @@ -10562,7 +10311,7 @@ echo "$ac_t""$ol_cv_sys_linux_threads" 1>&6 echo $ac_n "checking for LinuxThreads consistency""... $ac_c" 1>&6 -echo "configure:10566: checking for LinuxThreads consistency" >&5 +echo "configure:10315: checking for LinuxThreads consistency" >&5 if eval "test \"\${ol_cv_linux_threads+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -10587,7 +10336,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:10591: checking if pthread_create() works" >&5 +echo "configure:10340: 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 @@ -10596,7 +10345,7 @@ else ol_cv_pthread_create_works=yes else cat > conftest.$ac_ext < @@ -10657,7 +10406,7 @@ int main(argc, argv) } EOF -if { (eval echo configure:10661: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10410: \"$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 @@ -10679,7 +10428,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:10683: checking if select yields when using pthreads" >&5 +echo "configure:10432: 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 @@ -10688,7 +10437,7 @@ else ol_cv_pthread_select_yields=cross else cat > conftest.$ac_ext < @@ -10764,7 +10513,7 @@ int main(argc, argv) exit(2); } EOF -if { (eval echo configure:10768: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:10517: \"$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 @@ -10808,17 +10557,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:10812: checking for $ac_hdr" >&5 +echo "configure:10561: 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:10822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10571: \"$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* @@ -10848,12 +10597,12 @@ done ol_with_threads=found echo $ac_n "checking for cthread_fork""... $ac_c" 1>&6 -echo "configure:10852: checking for cthread_fork" >&5 +echo "configure:10601: 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:10630: \"$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 @@ -10899,7 +10648,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:10903: checking for cthread_fork with -all_load" >&5 +echo "configure:10652: 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 @@ -10907,7 +10656,7 @@ else save_LIBS="$LIBS" LIBS="-all_load $LIBS" cat > conftest.$ac_ext < int main() { @@ -10916,7 +10665,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:10920: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:10669: \"$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 @@ -10961,17 +10710,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:10965: checking for $ac_hdr" >&5 +echo "configure:10714: 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:10975: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10724: \"$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* @@ -11000,7 +10749,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:11004: checking for pth_version in -lpth" >&5 +echo "configure:10753: 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 @@ -11008,7 +10757,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:10772: \"$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,17 +10812,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:11067: checking for $ac_hdr" >&5 +echo "configure:10816: 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:11077: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10826: \"$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* @@ -11101,7 +10850,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:11105: checking for thr_create in -lthread" >&5 +echo "configure:10854: 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 @@ -11109,7 +10858,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:10873: \"$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 @@ -11160,12 +10909,12 @@ EOF do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11164: checking for $ac_func" >&5 +echo "configure:10913: 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:10942: \"$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 @@ -11220,17 +10969,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11224: checking for $ac_hdr" >&5 +echo "configure:10973: 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:11234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:10983: \"$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* @@ -11258,7 +11007,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:11262: checking for lwp_create in -llwp" >&5 +echo "configure:11011: 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 @@ -11266,7 +11015,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:11030: \"$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 @@ -11330,17 +11079,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:11334: checking for $ac_hdr" >&5 +echo "configure:11083: 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:11344: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11093: \"$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* @@ -11369,12 +11118,12 @@ done for ac_func in sched_yield pthread_yield do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:11373: checking for $ac_func" >&5 +echo "configure:11122: 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:11151: \"$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 @@ -11424,12 +11173,12 @@ done echo $ac_n "checking for LinuxThreads pthread.h""... $ac_c" 1>&6 -echo "configure:11428: checking for LinuxThreads pthread.h" >&5 +echo "configure:11177: 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 @@ -11459,17 +11208,17 @@ EOF do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11463: checking for $ac_hdr" >&5 +echo "configure:11212: 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:11473: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11222: \"$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* @@ -11499,17 +11248,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11503: checking for $ac_hdr" >&5 +echo "configure:11252: 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:11513: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11262: \"$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* @@ -11539,17 +11288,17 @@ done do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11543: checking for $ac_hdr" >&5 +echo "configure:11292: 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:11553: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11302: \"$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* @@ -11608,20 +11357,20 @@ EOF echo $ac_n "checking for thread specific errno""... $ac_c" 1>&6 -echo "configure:11612: checking for thread specific errno" >&5 +echo "configure:11361: 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:11625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11374: \"$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 @@ -11637,20 +11386,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:11641: checking for thread specific h_errno" >&5 +echo "configure:11390: 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:11654: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:11403: \"$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 @@ -11709,17 +11458,17 @@ for ac_hdr in db_185.h db.h do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:11713: checking for $ac_hdr" >&5 +echo "configure:11462: 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:11723: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11472: \"$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* @@ -11747,13 +11496,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:11751: checking if Berkeley DB header compatibility" >&5 +echo "configure:11500: 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:11794: checking for Berkeley DB link (default)" >&5 +echo "configure:11543: 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 @@ -11800,7 +11549,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:11582: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_none=yes else @@ -11853,7 +11602,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:11857: checking for Berkeley DB link (-ldb)" >&5 +echo "configure:11606: 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 @@ -11863,7 +11612,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:11645: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db=yes else @@ -11916,7 +11665,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:11920: checking for Berkeley DB link (-ldb3)" >&5 +echo "configure:11669: 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 @@ -11926,7 +11675,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:11708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db3=yes else @@ -11979,7 +11728,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:11983: checking for Berkeley DB link (-ldb2)" >&5 +echo "configure:11732: 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 @@ -11989,7 +11738,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:11771: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db2=yes else @@ -12042,7 +11791,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:12046: checking for Berkeley DB link (-ldb1)" >&5 +echo "configure:11795: 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 @@ -12052,7 +11801,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:11834: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db1=yes else @@ -12116,17 +11865,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:12120: checking for $ac_hdr" >&5 +echo "configure:11869: 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:12130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:11879: \"$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* @@ -12156,7 +11905,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:12160: checking for Berkeley DB link (default)" >&5 +echo "configure:11909: 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 @@ -12166,7 +11915,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:11948: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_none=yes else @@ -12219,7 +11968,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:12223: checking for Berkeley DB link (-ldb)" >&5 +echo "configure:11972: 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 @@ -12229,7 +11978,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:12011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db=yes else @@ -12282,7 +12031,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:12286: checking for Berkeley DB link (-ldb3)" >&5 +echo "configure:12035: 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 @@ -12292,7 +12041,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:12074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db3=yes else @@ -12345,7 +12094,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:12349: checking for Berkeley DB link (-ldb2)" >&5 +echo "configure:12098: 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 @@ -12355,7 +12104,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:12137: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db2=yes else @@ -12408,7 +12157,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:12412: checking for Berkeley DB link (-ldb1)" >&5 +echo "configure:12161: 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 @@ -12418,7 +12167,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:12200: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_db_db1=yes else @@ -12473,7 +12222,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:12477: checking for Berkeley DB thread support" >&5 +echo "configure:12226: 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 @@ -12487,7 +12236,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:12280: \"$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 @@ -12591,18 +12340,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:12595: checking for MDBM library" >&5 +echo "configure:12344: 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:12601: checking for mdbm_set_chain" >&5 +echo "configure:12350: 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:12379: \"$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 @@ -12645,7 +12394,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for mdbm_set_chain in -lmdbm""... $ac_c" 1>&6 -echo "configure:12649: checking for mdbm_set_chain in -lmdbm" >&5 +echo "configure:12398: 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 @@ -12653,7 +12402,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:12417: \"$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 @@ -12699,17 +12448,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:12703: checking for $ac_hdr" >&5 +echo "configure:12452: 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:12713: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12462: \"$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* @@ -12736,7 +12485,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:12740: checking for db" >&5 +echo "configure:12489: checking for db" >&5 if eval "test \"\${ol_cv_mdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12769,18 +12518,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:12773: checking for GDBM library" >&5 +echo "configure:12522: 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:12779: checking for gdbm_open" >&5 +echo "configure:12528: 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:12557: \"$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 @@ -12823,7 +12572,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6 -echo "configure:12827: checking for gdbm_open in -lgdbm" >&5 +echo "configure:12576: 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 @@ -12831,7 +12580,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:12595: \"$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 @@ -12877,17 +12626,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:12881: checking for $ac_hdr" >&5 +echo "configure:12630: 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:12891: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12640: \"$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* @@ -12914,7 +12663,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:12918: checking for db" >&5 +echo "configure:12667: checking for db" >&5 if eval "test \"\${ol_cv_gdbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -12948,18 +12697,18 @@ fi if test $ol_with_ldbm_api = ndbm ; then echo $ac_n "checking for NDBM library""... $ac_c" 1>&6 -echo "configure:12952: checking for NDBM library" >&5 +echo "configure:12701: 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:12958: checking for dbm_open" >&5 +echo "configure:12707: 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:12736: \"$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 @@ -13002,7 +12751,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dbm_open in -lndbm""... $ac_c" 1>&6 -echo "configure:13006: checking for dbm_open in -lndbm" >&5 +echo "configure:12755: 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 @@ -13010,7 +12759,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:12774: \"$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 @@ -13041,7 +12790,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6 -echo "configure:13045: checking for dbm_open in -ldbm" >&5 +echo "configure:12794: 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 @@ -13049,7 +12798,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:12813: \"$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 @@ -13097,17 +12846,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:13101: checking for $ac_hdr" >&5 +echo "configure:12850: 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:13111: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12860: \"$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* @@ -13134,7 +12883,7 @@ fi done echo $ac_n "checking for db""... $ac_c" 1>&6 -echo "configure:13138: checking for db" >&5 +echo "configure:12887: checking for db" >&5 if eval "test \"\${ol_cv_ndbm+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -13196,17 +12945,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:13200: checking for $ac_hdr" >&5 +echo "configure:12949: 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:13210: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:12959: \"$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* @@ -13237,7 +12986,7 @@ done have_wrappers=no else cat > conftest.$ac_ext <&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:13000: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* have_wrappers=yes else @@ -13267,7 +13016,7 @@ EOF WRAP_LIBS="-lwrap" echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6 -echo "configure:13271: checking for main in -lnsl" >&5 +echo "configure:13020: 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 @@ -13275,14 +13024,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:13035: \"$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 @@ -13323,12 +13072,12 @@ fi if test $ol_enable_syslog != no ; then echo $ac_n "checking for openlog""... $ac_c" 1>&6 -echo "configure:13327: checking for openlog" >&5 +echo "configure:13076: 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:13105: \"$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 @@ -13382,17 +13131,17 @@ if test $ol_enable_tcl != no ; then do ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 -echo "configure:13386: checking for $ac_hdr" >&5 +echo "configure:13135: 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:13396: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13145: \"$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* @@ -13424,7 +13173,7 @@ done else for lib in tcl tcl7.6 tcl8.0 tcl8.2 ; do echo $ac_n "checking for main in -l$lib""... $ac_c" 1>&6 -echo "configure:13428: checking for main in -l$lib" >&5 +echo "configure:13177: checking for main in -l$lib" >&5 ac_lib_var=`echo $lib'_'main | sed 'y%./+-:%__p__%'` if eval "test \"\${ac_cv_lib_$ac_lib_var+set}\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -13432,14 +13181,14 @@ else ac_save_LIBS="$LIBS" LIBS="-l$lib $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13192: \"$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 @@ -13483,17 +13232,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:13487: checking for $ac_hdr" >&5 +echo "configure:13236: 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:13497: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13246: \"$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* @@ -13522,7 +13271,7 @@ done if test $ol_link_termcap = no ; then echo $ac_n "checking for tputs in -ltermcap""... $ac_c" 1>&6 -echo "configure:13526: checking for tputs in -ltermcap" >&5 +echo "configure:13275: 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 @@ -13530,7 +13279,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:13294: \"$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 @@ -13574,7 +13323,7 @@ fi if test $ol_link_termcap = no ; then echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6 -echo "configure:13578: checking for initscr in -lncurses" >&5 +echo "configure:13327: 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 @@ -13582,7 +13331,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:13346: \"$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 @@ -13637,17 +13386,17 @@ ol_link_spasswd=no if test $ol_with_cyrus_sasl != no ; then ac_safe=`echo "sasl.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for sasl.h""... $ac_c" 1>&6 -echo "configure:13641: checking for sasl.h" >&5 +echo "configure:13390: checking for sasl.h" >&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:13651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13400: \"$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* @@ -13671,7 +13420,7 @@ fi if test $ac_cv_header_sasl_h = yes ; then echo $ac_n "checking for sasl_client_init in -lsasl""... $ac_c" 1>&6 -echo "configure:13675: checking for sasl_client_init in -lsasl" >&5 +echo "configure:13424: 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 @@ -13679,7 +13428,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:13443: \"$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 @@ -13754,13 +13503,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:13758: checking fetch(3) library" >&5 +echo "configure:13507: 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 < @@ -13770,7 +13519,7 @@ int main() { struct url *u = fetchParseURL("file:///"); ; return 0; } EOF -if { (eval echo configure:13774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:13523: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* ol_cv_lib_fetch=yes else @@ -13808,17 +13557,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:13812: checking for $ac_hdr" >&5 +echo "configure:13561: 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:13822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13571: \"$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* @@ -13849,7 +13598,7 @@ done save_LIBS="$LIBS" LIBS="$TERMCAP_LIBS $LIBS" echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6 -echo "configure:13853: checking for readline in -lreadline" >&5 +echo "configure:13602: 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 @@ -13857,7 +13606,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:13621: \"$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 @@ -13910,12 +13659,12 @@ fi if test $ol_enable_crypt != no ; then echo $ac_n "checking for crypt""... $ac_c" 1>&6 -echo "configure:13914: checking for crypt" >&5 +echo "configure:13663: 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:13692: \"$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 @@ -13958,7 +13707,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6 -echo "configure:13962: checking for crypt in -lcrypt" >&5 +echo "configure:13711: 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 @@ -13966,7 +13715,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:13730: \"$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 @@ -14020,12 +13769,12 @@ fi if test $ol_enable_proctitle != no ; then echo $ac_n "checking for setproctitle""... $ac_c" 1>&6 -echo "configure:14024: checking for setproctitle" >&5 +echo "configure:13773: 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:13802: \"$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 @@ -14068,7 +13817,7 @@ else echo "$ac_t""no" 1>&6 echo $ac_n "checking for setproctitle in -lutil""... $ac_c" 1>&6 -echo "configure:14072: checking for setproctitle in -lutil" >&5 +echo "configure:13821: 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 @@ -14076,7 +13825,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:13840: \"$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 @@ -14123,12 +13872,12 @@ EOF fi echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6 -echo "configure:14127: checking for ANSI C header files" >&5 +echo "configure:13876: 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 @@ -14136,7 +13885,7 @@ else #include EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:14140: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:13889: \"$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* @@ -14153,7 +13902,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 @@ -14171,7 +13920,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 @@ -14192,7 +13941,7 @@ if test "$cross_compiling" = yes; then : else cat > conftest.$ac_ext < #if ((' ' & 0x0FF) == 0x020) @@ -14210,7 +13959,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2); exit (0); } EOF -if { (eval echo configure:14214: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:13963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then : else @@ -14234,12 +13983,12 @@ EOF fi echo $ac_n "checking for mode_t""... $ac_c" 1>&6 -echo "configure:14238: checking for mode_t" >&5 +echo "configure:13987: 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 @@ -14270,12 +14019,12 @@ EOF fi echo $ac_n "checking for off_t""... $ac_c" 1>&6 -echo "configure:14274: checking for off_t" >&5 +echo "configure:14023: 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 @@ -14306,12 +14055,12 @@ EOF fi echo $ac_n "checking for pid_t""... $ac_c" 1>&6 -echo "configure:14310: checking for pid_t" >&5 +echo "configure:14059: 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 @@ -14342,19 +14091,19 @@ EOF fi echo $ac_n "checking for ptrdiff_t""... $ac_c" 1>&6 -echo "configure:14346: checking for ptrdiff_t" >&5 +echo "configure:14095: 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:14358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14107: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* am_cv_type_ptrdiff_t=yes else @@ -14375,12 +14124,12 @@ EOF fi echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6 -echo "configure:14379: checking return type of signal handlers" >&5 +echo "configure:14128: 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 @@ -14397,7 +14146,7 @@ int main() { int i; ; return 0; } EOF -if { (eval echo configure:14401: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14150: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_type_signal=void else @@ -14416,12 +14165,12 @@ EOF echo $ac_n "checking for size_t""... $ac_c" 1>&6 -echo "configure:14420: checking for size_t" >&5 +echo "configure:14169: 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 @@ -14453,12 +14202,12 @@ fi echo $ac_n "checking for ssize_t""... $ac_c" 1>&6 -echo "configure:14457: checking for ssize_t" >&5 +echo "configure:14206: 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 @@ -14489,12 +14238,12 @@ EOF fi echo $ac_n "checking for caddr_t""... $ac_c" 1>&6 -echo "configure:14493: checking for caddr_t" >&5 +echo "configure:14242: 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 @@ -14526,12 +14275,12 @@ fi echo $ac_n "checking for socklen_t""... $ac_c" 1>&6 -echo "configure:14530: checking for socklen_t" >&5 +echo "configure:14279: 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:14298: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_type_socklen_t=yes else @@ -14566,12 +14315,12 @@ EOF fi echo $ac_n "checking for member st_blksize in aggregate type struct stat""... $ac_c" 1>&6 -echo "configure:14570: checking for member st_blksize in aggregate type struct stat" >&5 +echo "configure:14319: 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 @@ -14579,7 +14328,7 @@ int main() { struct stat foo; foo.st_blksize; ; return 0; } EOF -if { (eval echo configure:14583: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14332: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_struct_member_st_blksize=yes else @@ -14601,12 +14350,12 @@ EOF fi echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6 -echo "configure:14605: checking whether time.h and sys/time.h may both be included" >&5 +echo "configure:14354: 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 @@ -14615,7 +14364,7 @@ int main() { struct tm *tp; ; return 0; } EOF -if { (eval echo configure:14619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14368: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_header_time=yes else @@ -14636,12 +14385,12 @@ EOF fi echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6 -echo "configure:14640: checking whether struct tm is in sys/time.h or time.h" >&5 +echo "configure:14389: 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 @@ -14649,7 +14398,7 @@ int main() { struct tm *tp; tp->tm_sec; ; return 0; } EOF -if { (eval echo configure:14653: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14402: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_struct_tm=time.h else @@ -14670,12 +14419,12 @@ EOF fi echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6 -echo "configure:14674: checking for uid_t in sys/types.h" >&5 +echo "configure:14423: 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 @@ -14704,19 +14453,19 @@ EOF fi echo $ac_n "checking for sig_atomic_t""... $ac_c" 1>&6 -echo "configure:14708: checking for sig_atomic_t" >&5 +echo "configure:14457: 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:14720: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14469: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_type_sig_atomic_t=yes else @@ -14740,13 +14489,13 @@ EOF # test for pw_gecos in struct passwd echo $ac_n "checking struct passwd for pw_gecos""... $ac_c" 1>&6 -echo "configure:14744: checking struct passwd for pw_gecos" >&5 +echo "configure:14493: 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() { @@ -14756,7 +14505,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14760: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14509: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_struct_passwd_pw_gecos=yes else @@ -14778,13 +14527,13 @@ fi # test for pw_passwd in struct passwd echo $ac_n "checking struct passwd for pw_passwd""... $ac_c" 1>&6 -echo "configure:14782: checking struct passwd for pw_passwd" >&5 +echo "configure:14531: 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() { @@ -14794,7 +14543,7 @@ int main() { ; return 0; } EOF -if { (eval echo configure:14798: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14547: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_struct_passwd_pw_passwd=yes else @@ -14816,7 +14565,7 @@ fi echo $ac_n "checking if toupper() requires islower()""... $ac_c" 1>&6 -echo "configure:14820: checking if toupper() requires islower()" >&5 +echo "configure:14569: 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 @@ -14825,7 +14574,7 @@ else ol_cv_c_upper_lower=safe else cat > conftest.$ac_ext < @@ -14837,7 +14586,7 @@ main() exit(1); } EOF -if { (eval echo configure:14841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:14590: \"$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 @@ -14860,12 +14609,12 @@ EOF fi echo $ac_n "checking for working const""... $ac_c" 1>&6 -echo "configure:14864: checking for working const" >&5 +echo "configure:14613: 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:14667: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_const=yes else @@ -14935,12 +14684,12 @@ EOF fi echo $ac_n "checking if compiler understands volatile""... $ac_c" 1>&6 -echo "configure:14939: checking if compiler understands volatile" >&5 +echo "configure:14688: 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:14702: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ol_cv_c_volatile=yes else @@ -14979,14 +14728,14 @@ EOF else echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6 -echo "configure:14983: checking whether byte ordering is bigendian" >&5 +echo "configure:14732: 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 @@ -14997,11 +14746,11 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:15001: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14750: \"$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 @@ -15012,7 +14761,7 @@ int main() { #endif ; return 0; } EOF -if { (eval echo configure:15016: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14765: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_c_bigendian=yes else @@ -15032,7 +14781,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:14798: \"$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 @@ -15071,13 +14820,13 @@ fi fi echo $ac_n "checking size of short""... $ac_c" 1>&6 -echo "configure:15075: checking size of short" >&5 +echo "configure:14824: 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 < @@ -15087,7 +14836,7 @@ int main() { switch (0) case 0: case (sizeof (short) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:15091: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14840: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_short=$ac_size else @@ -15110,13 +14859,13 @@ EOF echo $ac_n "checking size of int""... $ac_c" 1>&6 -echo "configure:15114: checking size of int" >&5 +echo "configure:14863: 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 < @@ -15126,7 +14875,7 @@ int main() { switch (0) case 0: case (sizeof (int) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:15130: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14879: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_int=$ac_size else @@ -15149,13 +14898,13 @@ EOF echo $ac_n "checking size of long""... $ac_c" 1>&6 -echo "configure:15153: checking size of long" >&5 +echo "configure:14902: 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 < @@ -15165,7 +14914,7 @@ int main() { switch (0) case 0: case (sizeof (long) == $ac_size):; ; return 0; } EOF -if { (eval echo configure:15169: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:14918: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* ac_cv_sizeof_long=$ac_size else @@ -15216,7 +14965,7 @@ EOF echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:15220: checking for 8-bit clean memcmp" >&5 +echo "configure:14969: 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 @@ -15224,7 +14973,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:14987: \"$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 @@ -15252,12 +15001,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:15256: checking for strftime" >&5 +echo "configure:15005: 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:15034: \"$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 @@ -15303,7 +15052,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:15307: checking for strftime in -lintl" >&5 +echo "configure:15056: 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 @@ -15311,7 +15060,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:15075: \"$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 @@ -15350,12 +15099,12 @@ fi echo $ac_n "checking for inet_aton()""... $ac_c" 1>&6 -echo "configure:15354: checking for inet_aton()" >&5 +echo "configure:15103: 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:15130: \"$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 @@ -15399,12 +15148,12 @@ EOF echo $ac_n "checking for _spawnlp""... $ac_c" 1>&6 -echo "configure:15403: checking for _spawnlp" >&5 +echo "configure:15152: 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:15181: \"$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 @@ -15452,12 +15201,12 @@ fi echo $ac_n "checking for _snprintf""... $ac_c" 1>&6 -echo "configure:15456: checking for _snprintf" >&5 +echo "configure:15205: 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:15234: \"$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 @@ -15507,12 +15256,12 @@ fi echo $ac_n "checking for _vsnprintf""... $ac_c" 1>&6 -echo "configure:15511: checking for _vsnprintf" >&5 +echo "configure:15260: 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:15289: \"$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 @@ -15562,12 +15311,12 @@ fi echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:15566: checking for vprintf" >&5 +echo "configure:15315: 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:15344: \"$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 @@ -15615,12 +15364,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:15619: checking for _doprnt" >&5 +echo "configure:15368: 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:15397: \"$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 @@ -15673,12 +15422,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:15677: checking for $ac_func" >&5 +echo "configure:15426: 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:15455: \"$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 @@ -15781,12 +15530,12 @@ for ac_func in \ do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15785: checking for $ac_func" >&5 +echo "configure:15534: 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:15563: \"$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 @@ -15838,12 +15587,12 @@ done for ac_func in getopt tempnam do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:15842: checking for $ac_func" >&5 +echo "configure:15591: 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:15620: \"$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 @@ -15904,13 +15653,13 @@ fi # Check Configuration echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6 -echo "configure:15908: checking declaration of sys_errlist" >&5 +echo "configure:15657: 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 < @@ -15923,7 +15672,7 @@ int main() { char *c = (char *) *sys_errlist ; return 0; } EOF -if { (eval echo configure:15927: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then +if { (eval echo configure:15676: \"$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 @@ -15946,20 +15695,20 @@ EOF echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6 -echo "configure:15950: checking existence of sys_errlist" >&5 +echo "configure:15699: 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:15963: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:15712: \"$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 @@ -16269,10 +16018,6 @@ if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \ BUILD_SLURPD=yes fi -if test "$ol_link_isode" != no ; then - BUILD_LDAPD=yes -fi - if test "$LINK_BINS_DYNAMIC" = yes; then LIB_LINKAGE=DYN @@ -16298,7 +16043,6 @@ fi - @@ -16436,7 +16180,6 @@ libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib. libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \ libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \ servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \ -servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \ servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \ servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/mod.mk \ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \ @@ -16536,14 +16279,12 @@ s%@EXEEXT@%$EXEEXT%g s%@OBJEXT@%$OBJEXT%g s%@OL_MKDEP@%$OL_MKDEP%g s%@OL_MKDEP_FLAGS@%$OL_MKDEP_FLAGS%g -s%@PEPSY@%$PEPSY%g s%@LIBOBJS@%$LIBOBJS%g s%@LIBSRCS@%$LIBSRCS%g s%@PLAT@%$PLAT%g s%@LIB_LINKAGE@%$LIB_LINKAGE%g s%@LT_LIB_LINKAGE@%$LT_LIB_LINKAGE%g s%@DYN_EXT@%$DYN_EXT%g -s%@BUILD_LDAPD@%$BUILD_LDAPD%g s%@BUILD_SLAPD@%$BUILD_SLAPD%g s%@BUILD_BDB2@%$BUILD_BDB2%g s%@BUILD_DNSSRV@%$BUILD_DNSSRV%g @@ -16566,9 +16307,9 @@ s%@BUILD_SQL_DYNAMIC@%$BUILD_SQL_DYNAMIC%g s%@BUILD_TCL_DYNAMIC@%$BUILD_TCL_DYNAMIC%g s%@BUILD_SLURPD@%$BUILD_SLURPD%g s%@LDAP_LIBS@%$LDAP_LIBS%g -s%@LDAPD_LIBS@%$LDAPD_LIBS%g s%@LDIF_LIBS@%$LDIF_LIBS%g s%@SLAPD_LIBS@%$SLAPD_LIBS%g +s%@QUIPU_LIBS@%$QUIPU_LIBS%g s%@SLURPD_LIBS@%$SLURPD_LIBS%g s%@LDBM_LIBS@%$LDBM_LIBS%g s%@LTHREAD_LIBS@%$LTHREAD_LIBS%g @@ -16661,7 +16402,6 @@ libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib. libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \ libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \ servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \ -servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \ servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \ servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/mod.mk \ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \ diff --git a/configure.in b/configure.in index 97dfb7401a..87037a93c2 100644 --- a/configure.in +++ b/configure.in @@ -124,9 +124,6 @@ OL_ARG_WITH(yielding_select,[ --with-yielding-select with implicitly yielding s dnl ---------------------------------------------------------------- dnl Server options dnl ---------------------------------------------------------------- -dnl LDAPD OPTIONS -AC_ARG_WITH(xxldapdoptions,[LDAPD (X.500-to-LDAP Gateway) Options:]) -OL_ARG_ENABLE(ldapd,[ --enable-ldapd enable building ldapd], no)dnl dnl ---------------------------------------------------------------- dnl SLAPD OPTIONS @@ -430,11 +427,10 @@ LDBM_LIBS= LTHREAD_LIBS= LUTIL_LIBS= -LDAPD_LIBS= +QUIPU_LIBS= SLAPD_LIBS= SLURPD_LIBS= -BUILD_LDAPD=no BUILD_SLAPD=no BUILD_SLURPD=no @@ -829,39 +825,6 @@ elif test $ol_enable_dns != no ; then fi -dnl ---------------------------------------------------------------- -dnl ISODE tests -ol_link_isode=no -if test $ol_enable_ldapd != no ; then - AC_MSG_WARN([ldapd is not supported and may suffer from bit rot.]) - - dnl look for ISODE libraries - AC_CHECK_LIB(xtpp, main, [ - ol_link_isode=yes - AC_DEFINE(HAVE_XTPP,1, [define if you have -lxttp]) - LDAPD_LIBS="$LDAPD_LIBS -lxtpp -lxtdsap -lxtisode -losi" - ],:,[-lxtdsap -lxtisode -losi]) - AC_CHECK_LIB(dsap, main, [ - ol_link_isode=yes - AC_DEFINE(HAVE_DSAP,1, [define if you have -ldsap]) - LDAPD_LIBS="$LDAPD_LIBS -ldsap" - ],:,[-lisode]) - AC_CHECK_LIB(isode, main, [ - ol_link_isode=yes - AC_DEFINE(HAVE_ISODE,1, [define if you have -lisode]) - LDAPD_LIBS="$LDAPD_LIBS -lisode" - ],:) -fi - -if test $ol_link_isode != no; then - AC_CHECK_LIB(pp, main, [ - AC_DEFINE(HAVE_PP,1, [define if you have -lpp]) - LDAPD_LIBS="-lpp $LDAPD_LIBS" - ],:) - - AC_PATH_PROG(PEPSY, pepsy) -fi - dnl ---------------------------------------------------------------- dnl QUIPU if test $ol_enable_quipu != no ; then @@ -2364,10 +2327,6 @@ if test "$ol_enable_slurpd" != no -a "$ol_link_threads" != no -a \ BUILD_SLURPD=yes fi -if test "$ol_link_isode" != no ; then - BUILD_LDAPD=yes -fi - dnl ---------------------------------------------------------------- if test "$LINK_BINS_DYNAMIC" = yes; then @@ -2393,7 +2352,6 @@ AC_SUBST(LIB_LINKAGE) AC_SUBST(LT_LIB_LINKAGE) AC_SUBST(DYN_EXT) -AC_SUBST(BUILD_LDAPD) AC_SUBST(BUILD_SLAPD) AC_SUBST(BUILD_BDB2) AC_SUBST(BUILD_DNSSRV) @@ -2417,9 +2375,9 @@ AC_SUBST(BUILD_SLAPD) AC_SUBST(BUILD_SLURPD) AC_SUBST(LDAP_LIBS) -AC_SUBST(LDAPD_LIBS) AC_SUBST(LDIF_LIBS) AC_SUBST(SLAPD_LIBS) +AC_SUBST(QUIPU_LIBS) AC_SUBST(SLURPD_LIBS) AC_SUBST(LDBM_LIBS) AC_SUBST(LTHREAD_LIBS) @@ -2480,7 +2438,6 @@ libraries/libldif/Makefile:build/top.mk:libraries/libldif/Makefile.in:build/lib. libraries/liblunicode/Makefile:build/top.mk:libraries/liblunicode/Makefile.in:build/lib.mk:build/lib-static.mk \ libraries/liblutil/Makefile:build/top.mk:libraries/liblutil/Makefile.in:build/lib.mk:build/lib-static.mk \ servers/Makefile:build/top.mk:servers/Makefile.in:build/dir.mk \ -servers/ldapd/Makefile:build/top.mk:servers/ldapd/Makefile.in:build/srv.mk \ servers/slapd/Makefile:build/top.mk:servers/slapd/Makefile.in:build/srv.mk \ servers/slapd/back-bdb2/Makefile:build/top.mk:servers/slapd/back-bdb2/Makefile.in:build/mod.mk \ servers/slapd/back-dnssrv/Makefile:build/top.mk:servers/slapd/back-dnssrv/Makefile.in:build/mod.mk \ diff --git a/doc/man/man8/ldapd.8 b/doc/man/man8/ldapd.8 deleted file mode 100644 index cc06e13afd..0000000000 --- a/doc/man/man8/ldapd.8 +++ /dev/null @@ -1,136 +0,0 @@ -.TH LDAPD 8C "19 September 1999" "OpenLDAP LDVERSION" -.\" $OpenLDAP$ -.\" Copyright 1998-2000 The OpenLDAP Foundation All Rights Reserved. -.\" Copying restrictions apply. See COPYRIGHT/LICENSE. -.SH NAME -ldapd \- LDAP X.500 Protocol Daemon -.SH SYNOPSIS -.B LIBEXECDIR/ldapd [\-d level] [\-l] [\-c dsaname] -.B [\-p port] [\-t timeout] [\-r referraltimeout] -.B [\-I] [\-U] -.I (deprecated) -.SH DESCRIPTION -.LP -.B Ldapd -is the LDAP to X.500 gateway daemon. The LDAP protocol is used to -provide lightweight TCP/IP access to the X.500 Directory. The -.B ldapd -server is typically invoked at boot time, usually out of -.BR /etc/rc.local . -Upon startup, -.B ldapd -normally forks and disassociates itself from the invoking tty, and then -listens on port 389 for TCP connections from LDAP clients. -The server performs the following basic operations for the client: -.TP 14 -.B Bind -Bind to the X.500 directory. Currently only simple (clear-text password) -and kerberos version 4 authentication are supported. -.TP -.B Search -Search the X.500 directory for entries that match a given filter. -The scope of the search can be base object, one level, or whole subtree. -Note that the X.500 read and list can be emulated using search. -.TP -.B Modify -Change the attributes and values of an existing X.500 entry. -.TP -.B Modify RDN -Change the Relative Distinguished Name of an X.500 entry. -.TP -.B Add -Add an entry to the X.500 directory. -.TP -.B Remove -Remove an entry from the X.500 directory. -.TP -.B Abandon -Abort an operation in progress. -.LP -See -.BR ldap (3) -for details on client-side access to the ldap server. See -.I RFC 1777: Lightweight Directory Access Protocol -and -.I RFC 1778: The String Representation of -.I Standard Attribute Syntaxes -for details of the protocol supporting the above operations. -.SH OPTIONS -.TP -.BI \-d " level" -Turn on debugging as defined by -.I level. -If this option is specified, -.I ldapd -will not fork or disassociate from the invoking terminal. Some general -operation and status messages are printed for any value of \fIlevel\fP. -\fIlevel\fP is taken as a bit string, with each bit corresponding to a -different kind of debugging information. See for details. -.TP -.B \-l -Enable logging of various status and errors to the LOG_LOCAL4 facility via -.BR syslog (8). -.TP -.RB \-c " dsaname" -Connect to the named DSA initially. The -.I dsaname -given should be a name found in the local dsaptailor file or an -actual presentation address. -.TP -.BI \-p " port" -Listen on port -.I port -instead of the default port. This is useful for debugging purposes. -.TP -.BI \-t " timeout" -Specify the timeout value after which idle connections from -clients are closed. -.TP -.BI \-r " referraltimeout" -Specify the timeout value after which idle connections to DSAs -are closed. -.TP -.B \-I -Run from -.BR inetd (8) -instead of as a stand-alone daemon. -.TP -.B \-U -Support Connectionless LDAP (CLDAP). In this mode, ldapd listens for -CLDAP search requests only on a UDP port, performs the search, and -returns the result. See -.BR udp (4) -for more information on UDP. -.SH EXAMPLES -To start ldapd and have it fork and detach from the terminal and connect -to the first DSA listed in the dsaptailor file, just type: -.LP -.nf -.ft tt - LIBEXECDIR/ldapd -.ft -.fi -.LP -To connect to an alternate DSA and turn on voluminous debugging which -will be printed on standard error, type: -.LP -.nf -.ft tt - LIBEXECDIR/ldapd -c dsanameoraddr -d 31 -.ft -.fi -.LP -where dsanameoraddr is a presentation address or a name that appears -in the local dsaptailor file. -.SH "SEE ALSO" -.BR ldap (3), -.BR udp (4), -.BR slapd (8) -.BR inetd (8) -.LP -Volume 5 of The ISODE Manual -.SH ACKNOWLEDGEMENTS -.B OpenLDAP -is developed and maintained by The OpenLDAP Project (http://www.openldap.org/). -.B OpenLDAP -is derived from University of Michigan LDAP 3.3 Release. diff --git a/include/portable.h.in b/include/portable.h.in index 335d22b90a..0441995f49 100644 --- a/include/portable.h.in +++ b/include/portable.h.in @@ -618,18 +618,6 @@ /* define if you have res_search() */ #undef HAVE_RES_SEARCH -/* define if you have -lxttp */ -#undef HAVE_XTPP - -/* define if you have -ldsap */ -#undef HAVE_DSAP - -/* define if you have -lisode */ -#undef HAVE_ISODE - -/* define if you have -lpp */ -#undef HAVE_PP - /* define if you have HEIMDAL Kerberos */ #undef HAVE_HEIMDAL_KERBEROS diff --git a/servers/Makefile.in b/servers/Makefile.in index 0773b8bfeb..f44196330a 100644 --- a/servers/Makefile.in +++ b/servers/Makefile.in @@ -4,5 +4,5 @@ ## ## servers Makefile.in for OpenLDAP -SUBDIRS= ldapd slapd slurpd +SUBDIRS= slapd slurpd diff --git a/servers/ldapd/Makefile.in b/servers/ldapd/Makefile.in deleted file mode 100644 index 951782667e..0000000000 --- a/servers/ldapd/Makefile.in +++ /dev/null @@ -1,52 +0,0 @@ -# $OpenLDAP$ -## -## Makefile.in for ldapd -## -PROGRAMS=ldapd -XPROGRAMS=sldapd - -XSRCS = version.c - -SRCS = main.c request.c bind.c result.c error.c \ - search.c util.c compare.c message.c add.c delete.c modrdn.c modify.c \ - abandon.c syntax.c association.c kerberos.c certificate.c -OBJS = main.o request.o bind.o result.o error.o \ - search.o util.o compare.o message.o add.o delete.o modrdn.o modify.o \ - abandon.o syntax.o association.o kerberos.o LDAP_tables.o \ - certificate.o - -LDAP_INCDIR= ../../include -LDAP_LIBDIR= ../../libraries - -BUILD_OPT = "--enable-ldapd" -BUILD_SRV = @BUILD_LDAPD@ - -all-local-srv: ldapd - -XLIBS= -llber -llutil -XXLIBS= $(LDAPD_LIBS) $(SECURITY_LIBS) $(LUTIL_LIBS) - -ldapd: version.o - $(LTLINK) -o $@ $(OBJS) version.o $(LIBS) - -sldapd: version.o - $(LTLINK) -static -o $@ $(OBJS) version.o $(LIBS) - -version.c: $(OBJS) $(LDAP_LIBLBER_DEPEND) - $(RM) $@ - $(MKVERSION) ldapd > $@ - -request.o: LDAP-types.h - -LDAP_tables.c: ldap.py - @if [ ! -z "$(PEPSY)" ]; then \ - $(PEPSY) -A ldap.py; \ - else \ - touch LDAP_tables.c LDAP-types.h; \ - fi - -LDAP-types.h: LDAP_tables.c - -install-local-srv: FORCE - -$(MKDIR) $(DESTDIR)$(libexecdir) - $(LTINSTALL) $(INSTALLFLAGS) -s -m 755 ldapd $(DESTDIR)$(libexecdir) diff --git a/servers/ldapd/README b/servers/ldapd/README deleted file mode 100644 index 5fb15f1337..0000000000 --- a/servers/ldapd/README +++ /dev/null @@ -1,2 +0,0 @@ -LDAPD is no longer supported nor actively maintained. -This code may suffer from bitrot. diff --git a/servers/ldapd/abandon.c b/servers/ldapd/abandon.c deleted file mode 100644 index 0488593a2f..0000000000 --- a/servers/ldapd/abandon.c +++ /dev/null @@ -1,67 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -int -do_abandon( - struct conn *dsaconn, - BerElement *ber, - int msgid -) -{ - int id; - struct ds_abandon_arg aa; - struct DAPindication di; - - Debug( LDAP_DEBUG_TRACE, "do_abandon\n", 0, 0 ,0 ); - - /* - * Parse the abandon request. It looks like this: - * AbandonRequest := MessageID - */ - - if ( ber_scanf( ber, "i", &id ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0 ,0 ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_abandin: id %d\n", id, 0 ,0 ); - - aa.aba_invokeid = id; - - Debug( LDAP_DEBUG_TRACE, "DapAbandon...\n", 0, 0 ,0 ); - if ( DapAbandon( dsaconn->c_ad, msgid, &aa, &di, ROS_ASYNC ) - == NOTOK ) { - Debug( LDAP_DEBUG_ANY, "DapAbandon failed\n", 0, 0 ,0 ); - return( 0 ); - } - Debug( LDAP_DEBUG_TRACE, "DapAbandon completed\n", 0, 0 ,0 ); - - return( 0 ); -} diff --git a/servers/ldapd/add.c b/servers/ldapd/add.c deleted file mode 100644 index c6ad418836..0000000000 --- a/servers/ldapd/add.c +++ /dev/null @@ -1,128 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include - -#include -#include -#include -#include -#include -#include -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef LDAP_COMPAT20 -#define ADDTAG (ldap_compat == 20 ? OLD_LDAP_RES_ADD : LDAP_RES_ADD) -#else -#define ADDTAG LDAP_RES_ADD -#endif - -int -do_add( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - char *dn; - char *type, *last; - struct berval **bvals; - int rc; - unsigned long tag, len; - struct ds_addentry_arg aa; - static CommonArgs common = default_common_args; - - Debug( LDAP_DEBUG_TRACE, "do_add\n", 0, 0, 0 ); - - /* - * Parse the add request. It looks like this: - * AddRequest := [APPLICATION 14] SEQUENCE { - * name DistinguishedName, - * attrs SEQUENCE OF SEQUENCE { - * type AttributeType, - * values SET OF AttributeValue - * } - * } - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_AddEntryArgument_INIT ( &aa ); -#endif -#endif - - if ( ber_scanf( ber, "{a", &dn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, ADDTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_add: dn (%s)\n", dn, 0, 0 ); - - aa.ada_object = ldap_str2dn( dn ); - free( dn ); - if ( aa.ada_object == NULLDN ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, ADDTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - - /* break out once we read them all, or return out on error */ - aa.ada_entry = NULLATTR; - for ( tag = ber_first_element( ber, &len, &last ); tag != LBER_DEFAULT; - tag = ber_next_element( ber, &len, last ) ) { - Attr_Sequence as; - - if ( ber_scanf( ber, "{a{V}}", &type, &bvals ) == LBER_ERROR ) - break; - - if ( (as = get_as( clientsb, LDAP_RES_ADD, m, type, - bvals )) == NULLATTR ) - return( 0 ); - - aa.ada_entry = as_merge( aa.ada_entry, as ); - } - - aa.ada_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_ADDENTRY, m, &aa ); - - dn_free( aa.ada_object ); - as_free( aa.ada_entry ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, ADDTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -void -add_result( - Sockbuf *sb, - struct msg *m -) -{ - send_ldap_msgresult( sb, ADDTAG, m, LDAP_SUCCESS, NULL, "" ); - - return; -} diff --git a/servers/ldapd/association.c b/servers/ldapd/association.c deleted file mode 100644 index d704851d3c..0000000000 --- a/servers/ldapd/association.c +++ /dev/null @@ -1,286 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include -#include - -#include -#include -#include /* get dap_unbind() */ -#if ISODEPACKAGE == IC -#include -#else -#include -#endif - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef HAVE_SYS_IOCTL_H -#include -#endif -#ifdef HAVE_SYS_FILIO_H -#include -#endif - -#ifdef __hpux -#define FIOGETOWN FIOGSAIOOWN -#endif - -struct conn *conns; - -struct conn * -conn_dup( struct conn *cn ) -{ - struct conn *new; - if ( (new = (struct conn *) malloc( sizeof(struct conn) )) == NULL ) - return( NULL ); - - *new = *cn; - new->c_next = NULL; - new->c_time = 0L; - new->c_paddr = psap_cpy( cn->c_paddr ); - new->c_dn = strdup( cn->c_dn ); - if ( new->c_credlen > 0 ) { - new->c_cred = (char *) malloc( cn->c_credlen ); - SAFEMEMCPY( new->c_cred, cn->c_cred, cn->c_credlen ); - } else { - new->c_cred = ""; - } - new->c_credlen = cn->c_credlen; - new->c_refcnt = 1; - - return( new ); -} - -int -conn_init( void ) -{ - struct PSAPaddr *addr; - - if ( (conns = (struct conn *) malloc( sizeof(struct conn) )) == NULL ) { - Debug( LDAP_DEBUG_ANY, "conn_init: malloc failed\n", 0, 0, 0 ); - return( -1 ); - } - - conns->c_ad = -1; - conns->c_dn = NULL; - conns->c_cred = NULL; - conns->c_credlen = 0; - - if ( dsa_address == NULL || (addr = str2paddr( dsa_address )) - == NULLPA ) { - conns->c_paddr = NULLPA; - Debug( LDAP_DEBUG_ANY, "conn_init: bad DSA address (%s)\n", - dsa_address ? dsa_address : "NULL", 0, 0 ); - } else { - conns->c_paddr = psap_cpy( addr ); - } - - conns->c_refcnt = 1; /* this conn is never deleted */ - conns->c_next = NULL; - - return( 0 ); -} - -void -conn_free( struct conn *conn ) -{ - struct timeval tv; - - Debug( LDAP_DEBUG_TRACE, "conn_free (%s): refcnt is %d\n", - paddr2str( conn->c_paddr, NULLNA ), conn->c_refcnt, 0 ); - - if ( --conn->c_refcnt > 0 ) - return; - - gettimeofday( &tv, (struct timezone *)NULL ); - if ( conn->c_time != 0L && (tv.tv_sec - conn->c_time) - < referral_connection_timeout ) { - Debug( LDAP_DEBUG_TRACE, "conn_free: referral conn ttl is %d\n", - referral_connection_timeout - (tv.tv_sec - conn->c_time), - 0, 0 ); - return; - } - - - conn_del( conn ); - - if ( conn->c_paddr ) - free( (char *) conn->c_paddr ); - if ( conn->c_dn ) - free( conn->c_dn ); - if ( conn->c_credlen > 0 ) - free( conn->c_cred ); - free( conn ); -} - -void -conn_del( struct conn *conn ) -{ - struct conn *tmp, *prev; - - Debug( LDAP_DEBUG_TRACE, "conn_del (%s)\n", - paddr2str( conn->c_paddr, NULLNA ), 0, 0 ); - - prev = NULL; - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { - if ( tmp == conn ) - break; - prev = tmp; - } - - if ( tmp == NULL ) { - Debug( LDAP_DEBUG_ANY, "conn_del: cannot find conn\n", 0, 0, - 0 ); - return; - } - - if ( prev == NULL ) { - conns = conns->c_next; /* delete head of list */ - } else { - prev->c_next = tmp->c_next; - } -} - -void -conn_setfds( fd_set *fds ) -{ - struct conn *tmp; - - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { - if ( tmp->c_ad != -1 ) - FD_SET( tmp->c_ad, fds ); - } -} - -void -conn_badfds( void ) -{ - struct conn *tmp; - - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { - if ( isclosed( tmp->c_ad ) ) { - Debug( LDAP_DEBUG_ANY, "conn_badfds: fd %d is bad\n", - tmp->c_ad, 0, 0 ); - tmp->c_ad = -1; - } - } -} - -struct conn * -conn_getfd( fd_set *fds ) -{ - struct conn *tmp; - - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { - if ( tmp->c_ad != -1 ) - if ( FD_ISSET( tmp->c_ad, fds ) ) - return( tmp ); - } - - return( NULL ); -} - -void -conn_add( struct conn *new ) -{ - struct timeval tv; - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_CONNS ) { - char *str; - - str = paddr2str( new->c_paddr, NULLNA ); - Debug( LDAP_DEBUG_CONNS, "conn_add: (%s)\n", str, 0, 0 ); - } -#endif - - gettimeofday( &tv, (struct timezone *)NULL ); - new->c_time = tv.tv_sec; - new->c_next = conns; - new->c_refcnt = 1; - conns = new; -} - -static int -psap_cmp( struct PSAPaddr *a, struct PSAPaddr *b ) -{ - return( bcmp( (char *) a, (char *) b, sizeof(struct PSAPaddr) ) ); -} - -struct conn * -conn_find( struct conn *c ) -{ - struct conn *tmp; - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_CONNS ) { - char *str; - - str = paddr2str( c->c_paddr, NULLNA ); - Debug( LDAP_DEBUG_CONNS, "conn_find: (%s)\n", str, 0, 0 ); - } -#endif - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_CONNS ) { - char *str; - - str = paddr2str( tmp->c_paddr, NULLNA ); - Debug( LDAP_DEBUG_CONNS, "conn_find: compare to (%s)\n", - str, 0, 0 ); - } -#endif - if ( psap_cmp( tmp->c_paddr, c->c_paddr ) == 0 - && strcmp( tmp->c_dn, c->c_dn ) == 0 - && tmp->c_credlen == c->c_credlen - && bcmp( tmp->c_cred, c->c_cred, c->c_credlen ) == 0 ) { - Debug( LDAP_DEBUG_CONNS, "conn_find: found\n", 0, - 0, 0 ); - return( tmp ); - } - } - - Debug( LDAP_DEBUG_CONNS, "conn_find: not found\n", 0, 0, 0 ); - return( NULL ); -} - -void -conn_close( void ) -{ - struct conn *tmp; - - for ( tmp = conns; tmp != NULL; tmp = tmp->c_next ) { - if ( tmp->c_ad != -1 ) - dap_unbind( tmp->c_ad ); - } -} - -int -isclosed( int ad ) -{ - int o; - - if ( ioctl( ad, FIOGETOWN, &o ) < 0 ) - return( errno == EBADF ? 1 : 0 ); - else - return( 0 ); -} diff --git a/servers/ldapd/bind.c b/servers/ldapd/bind.c deleted file mode 100644 index fee37d49c2..0000000000 --- a/servers/ldapd/bind.c +++ /dev/null @@ -1,270 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include /* get SAFEMEMCPY */ - -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef LDAP_COMPAT20 -#define BINDTAG (ldap_compat == 20 ? OLD_LDAP_RES_BIND : LDAP_RES_BIND) -#else -#define BINDTAG LDAP_RES_BIND -#endif - -/* - * do_bind - perform an X.500 bind operation. Since we always respond - * to the request in here, always return 0 to signify the incoming message - * can be discarded. - */ - -int -do_bind( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber, - int *bound -) -{ - int err; - unsigned long method; - unsigned long len; - char *dn, *pw; - char *matched; - struct PSAPaddr *addr; - - Debug( LDAP_DEBUG_TRACE, "do_bind\n", 0, 0, 0 ); - - /* - * Parse the bind request. It looks like this: - * BindRequest ::= SEQUENCE { - * version INTEGER, -- version - * name DistinguishedName, -- dn - * authentication CHOICE { - * simple [0] OCTET STRING -- passwd - * krbv42ldap [1] OCTET STRING - * krbv42dsa [1] OCTET STRING - * } - * } - */ - - if ( ber_scanf( ber, "{ia", &version, &dn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, BINDTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "Decoding error" ); - return( 0 ); - } -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - method = ber_skip_tag( ber, &len ); - else -#endif - method = ber_peek_tag( ber, &len ); - - if ( ber_scanf( ber, "la}", &len, &pw ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf2 failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, BINDTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "Decoding error" ); - return( 0 ); - } - - if ( version != LDAP_VERSION1 && version != LDAP_VERSION2 ) { - Debug( LDAP_DEBUG_ANY, "unknown version %d\n", version, 0, 0 ); - send_ldap_msgresult( clientsb, BINDTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "Version not supported" ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_bind: version %d dn (%s) method %lu\n", - version, dn, method ); - - if ( m->m_conn->c_paddr == NULLPA ) { - char buf[256]; - - sprintf( buf, "Bad DSA address (%s)", dsa_address ? - dsa_address : "NULL" ); - send_ldap_msgresult( clientsb, BINDTAG, m, - LDAP_OPERATIONS_ERROR, NULL, buf ); - return( 0 ); - } - - if ( m->m_conn->c_dn ) - free( m->m_conn->c_dn ); - if ( m->m_conn->c_cred ) - free( m->m_conn->c_cred ); - m->m_conn->c_dn = dn; - m->m_conn->c_cred = pw; - m->m_conn->c_credlen = len; - m->m_conn->c_method = method; - - err = do_bind_real( m->m_conn, bound, &matched ); - - send_ldap_msgresult( clientsb, BINDTAG, m, err, matched, "" ); - - if ( matched != NULL ) - free( matched ); - - return( 0 ); -} - -int -do_bind_real( - struct conn *dsaconn, - int *bound, - char **matched -) -{ - struct ds_bind_arg ba; - struct ds_bind_arg br; - struct ds_bind_error be; - struct DSError dse; - char *dn = dsaconn->c_dn; - int err; -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - u_long nonce; -#endif - Debug( LDAP_DEBUG_TRACE, "do_bind_real\n", 0, 0, 0 ); - - *matched = NULL; - if ( (ba.dba_dn = ldap_str2dn( dn )) == NULLDN && *dn != '\0' ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn (%s) failed\n", dn, 0, 0 ); - return( LDAP_INVALID_DN_SYNTAX ); - } - - switch ( dsaconn->c_method ) { -#ifdef LDAP_COMPAT20 - case OLD_LDAP_AUTH_SIMPLE: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_AUTH_SIMPLE_30: -#endif - case LDAP_AUTH_SIMPLE: /* x.500 simple authentication */ - if ( dsaconn->c_credlen > DBA_MAX_PASSWD_LEN ) { - Debug( LDAP_DEBUG_ANY, "Password too long\n", 0, 0, 0 ); - return( LDAP_INAPPROPRIATE_AUTH ); - } - if (( ba.dba_passwd_len = dsaconn->c_credlen ) > 0 ) { - SAFEMEMCPY( ba.dba_passwd, dsaconn->c_cred, - ba.dba_passwd_len ); - ba.dba_auth_type = DBA_AUTH_SIMPLE; - } else { - ba.dba_auth_type = DBA_AUTH_NONE; - } - ba.dba_version = DBA_VERSION_V1988; - break; - -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND -#ifdef LDAP_COMPAT20 - case OLD_LDAP_AUTH_KRBV4: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_AUTH_KRBV41_30: -#endif - case LDAP_AUTH_KRBV41: /* kerberos authentication to ldap server */ - return( kerberosv4_ldap_auth( dsaconn->c_cred, - dsaconn->c_credlen ) ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_AUTH_KRBV42: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_AUTH_KRBV42_30: -#endif - case LDAP_AUTH_KRBV42: /* kerberos authentication to x500 dsa */ - if ( (err = kerberosv4_bindarg( &ba, ba.dba_dn, dsaconn->c_cred, - dsaconn->c_credlen, &nonce )) != 0 ) - return( err ); - break; -#endif - - default: - return( LDAP_PROTOCOL_ERROR ); - break; - } - - if ( dsaconn->c_ad != -1 ) - dap_unbind( dsaconn->c_ad ); - - Debug( LDAP_DEBUG_TRACE, "dap_bind to dsa (%s)...\n", paddr2str( - dsaconn->c_paddr, NULLNA ), 0, 0 ); - - err = dap_bind( &dsaconn->c_ad, &ba, &be, &br, dsaconn->c_paddr ); - - if ( err != DS_OK && ba.dba_dn != NULLDN && ba.dba_auth_type - == DBA_AUTH_NONE && be.dbe_type == DBE_TYPE_SECURITY ) { - /* if doing a NULL bind, retry with a NULL dn */ - Debug( LDAP_DEBUG_TRACE, "retring NULL dap_bind\n", 0, 0, 0 ); - dn_free( ba.dba_dn ); - ba.dba_dn = NULLDN; - err = dap_bind( &dsaconn->c_ad, &ba, &be, &br, - dsaconn->c_paddr ); - } - - if ( err != DS_OK ) { - if ( ba.dba_dn != NULLDN ) - dn_free( ba.dba_dn ); - - if ( be.dbe_type == DBE_TYPE_SERVICE ) { - dse.dse_type = DSE_SERVICEERROR; - dse.ERR_SERVICE.DSE_sv_problem = be.dbe_value; - } else if ( be.dbe_type == DBE_TYPE_SECURITY ) { - dse.dse_type = DSE_SECURITYERROR; - dse.ERR_SECURITY.DSE_sc_problem = be.dbe_value; - } else { - dse.dse_type = DSE_REMOTEERROR; - } - err = x500err2ldaperr( &dse, matched ); - -#ifdef LDAP_DEBUG - if ( ldap_debug ) - print_error( &dse ); /* prints and then frees */ - else -#endif - ds_error_free( &dse ); - - dsaconn->c_ad = -1; - - return( err ); - } - bind_arg_free( &br ); - - Debug( LDAP_DEBUG_TRACE, "dap_bind successful\n", 0, 0, 0 ); - -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND -/* XXX why doesn't this work?? - if ( dsaconn->c_method == LDAP_AUTH_KRBV42 && - kerberos_check_mutual( &br, nonce ) != 0 ) { - Debug( LDAP_DEBUG_ANY, "Mutual authentication failed\n", 0, 0, - 0 ); - return( LDAP_INVALID_CREDENTIALS ); - } -*/ -#endif - - *bound = 1; - - return( LDAP_SUCCESS ); -} diff --git a/servers/ldapd/certificate.c b/servers/ldapd/certificate.c deleted file mode 100644 index 59030469fc..0000000000 --- a/servers/ldapd/certificate.c +++ /dev/null @@ -1,321 +0,0 @@ -/* $OpenLDAP$ */ -/* - * certificate.c - ldap version of quipu certificate syntax handler - * donated by Eric Rosenquist and BNR - */ - -#include "portable.h" - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -extern sntx_table *get_syntax_table( short int sntx ); -extern PE asn2pe( char * ); - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -int -ldap_certif_print( PS ps, struct certificate *parm, int format ) -{ - Debug( LDAP_DEBUG_TRACE, "ldap_certif_print()\n", 0, 0, 0 ); - -/* - * An ldap certificate looks like this: - * - * ::= '#' '#' - * '#' '#' '#' - * '#' '#' - * ::= - * ::= - * ::= - * ::= an encoded Distinguished Name - * ::= '#' - * ::= - * ::= - * ::= | | - * '{ASN}' - * ::= an encoded Distinguished Name - * ::= '#' - * ::= | '-' - * ::= '#' - * ::= an encoded UTCTime value - * ::= | - */ - - ps_printf(ps, "%d#%d#", parm->version, parm->serial); - - ldap_print_algid(ps, &(parm->sig.alg), format); - - dn_print_real(ps, parm->issuer, format); - ps_printf(ps, "#"); - - utcprint(ps, parm->valid.not_before, format); - ps_printf(ps, "#"); - utcprint(ps, parm->valid.not_after, format); - ps_printf(ps, "#"); - - dn_print_real(ps, parm->subject, format); - ps_printf(ps, "#"); - - ldap_print_algid(ps, &(parm->key.alg), format); - print_encrypted(ps, parm->key.value, parm->key.n_bits, format); - - print_encrypted(ps, parm->sig.encrypted, parm->sig.n_bits, format); -} - -void -ldap_print_algid( PS ps, struct alg_id *parm, int format ) -{ - ps_printf(ps, "%s#", oid2name (parm->algorithm, OIDPART)); - - switch(parm->p_type) { - case ALG_PARM_ABSENT: - if(parm->asn != NULLPE) - pe_print(ps, parm->asn, format); - ps_printf(ps, "#"); - break; - case ALG_PARM_NUMERIC: - if (format == READOUT) - ps_printf(ps, "%d#", parm->un.numeric); - else - ps_printf(ps, "%d#", parm->un.numeric); - break; - default: - if (format == READOUT) - { - if ((parm->asn->pe_class == PE_CLASS_UNIV) - &&(parm->asn->pe_form == PE_FORM_PRIM) - &&(parm->asn->pe_id == PE_PRIM_INT)) - ps_printf(ps, "%d", prim2num(parm->asn)); - else if ((parm->asn->pe_class == PE_CLASS_UNIV) - &&(parm->asn->pe_form == PE_FORM_PRIM) - &&(parm->asn->pe_id == PE_PRIM_NULL)) - ps_printf(ps, "NULL"); - else - { - vpushquipu (ps); - vunknown(parm->asn); - vpopquipu (); - } - } - else - { - /* This routine will print a {ASN} prefix */ - pe_print(ps, parm->asn, format); - } - ps_printf(ps, "#"); - } -} - -struct certificate * -ldap_str2cert( char *str ) -{ -struct certificate *result; -char *ptr; -OID oid; - - Debug( LDAP_DEBUG_TRACE, "ldap_str2cert(%s)\n", str, 0, 0 ); - - result = (struct certificate *) calloc(1, sizeof(*result)); - - /* version */ - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("version not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->version = atoi(str); - - /* serial number */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("serial number not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->serial = atoi(str); - - /* signature algorithm id - oid */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("signature algorithm id not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - oid = name2oid(SkipSpace(str)); - if (oid == NULLOID) - { - parse_error("Bad algorithm identifier (SIGNED Value)",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - result->sig.alg.algorithm = oid; - result->alg.algorithm = oid_cpy(oid); - - /* signature algorithm id - parameters */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("algorithm id parameters not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - ldap_str2alg(str, &(result->sig.alg)); - ldap_str2alg(str, &(result->alg)); - - /* issuer */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("Issuer not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->issuer = ldap_str2dn(str); - - /* validity - not before */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("Start time not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->valid.not_before = strdup(str); - - /* validity - not after */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("End time not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->valid.not_after = strdup(str); - - /* subject */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("Subject not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - result->subject = ldap_str2dn(str); - - /* public key info - algorithm id - oid */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("public key info algid oid not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - oid = name2oid(SkipSpace(str)); - if (oid == NULLOID) - { - free((char*)result); - return (struct certificate *) 0; - } - result->key.alg.algorithm = oid; - - /* public key info - algorithm id - parameters */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("Parameters not present (SIGNED Value)",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - ldap_str2alg(str, &(result->key.alg)); - - /* public key info - encrypted sign value */ - str = ptr; - ptr = strchr(str, '#'); - if (ptr == NULLCP) - { - parse_error("Signature not present",NULLCP); - cert_free(result); - return (struct certificate *) 0; - } - *ptr++ = '\0'; - str2encrypted(str, &(result->key.value), &(result->key.n_bits)); - - /* encrypted sign value */ - str = ptr; - str2encrypted(str, &(result->sig.encrypted), &(result->sig.n_bits)); - - return (result); -} - -void -ldap_str2alg( char *str, struct alg_id *alg ) -{ - if ((str == NULLCP) || (*str == '\0')) - { - alg->asn = NULLPE; - alg->p_type = ALG_PARM_ABSENT; - } - else if (strncmp(str,"{ASN}", 5) == 0) - { - alg->asn = asn2pe((char*)str+5); - alg->p_type = ALG_PARM_UNKNOWN; - } - else if (strncmp(str, "NULL", 4) == 0) - { - alg->asn = asn2pe((char*)"0500"); - alg->p_type = ALG_PARM_UNKNOWN; - } - else - { - alg->asn=NULLPE; - alg->p_type = ALG_PARM_NUMERIC; - alg->un.numeric = atoi(str); - } -} - -void -certif_init( void ) -{ - sntx_table *syntax_table; - - if ((syntax_table = get_syntax_table(ldap_certif_syntax)) != NULL) { - syntax_table->s_print = (void *) ldap_certif_print; - syntax_table->s_parse = (void *) ldap_str2cert; - } else - fprintf(stderr, "error getting sntx table in certif_init()\n"); -} diff --git a/servers/ldapd/common.h b/servers/ldapd/common.h deleted file mode 100644 index d21fe38a77..0000000000 --- a/servers/ldapd/common.h +++ /dev/null @@ -1,131 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#ifndef _LDAPD_COMMON_H -#define _LDAPD_COMMON_H 1 - -/* - * This structure represents an association to a dsa. There is one of - * these for each association open (a new association is made for each - * new dsa, and for each dn). - */ - -struct conn { - int c_ad; /* association descriptor */ - char *c_dn; /* the dn this asoc is bound as */ - char *c_cred; /* corresponding pw */ - long c_credlen; - unsigned long c_method; - struct PSAPaddr *c_paddr; /* the dsa address */ - int c_time; /* time this association inited */ - int c_refcnt; /* number of ops referencing this ad */ - struct conn *c_next; -}; - -/* - * This structure represents a sequence of LDAPMod elements. - */ -typedef struct LDAPModList { - LDAPMod m; - struct LDAPModList *mod_next; -} LDAPModList; - - -/* - * This structure represents an outstanding request. There is one of - * these for each client request for which we have not yet received a - * response from a dsa. - */ - -struct msg { - int m_msgid; /* the message id */ - int m_uniqid; /* unique id for this message */ - int m_msgtype; /* the ldap operation type */ - LDAPModList *m_mods; /* for modify operations only */ - BerElement *m_ber; /* the unparsed ber for the op */ - struct conn *m_conn; /* connection structure */ -#ifdef LDAP_CONNECTIONLESS - int m_cldap; /* connectionless transport? (CLDAP) */ - struct sockaddr m_clientaddr; /* client address (if using CLDAP) */ - DN m_searchbase; /* base used in search */ -#endif /* LDAP_CONNECTIONLESS */ - struct msg *m_next; -}; - -#define DEFAULT_TIMEOUT 3600 /* idle client connections */ -#define DEFAULT_REFERRAL_TIMEOUT 900 /* DSA connections */ - -#include "proto-ldapd.h" -#include "ldap_log.h" - -/* from ISODE */ -extern char *dsa_address; -extern char *bound_dn, *bound_pw; -struct PSAPaddr *psap_cpy(struct PSAPaddr *); - -/* in association.c */ -extern struct conn *conns; - -/* in main.c */ -#ifdef LDAP_DEBUG -extern int ldap_debug; -#endif -extern int version; -#ifdef LDAP_COMPAT -extern int ldap_compat; -#endif -extern int dosyslog; -extern int do_tcp; -#ifdef LDAP_CONNECTIONLESS -extern int do_udp; -#endif -extern int idletime; -extern int referral_connection_timeout; -extern struct timeval conn_start_tv; -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND -extern char *krb_ldap_service; -extern char *krb_x500_service; -extern char *krb_x500_instance; -extern char *krb_x500_nonce; -extern char *kerberos_keyfile; -#endif - -/* syntax.c */ -extern short ldap_photo_syntax; -extern short ldap_jpeg_syntax; -extern short ldap_jpeg_nonfile_syntax; -extern short ldap_audio_syntax; -extern short ldap_dn_syntax; -extern short ldap_postaladdress_syntax; -extern short ldap_acl_syntax; -extern short ldap_mtai_syntax; -extern short ldap_rts_cred_syntax; -extern short ldap_rtl_syntax; -extern short ldap_mailbox_syntax; -extern short ldap_caseignorelist_syntax; -extern short ldap_caseexactstring_syntax; -extern short ldap_certif_syntax; -extern short ldap_iattr_syntax; -extern short ldap_telex_syntax; -extern short ldap_octetstring_syntax; -extern short ldap_deliverymethod_syntax; -extern short ldap_facsimileTelephoneNumber_syntax; -extern short ldap_presentationAddress_syntax; -extern short ldap_teletexTerminalIdentifier_syntax; -extern short ldap_searchGuide_syntax; -extern short ldap_dLSubmitPermission_syntax; - -/* Version.c */ -extern char Versionstr[]; - -#endif diff --git a/servers/ldapd/compare.c b/servers/ldapd/compare.c deleted file mode 100644 index 721c892468..0000000000 --- a/servers/ldapd/compare.c +++ /dev/null @@ -1,134 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef HAVE_COMPAT20 -#define COMPTAG (ldap_compat == 20 ? OLD_LDAP_RES_COMPARE : LDAP_RES_COMPARE) -#else -#define COMPTAG LDAP_RES_COMPARE -#endif - -int -do_compare( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - char *dn, *attr, *value; - int rc; - struct ds_compare_arg ca; - AttributeType type; - static CommonArgs common = default_common_args; - - Debug( LDAP_DEBUG_TRACE, "do_compare\n", 0, 0, 0 ); - - /* - * Parse the compare request. It looks like this: - * CompareRequest := [APPLICATION 14] SEQUENCE { - * entry DistinguishedName, - * ava SEQUENCE { - * type AttributeType, - * value AttributeValue - * } - * } - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_CompareArgument_INIT ( &ca ); -#endif -#endif - - if ( ber_scanf( ber, "{a{aa}}", &dn, &attr, &value ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, COMPTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_compare: dn (%s) attr (%s) value (%s)\n", - dn, attr, value ); - - ca.cma_object = ldap_str2dn( dn ); - free( dn ); - if ( ca.cma_object == NULLDN ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, COMPTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - - type = str2AttrT( attr ); - if ( type == NULLAttrT ) { - Debug( LDAP_DEBUG_ANY, "str2AttrT failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, COMPTAG, m, - LDAP_UNDEFINED_TYPE, NULL, attr ); - free( attr ); - return( 0 ); - } - free( attr ); - ca.cma_purported.ava_type = type; - - ca.cma_purported.ava_value = ldap_str2AttrV( value, type->oa_syntax ); - free( value ); - if ( ca.cma_purported.ava_value == NULLAttrV ) { - Debug( LDAP_DEBUG_ANY, "str2AttrV failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, COMPTAG, m, - LDAP_INVALID_SYNTAX, NULL, "" ); - return( 0 ); - } - - ca.cma_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_COMPARE, m, &ca ); - - dn_free( ca.cma_object ); - AttrV_free( ca.cma_purported.ava_value ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, COMPTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -void -compare_result( - Sockbuf *sb, - struct msg *m, - struct ds_compare_result *cr -) -{ - send_ldap_msgresult( sb, COMPTAG, m, cr->cmr_matched ? - LDAP_COMPARE_TRUE : LDAP_COMPARE_FALSE, NULL, "" ); - - return; -} diff --git a/servers/ldapd/delete.c b/servers/ldapd/delete.c deleted file mode 100644 index c4a5da9ae2..0000000000 --- a/servers/ldapd/delete.c +++ /dev/null @@ -1,112 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include -/* ac/socket.h must precede ISODE #includes or p_type must be #undeffed - * after it is included. (Because ISODE uses p_type as a field name, and - * SunOS 5.5:sys/vtype.h defines it (and ac/socket.h indirectly includes it) */ -#include - -#include -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef HAVE_COMPAT20 -#define DELTAG (ldap_compat == 20 ? OLD_LDAP_RES_DELETE : LDAP_RES_DELETE) -#else -#define DELTAG LDAP_RES_DELETE -#endif - -/* - * do_delete - Initiate an X.500 remove entry operation. Returns 1 if - * the operation was initiated successfully, and thus a response will be - * coming back from the DSA. Returns 0 if there was trouble and thus no - * DSA response is expected. - */ - -int -do_delete( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - char *dn; - int rc; - struct ds_removeentry_arg ra; - static CommonArgs common = default_common_args; - - Debug( LDAP_DEBUG_TRACE, "do_delete\n", 0, 0, 0 ); - - /* - * Parse the delete request. It looks like this: - * DelRequest := DistinguishedName - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_RemoveEntryArgument_INIT( &ra ); -#endif -#endif - - if ( ber_scanf( ber, "a", &dn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, DELTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_delete: dn (%s)\n", dn, 0, 0 ); - - ra.rma_object = ldap_str2dn( dn ); - free( dn ); - if ( ra.rma_object == NULLDN ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, DELTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - - ra.rma_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_REMOVEENTRY, m, &ra ); - - dn_free( ra.rma_object ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, DELTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -void -delete_result( - Sockbuf *sb, - struct msg *m -) -{ - send_ldap_msgresult( sb, DELTAG, m, LDAP_SUCCESS, NULL, "" ); - - return; -} diff --git a/servers/ldapd/error.c b/servers/ldapd/error.c deleted file mode 100644 index bd15803b0a..0000000000 --- a/servers/ldapd/error.c +++ /dev/null @@ -1,196 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include - -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "ldap_log.h" -#include "common.h" /* get ldap_dn_print() */ - -void -print_error( struct DSError *e ) -{ - PS ps; - - if ( (ps = ps_alloc( std_open )) == NULLPS ) { - fprintf( stderr, "error in ps_alloc\n" ); - return; - } - if ( std_setup( ps, stderr ) == NOTOK ) { - fprintf( stderr, "error in std_setup = %d", ps->ps_errno ); - return; - } - - ds_error( ps, e ); - - ps_flush( ps ); - ps_free( ps ); -} - -int -x500err2ldaperr( struct DSError *e, char **matched ) -{ - int ldaperr = LDAP_OTHER; - static PS ps; - - Debug( LDAP_DEBUG_TRACE, "x500err2ldaperr\n", 0, 0, 0 ); - - *matched = NULL; - switch ( e->dse_type ) { - case DSE_ATTRIBUTEERROR: -#if ISODEPACKAGE == IC || ISODEPACKAGE == XT - switch ( e->ERR_ATTRIBUTE.DSE_at_plist->DSE_at_what ) { -#else - switch ( e->ERR_ATTRIBUTE.DSE_at_plist.DSE_at_what ) { -#endif - case DSE_AT_NOSUCHATTRIBUTE: - ldaperr = LDAP_NO_SUCH_ATTRIBUTE; - break; - case DSE_AT_INVALIDATTRIBUTESYNTAX: - ldaperr = LDAP_INVALID_SYNTAX; - break; - case DSE_AT_UNDEFINEDATTRIBUTETYPE: - ldaperr = LDAP_UNDEFINED_TYPE; - break; - case DSE_AT_INAPPROPRIATEMATCHING: - ldaperr = LDAP_INAPPROPRIATE_MATCHING; - break; - case DSE_AT_CONSTRAINTVIOLATION: - ldaperr = LDAP_CONSTRAINT_VIOLATION; - break; - case DSE_AT_TYPEORVALUEEXISTS: - ldaperr = LDAP_TYPE_OR_VALUE_EXISTS; - break; - default: - break; - } - break; - - case DSE_NAMEERROR: - switch( e->ERR_NAME.DSE_na_problem ) { - case DSE_NA_NOSUCHOBJECT: - ldaperr = LDAP_NO_SUCH_OBJECT; - break; - case DSE_NA_ALIASPROBLEM: - ldaperr = LDAP_ALIAS_PROBLEM; - break; - case DSE_NA_INVALIDATTRIBUTESYNTAX: - ldaperr = LDAP_INVALID_SYNTAX; - break; - case DSE_NA_ALIASDEREFERENCE: - ldaperr = LDAP_ALIAS_DEREF_PROBLEM; - break; - default: - break; - } - - if ( e->ERR_NAME.DSE_na_matched == NULLDN ) { - break; - } - - if ( ps == NULL ) { - ps = ps_alloc( str_open ); - str_setup( ps, NULLCP, 0, 0 ); - } - ldap_dn_print( ps, e->ERR_NAME.DSE_na_matched, NULLDN, EDBOUT ); - *ps->ps_ptr = '\0'; - - *matched = (char *) strdup( ps->ps_base ); - - ps->ps_ptr = ps->ps_base; - ps->ps_cnt = ps->ps_bufsiz; - break; - - case DSE_SERVICEERROR: - switch( e->ERR_SERVICE.DSE_sv_problem ) { - case DSE_SV_BUSY: - ldaperr = LDAP_BUSY; - break; - case DSE_SV_UNAVAILABLE: - ldaperr = LDAP_UNAVAILABLE; - break; - case DSE_SV_UNWILLINGTOPERFORM: - ldaperr = LDAP_UNWILLING_TO_PERFORM; - break; - case DSE_SV_TIMELIMITEXCEEDED: - ldaperr = LDAP_TIMELIMIT_EXCEEDED; - break; - case DSE_SV_ADMINLIMITEXCEEDED: - ldaperr = LDAP_SIZELIMIT_EXCEEDED; - break; - case DSE_SV_LOOPDETECT: - ldaperr = LDAP_LOOP_DETECT; - break; - default: - break; - } - break; - - case DSE_SECURITYERROR: - switch( e->ERR_SECURITY.DSE_sc_problem ) { - case DSE_SC_AUTHENTICATION: - ldaperr = LDAP_INAPPROPRIATE_AUTH; - break; - case DSE_SC_INVALIDCREDENTIALS: - ldaperr = LDAP_INVALID_CREDENTIALS; - break; - case DSE_SC_ACCESSRIGHTS: - ldaperr = LDAP_INSUFFICIENT_ACCESS; - break; - default: - break; - } - break; - - case DSE_UPDATEERROR: - switch( e->ERR_UPDATE.DSE_up_problem ) { - case DSE_UP_NAMINGVIOLATION: - ldaperr = LDAP_NAMING_VIOLATION; - break; - case DSE_UP_OBJECTCLASSVIOLATION: - ldaperr = LDAP_OBJECT_CLASS_VIOLATION; - break; - case DSE_UP_NOTONNONLEAF: - ldaperr = LDAP_NOT_ALLOWED_ON_NONLEAF; - break; - case DSE_UP_NOTONRDN: - ldaperr = LDAP_NOT_ALLOWED_ON_RDN; - break; - case DSE_UP_ALREADYEXISTS: - ldaperr = LDAP_ALREADY_EXISTS; - break; - case DSE_UP_NOOBJECTCLASSMODS: - ldaperr = LDAP_NO_OBJECT_CLASS_MODS; - break; - default: - break; - } - break; - - default: - break; - } - - return( ldaperr ); -} diff --git a/servers/ldapd/kerberos.c b/servers/ldapd/kerberos.c deleted file mode 100644 index 5ba88ae1fb..0000000000 --- a/servers/ldapd/kerberos.c +++ /dev/null @@ -1,142 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - -#include - -#include -#include - -#include -#if ISODEPACKAGE == IC -#include -#else -#include -#endif - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -int -kerberosv4_ldap_auth( char *cred, long len ) -{ - KTEXT_ST k; - KTEXT ktxt = &k; - char instance[INST_SZ]; - int err; - AUTH_DAT ad; - - Debug( LDAP_DEBUG_TRACE, "kerberosv4_ldap_auth\n", 0, 0, 0 ); - - SAFEMEMCPY( ktxt->dat, cred, len ); - ktxt->length = len; - - strcpy( instance, "*" ); - if ( (err = krb_rd_req( ktxt, krb_ldap_service, instance, 0L, - &ad, kerberos_keyfile )) != KSUCCESS ) { - Debug( LDAP_DEBUG_ANY, "krb_rd_req failed (%s)\n", - krb_err_txt[err], 0, 0 ); - return( LDAP_INVALID_CREDENTIALS ); - } - - return( LDAP_SUCCESS ); -} - -int -kerberosv4_bindarg( - struct ds_bind_arg *ba, - DN dn, - char *cred, - long len, - u_long *nonce -) -{ - struct type_UNIV_EXTERNAL *e; - struct kerberos_parms kp; - PE pe; - struct timeval tv; - char realm[REALM_SZ]; - int err; - - Debug( LDAP_DEBUG_TRACE, "kerberosv4_bindarg\n", 0, 0, 0 ); - - e = (struct type_UNIV_EXTERNAL *) calloc( 1, - sizeof(struct type_UNIV_EXTERNAL) ); - e->encoding = (struct choice_UNIV_0 *) calloc( 1, - sizeof(struct choice_UNIV_0) ); - ba->dba_external = e; - ba->dba_version = DBA_VERSION_V1988; - ba->dba_auth_type = DBA_AUTH_EXTERNAL; - - e->indirect__reference = AUTH_TYPE_KERBEROS_V4; - e->direct__reference = NULLOID; - e->data__value__descriptor = str2qb( "KRBv4 client credentials", - 24, 1 ); - - kp.kp_dn = dn; - kp.kp_version = AUTH_TYPE_KERBEROS_V4; - - if ( (err = krb_get_lrealm( realm, 1 )) != KSUCCESS ) { - Debug( LDAP_DEBUG_ANY, "krb_get_lrealm failed (%s)\n", - krb_err_txt[err], 0, 0 ); - return( LDAP_OPERATIONS_ERROR ); - } - - gettimeofday( &tv, NULL ); - *nonce = tv.tv_sec; - SAFEMEMCPY( kp.kp_ktxt.dat, cred, len ); - kp.kp_ktxt.length = len; - if ( encode_kerberos_parms( &pe, &kp ) == NOTOK ) { - Debug( LDAP_DEBUG_ANY, "kerberos parms encoding failed\n", 0, - 0, 0 ); - return( LDAP_OPERATIONS_ERROR ); - } - - e->encoding->offset = choice_UNIV_0_single__ASN1__type; - e->encoding->un.single__ASN1__type = pe; - - return( 0 ); -} - -int -kerberos_check_mutual( - struct ds_bind_arg *res, - u_long nonce -) -{ - struct type_UNIV_EXTERNAL *e = res->dba_external; - struct kerberos_parms *kp; - int ret; - - Debug( LDAP_DEBUG_TRACE, "kerberos_check_mutual\n", 0, 0, 0 ); - - if ( decode_kerberos_parms( e->encoding->un.single__ASN1__type, &kp ) - == NOTOK ) - return( NOTOK ); - ret = ((kp->kp_nonce == (nonce + 1)) ? OK : NOTOK ); - - Debug( LDAP_DEBUG_TRACE, "expecting %d got %d\n", nonce, kp->kp_nonce, - 0 ); - - pe_free( e->encoding->un.single__ASN1__type ); - dn_free( kp->kp_dn ); - free( (char *) kp ); - - return( ret ); -} - -#endif diff --git a/servers/ldapd/ldap.py b/servers/ldapd/ldap.py deleted file mode 100644 index c578caae06..0000000000 --- a/servers/ldapd/ldap.py +++ /dev/null @@ -1,231 +0,0 @@ -LDAP DEFINITIONS IMPLICIT TAGS ::= - -PREFIXES encode decode print - -BEGIN - -LDAPMessage ::= - SEQUENCE { - messageID MessageID, - -- unique id in request, - -- to be echoed in response(s) - protocolOp CHOICE { - searchRequest SearchRequest, - searchResponse SearchResponse, - modifyRequest ModifyRequest, - modifyResponse ModifyResponse, - addRequest AddRequest, - addResponse AddResponse, - delRequest DelRequest, - delResponse DelResponse, - modifyDNRequest ModifyRDNRequest, - modifyDNResponse ModifyRDNResponse, - compareDNRequest CompareRequest, - compareDNResponse CompareResponse, - bindRequest BindRequest, - bindResponse BindResponse, - abandonRequest AbandonRequest, - unbindRequest UnbindRequest - } - } - -BindRequest ::= - [APPLICATION 0] SEQUENCE { - version INTEGER (1 .. 127), - -- current version is 2 - name LDAPDN, - -- null name implies an anonymous bind - authentication CHOICE { - simple [0] OCTET STRING, - -- a zero length octet string - -- implies an unauthenticated - -- bind. - krbv42LDAP [1] OCTET STRING, - krbv42DSA [2] OCTET STRING - -- values as returned by - -- krb_mk_req() - -- Other values in later - -- versions of this protocol. - } - } - -BindResponse ::= [APPLICATION 1] LDAPResult - -UnbindRequest ::= [APPLICATION 2] NULL - -SearchRequest ::= - [APPLICATION 3] SEQUENCE { - baseObject LDAPDN, - scope ENUMERATED { - baseObject (0), - singleLevel (1), - wholeSubtree (2) - }, - derefAliases ENUMERATED { - neverDerefAliases (0), - derefInSearching (1), - derefFindingBaseObj (2), - alwaysDerefAliases (3) - }, - sizeLimit INTEGER (0 .. maxInt), - -- value of 0 implies no sizelimit - timeLimit INTEGER (0 .. maxInt), - -- value of 0 implies no timelimit - attrsOnly BOOLEAN, - -- TRUE, if only attributes (without values) - -- to be returned. - filter Filter, - attributes SEQUENCE OF AttributeType - } - -SearchResponse ::= - CHOICE { - entry [APPLICATION 4] SEQUENCE { - objectName LDAPDN, - attributes SEQUENCE OF SEQUENCE { - AttributeType, - SET OF - AttributeValue - } - }, - resultCode [APPLICATION 5] LDAPResult - } - -ModifyRequest ::= - [APPLICATION 6] SEQUENCE { - object LDAPDN, - modifications SEQUENCE OF SEQUENCE { - operation ENUMERATED { - add (0), - delete (1), - replace (2) - }, - modification SEQUENCE { - type AttributeType, - values SET OF - AttributeValue - } - } - } - - -ModifyResponse ::= [APPLICATION 7] LDAPResult - -AddRequest ::= - [APPLICATION 8] SEQUENCE { - entry LDAPDN, - attrs SEQUENCE OF SEQUENCE { - type AttributeType, - values SET OF AttributeValue - } - } - -AddResponse ::= [APPLICATION 9] LDAPResult - -DelRequest ::= [APPLICATION 10] LDAPDN - -DelResponse ::= [APPLICATION 11] LDAPResult - -ModifyRDNRequest ::= - [APPLICATION 12] SEQUENCE { - entry LDAPDN, - newrdn RelativeLDAPDN -- old RDN always deleted - } - -ModifyRDNResponse ::= [APPLICATION 13] LDAPResult - -CompareRequest ::= - [APPLICATION 14] SEQUENCE { - entry LDAPDN, - ava AttributeValueAssertion - } - -CompareResponse ::= [APPLICATION 15] LDAPResult - -AbandonRequest ::= [APPLICATION 16] MessageID - -MessageID ::= INTEGER (0 .. maxInt) - -LDAPDN ::= OCTET STRING - -RelativeLDAPDN ::= OCTET STRING - -Filter ::= - CHOICE { - and [0] SET OF Filter, - or [1] SET OF Filter, - not [2] Filter, - equalityMatch [3] AttributeValueAssertion, - substrings [4] SubstringFilter, - greaterOrEqual [5] AttributeValueAssertion, - lessOrEqual [6] AttributeValueAssertion, - present [7] AttributeType, - approxMatch [8] AttributeValueAssertion - } - -LDAPResult ::= - SEQUENCE { - resultCode ENUMERATED { - success (0), - operationsError (1), - protocolError (2), - timeLimitExceeded (3), - sizeLimitExceeded (4), - compareFalse (5), - compareTrue (6), - authMethodNotSupported (7), - strongAuthRequired (8), - noSuchAttribute (16), - undefinedAttributeType (17), - inappropriateMatching (18), - constraintViolation (19), - attributeOrValueExists (20), - invalidAttributeSyntax (21), - noSuchObject (32), - aliasProblem (33), - invalidDNSyntax (34), - isLeaf (35), - aliasDereferencingProblem (36), - inappropriateAuthentication (48), - invalidCredentials (49), - insufficientAccessRights (50), - busy (51), - unavailable (52), - unwillingToPerform (53), - loopDetect (54), - namingViolation (64), - objectClassViolation (65), - notAllowedOnNonLeaf (66), - notAllowedOnRDN (67), - entryAlreadyExists (68), - objectClassModsProhibited (69), - other (80) - }, - matchedDN LDAPDN, - errorMessage OCTET STRING - } - -AttributeType ::= OCTET STRING - -- text name of the attribute, or dotted - -- OID representation - -AttributeValue ::= OCTET STRING - -AttributeValueAssertion ::= - SEQUENCE { - attributeType AttributeType, - attributeValue AttributeValue - } - -SubstringFilter ::= - SEQUENCE { - type AttributeType, - SEQUENCE OF CHOICE { - initial [0] OCTET STRING, - any [1] OCTET STRING, - final [2] OCTET STRING - } - } - -maxInt INTEGER ::= 65535 -END diff --git a/servers/ldapd/main.c b/servers/ldapd/main.c deleted file mode 100644 index 8d1d2659c4..0000000000 --- a/servers/ldapd/main.c +++ /dev/null @@ -1,726 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990-1996 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ -/* - * Some code fragments to run from inetd stolen from the University - * of Minnesota gopher distribution, which had this copyright on it: - * - * Part of the Internet Gopher program, copyright (C) 1991 - * University of Minnesota Microcomputer Workstation and Networks Center - */ - -#include "portable.h" - -#include - -#include -#include -#include -#include -#include -#include -#include - -#ifdef LDAP_PROCTITLE -#include -#endif - -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" -#include "lutil.h" /* Get lutil_detach() */ - -#ifdef HAVE_TCPD -#include - -int allow_severity = LOG_INFO; -int deny_severity = LOG_NOTICE; -#endif /* TCP_WRAPPERS */ - -static int set_socket( int port, int udp ); -static void do_queries( int clientsock, int udp ); -static RETSIGTYPE wait4child( int sig ); -#ifdef LDAP_CONNECTIONLESS -static int udp_init( int port, int createsocket ); -#endif - -#ifdef LDAP_DEBUG -int ldap_debug; -#endif -int version; -#ifdef LDAP_COMPAT -int ldap_compat; -#endif -int dosyslog; -int do_tcp = 1; -#ifdef LDAP_CONNECTIONLESS -int do_udp = 0; -#endif -int idletime = DEFAULT_TIMEOUT; -int referral_connection_timeout = DEFAULT_REFERRAL_TIMEOUT; -struct timeval conn_start_tv; -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND -char *krb_ldap_service = "ldapserver"; -char *krb_x500_service = "x500dsa"; -char *krb_x500_instance; -char *krb_x500_nonce; -char *kerberos_keyfile; -#endif - -int dtblsize; -int RunFromInetd = 0; - -static void -usage( char *name ) -{ - fprintf( stderr, "usage: %s [-d debuglvl] [-p port] [-l] [-c dsa] [-r referraltimeout]", name ); -#ifdef LDAP_CONNECTIONLESS - fprintf( stderr, " [ -U | -t timeout ]" ); -#else - fprintf( stderr, " [ -t timeout ]" ); -#endif - fprintf( stderr, " [-I]" ); -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - fprintf( stderr, " [-i dsainstance]" ); -#endif - fprintf( stderr, "\n" ); -} - -int -main( int argc, char **argv ) -{ - int tcps, ns; -#ifdef LDAP_CONNECTIONLESS - int udps; -#endif - int myport = LDAP_PORT; - int no_detach = 0; - int i, pid, socktype; - char *myname; - fd_set readfds; - struct hostent *hp; - struct sockaddr_in from; - socklen_t len; - int dsapargc; - char **dsapargv; -#ifdef LDAP_PROCTITLE - char title[80]; -#endif - -#ifdef VMS - /* Pick up socket from inetd-type server on VMS */ - if ( (ns = socket_from_server( NULL )) > 0 ) - RunFromInetd = 1; -#else - /* Socket from inetd is usually 0 */ - ns = 0; -#endif - - /* for dsap_init */ - if ( (dsapargv = (char **) malloc( 4 * sizeof(char *) )) == NULL ) { - perror( "malloc" ); - exit( 1 ); - } - dsapargv[0] = argv[0]; - dsapargv[1] = 0; - dsapargv[2] = 0; - dsapargv[3] = 0; - dsapargc = 1; -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - kerberos_keyfile = ""; -#endif - - /* process command line arguments */ - while ( (i = getopt( argc, argv, "d:lp:f:i:c:r:t:IuU" )) != EOF ) { - switch ( i ) { - case 'c': /* specify dsa to contact */ - dsapargv[1] = "-call"; - dsapargv[2] = strdup( optarg ); - dsapargc = 3; - break; - - case 'd': /* set debug level and 'do not detach' flag */ - no_detach = 1; -#ifdef LDAP_DEBUG - ldap_debug = atoi( optarg ); - if ( ldap_debug & LDAP_DEBUG_PACKETS ) - ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &ldap_debug ); -#else - if ( atoi( optarg ) != 0 ) - fputs( "Not compiled with -DLDAP_DEBUG!\n", stderr ); -#endif - break; - - case 'l': /* do syslogging */ - dosyslog = 1; - break; - - case 'p': /* specify port number */ - myport = atoi( optarg ); - break; - - case 'r': /* timeout for referral connections */ - referral_connection_timeout = atoi( optarg ); - break; - - case 't': /* timeout for idle connections */ - idletime = atoi( optarg ); - break; - -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - case 'f': /* kerberos key file */ - kerberos_keyfile = strdup( optarg ); - break; - - case 'i': /* x500 dsa kerberos instance */ - if ( krb_x500_instance != NULL ) - free( krb_x500_instance ); - krb_x500_instance = strdup( optarg ); - break; -#endif - - case 'I': /* Run from inetd */ - RunFromInetd = 1; - break; - -#ifdef LDAP_CONNECTIONLESS - case 'U': /* UDP only (no TCP) */ - do_tcp = 0; - do_udp = 1; - break; - -#ifdef NOTYET - case 'u': /* allow UDP requests (CLDAP) */ - do_udp = 1; - break; -#endif /* NOTYET */ - -#endif /* LDAP_CONNECTIONLESS */ - - default: - usage( argv[0] ); - exit( 1 ); - } - } - - if ( optind < argc ) { - usage( argv[ 0 ] ); - exit( 1 ); - } - -#ifdef LDAP_CONNECTIONLESS - if ( do_udp && !do_tcp && idletime != DEFAULT_TIMEOUT ) { - usage( argv[ 0 ] ); - exit( 1 ); - } -#endif - - Debug( LDAP_DEBUG_TRACE, "%s", Versionstr, 0, 0 ); - -#ifdef HAVE_SYSCONF - dtblsize = sysconf( _SC_OPEN_MAX ); -#elif HAVE_GETDTABLESIZE - dtblsize = getdtablesize(); -#else - dtblsize = FD_SETSIZE; -#endif - -#ifdef FD_SETSIZE - if( dtblsize > FD_SETSIZE ) { - dtblsize = FD_SETSIZE; - } -#endif /* FD_SETSIZE */ - -#if defined(LDAP_PROCTITLE) && !defined( HAVE_SETPROCTITLE ) - /* for setproctitle */ - Argv = argv; - Argc = argc; -#endif - - if ( (myname = strrchr( argv[0], '/' )) == NULL ) - myname = strdup( argv[0] ); - else - myname = strdup( myname + 1 ); - - /* - * detach from the terminal if stderr is redirected or no - * debugging is wanted, and then arrange to reap children - * that have exited - */ - if (!RunFromInetd) { -#ifdef LDAP_PROCTITLE - setproctitle( "initializing" ); -#endif -#ifndef VMS - lutil_detach( no_detach, 1 ); -#endif - (void) SIGNAL( SIGCHLD, wait4child ); - (void) SIGNAL( SIGINT, log_and_exit ); - } - - /* - * set up syslogging (if desired) - */ - if ( dosyslog ) { -#ifdef LOG_LOCAL4 - openlog( myname, OPENLOG_OPTIONS, LOG_LOCAL4 ); -#elif LOG_DEBUG - openlog( myname, OPENLOG_OPTIONS ); -#endif - } - - /* - * load the syntax handlers, oidtables, and initialize some stuff, - * then start listening - */ - - (void) quipu_syntaxes(); -#ifdef LDAP_USE_PP - (void) pp_quipu_init( argv[0] ); -#endif -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - dsa_operation_syntaxes(); -#endif -#endif - (void) dsap_init( &dsapargc, &dsapargv ); - (void) get_syntaxes(); - if (RunFromInetd) { - len = sizeof( socktype ); - getsockopt( ns, SOL_SOCKET, SO_TYPE, (char *)&socktype, &len ); - if ( socktype == SOCK_DGRAM ) { -#ifdef LDAP_CONNECTIONLESS - Debug( LDAP_DEBUG_ARGS, - "CLDAP request from unknown (%s)\n", - inet_ntoa( from.sin_addr ), 0, 0 ); - conn_start_tv.tv_sec = 0; - udp_init( 0, 0 ); - do_queries( ns, 1 ); -#else /* LDAP_CONNECTIONLESS */ - Debug( LDAP_DEBUG_ARGS, - "Compile with -DLDAP_CONNECTIONLESS for UDP support\n",0,0,0 ); -#endif /* LDAP_CONNECTIONLESS */ - exit( 0 ); - } - - len = sizeof(from); - if ( getpeername( ns, (struct sockaddr *) &from, &len ) - == 0 ) { - hp = gethostbyaddr( (char *) &(from.sin_addr), - sizeof(from.sin_addr), AF_INET ); - Debug( LDAP_DEBUG_ARGS, "connection from %s (%s)\n", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ), 0 ); - - if ( dosyslog ) { - syslog( LOG_INFO, "connection from %s (%s)", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ) ); - } - -#ifdef LDAP_PROCTITLE - sprintf( title, "%s %d\n", hp == NULL ? - inet_ntoa( from.sin_addr ) : hp->h_name, myport ); - setproctitle( title ); -#endif - } - gettimeofday( &conn_start_tv, (struct timezone *) NULL ); - do_queries( ns, 0 ); - - exit( 0 ); - } - - if ( do_tcp ) - tcps = set_socket( myport, 0 ); - -#ifdef LDAP_CONNECTIONLESS - if ( do_udp ) - udps = udp_init( myport, 1 ); -#endif - - /* - * loop, wait for a connection, then fork off a child to handle it - * if we are doing CLDAP as well, handle those requests on the fly - */ - -#ifdef LDAP_PROCTITLE -#ifdef LDAP_CONNECTIONLESS - sprintf( title, "listening %s/%s %d", do_tcp ? "tcp" : "", - do_udp ? "udp" : "", myport ); -#else - sprintf( title, "listening %s %d", do_tcp ? "tcp" : "", myport ); -#endif - setproctitle( title ); -#endif - - for ( ;; ) { - FD_ZERO( &readfds ); - if ( do_tcp ) - FD_SET( tcps, &readfds ); -#ifdef LDAP_CONNECTIONLESS - if ( do_udp ) - FD_SET( udps, &readfds ); -#endif - - if ( select( dtblsize, &readfds, 0, 0, 0 ) < 1 ) { -#ifdef LDAP_DEBUG - if ( ldap_debug ) perror( "main select" ); -#endif - continue; - } - -#ifdef LDAP_CONNECTIONLESS - if ( do_udp && FD_ISSET( udps, &readfds ) ) { - do_queries( udps, 1 ); - } -#endif - - if ( !do_tcp || ! FD_ISSET( tcps, &readfds ) ) { - continue; - } - - len = sizeof(from); - if ( (ns = accept( tcps, (struct sockaddr *) &from, &len )) - == -1 ) { -#ifdef LDAP_DEBUG - if ( ldap_debug ) perror( "accept" ); -#endif - continue; - } - - hp = gethostbyaddr( (char *) &(from.sin_addr), - sizeof(from.sin_addr), AF_INET ); - -#ifdef HAVE_TCPD - if ( !hosts_ctl("ldapd", (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ), STRING_UNKNOWN) ) { - - Debug( LDAP_DEBUG_ARGS, "connection from %s (%s) denied.\n", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ), 0 ); - - if ( dosyslog ) { - syslog( LOG_NOTICE, "connection from %s (%s) denied.", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ) ); - } - - tcp_close(ns); - continue; - } -#endif /* TCP_WRAPPERS */ - - Debug( LDAP_DEBUG_ARGS, "connection from %s (%s)\n", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ), 0 ); - - - if ( dosyslog ) { - syslog( LOG_INFO, "connection from %s (%s)", - (hp == NULL) ? "unknown" : hp->h_name, - inet_ntoa( from.sin_addr ) ); - } - -#ifdef VMS - /* This is for debug on terminal on VMS */ - tcp_close( tcps ); -#ifdef LDAP_PROCTITLE - setproctitle( hp == NULL ? inet_ntoa( from.sin_addr ) : - hp->h_name ); -#endif - gettimeofday( &conn_start_tv, (struct timezone *) NULL ); - (void) SIGNAL( SIGPIPE, log_and_exit ); - - do_queries( ns, 0 ); - /* NOT REACHED */ -#endif - - switch( pid = fork() ) { - case 0: /* child */ - tcp_close( tcps ); -#ifdef LDAP_PROCTITLE - sprintf( title, "%s (%d)\n", hp == NULL ? - inet_ntoa( from.sin_addr ) : hp->h_name, - myport ); - setproctitle( title ); -#endif - gettimeofday( &conn_start_tv, (struct timezone *) NULL ); - (void) SIGNAL( SIGPIPE, log_and_exit ); - - do_queries( ns, 0 ); - break; - - case -1: /* failed */ -#ifdef LDAP_DEBUG - if ( ldap_debug ) perror( "fork" ); -#endif - tcp_close( ns ); - syslog( LOG_ERR, "fork failed %m" ); - /* let things cool off */ - sleep( 15 ); - break; - - default: /* parent */ - tcp_close( ns ); - Debug( LDAP_DEBUG_TRACE, "forked child %d\n", pid, 0, - 0 ); - break; - } - } - /* NOT REACHED */ -} - -static void -do_queries( - int clientsock, - int udp /* is this a UDP (CLDAP) request? */ -) -{ - fd_set readfds; - int rc; - struct timeval timeout; - Sockbuf *sb; -#ifdef LDAP_CONNECTIONLESS - struct sockaddr saddr, faddr; - struct sockaddr *saddrlist[ 1 ]; -#endif /* LDAP_CONNECTIONLESS */ - - Debug( LDAP_DEBUG_TRACE, "do_queries%s\n", - udp ? " udp" : "", 0, 0 ); - - /* - * Loop, wait for a request from the client or a response from - * a dsa, then handle it. Dsap_ad is always a connection to the - * "default" dsa. Other connections can be made as a result of - * a referral being chased down. These association descriptors - * are kept track of with the message that caused the referral. - * The set_dsa_fds() routine traverses the list of outstanding - * messages, setting the appropriate bits in readfds. - */ - - if ( !udp ) { - conn_init(); - } - - sb = ber_sockbuf_alloc( ); - ber_sockbuf_add_io( sb, (udp) ? &ber_sockbuf_io_udp : - &ber_sockbuf_io_tcp, (void *)&clientsock ); - timeout.tv_sec = idletime; - timeout.tv_usec = 0; - for ( ;; ) { - struct conn *dsaconn; - - FD_ZERO( &readfds ); - FD_SET( clientsock, &readfds ); - conn_setfds( &readfds ); - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_CONNS ) { - int i; - Debug( LDAP_DEBUG_CONNS, "FDLIST:", 0, 0, 0 ); - for ( i = 0; i < dtblsize; i++ ) { - if ( FD_ISSET( i, &readfds ) ) { - Debug( LDAP_DEBUG_CONNS, " %d", i, 0, - 0); - } - } - Debug( LDAP_DEBUG_CONNS, "\n", 0, 0, 0 ); - } -#endif - - /* - * hack - because of lber buffering, there might be stuff - * already waiting for us on the client sock. - */ - - if ( ! ber_sockbuf_ctrl( sb, LBER_SB_OPT_DATA_READY, NULL ) ) { - if ( (rc = select( dtblsize, &readfds, 0, 0, - udp ? 0 : &timeout )) < 1 ) { -#ifdef LDAP_DEBUG - if ( ldap_debug ) perror( "do_queries select" ); -#endif - if ( rc == 0 ) - log_and_exit( 0 ); /* idle timeout */ - - Debug( LDAP_DEBUG_ANY, "select returns %d!\n", - rc, 0, 0 ); - - /* client gone away - we can too */ - if ( isclosed( clientsock ) ) - log_and_exit( 0 ); - - /* - * check if a dsa conn has gone away - - * mark it bad if so - */ - conn_badfds(); - - continue; - } - } - - if ( ber_sockbuf_ctrl( sb, LBER_SB_OPT_DATA_READY, NULL ) || - FD_ISSET( clientsock, &readfds ) ) { - client_request( sb, conns, udp ); - } else { - if ( (dsaconn = conn_getfd( &readfds )) == NULL ) { - Debug( LDAP_DEBUG_ANY, "No DSA activity!\n", - 0, 0, 0 ); - continue; - } - - dsa_response( dsaconn, sb ); - } - } - /* NOT REACHED */ -} - -static int -set_socket( - int port, - int udp /* UDP port? */ -) -{ - int s, i; - struct sockaddr_in addr; - - if ( (s = socket( AF_INET, udp ? SOCK_DGRAM:SOCK_STREAM, 0 )) == -1 ) { - perror( "socket" ); - exit( 1 ); - } - -#ifdef SO_REUSEADDR - /* set option so clients can't keep us from coming back up */ - i = 1; - if ( setsockopt( s, SOL_SOCKET, SO_REUSEADDR, (void *) &i, sizeof(i) ) - < 0 ) - { - perror( "setsockopt" ); - exit( 1 ); - } -#endif -#ifdef SO_KEEPALIVE - /* enable keep alives */ - i = 1; - if ( setsockopt( s, SOL_SOCKET, SO_KEEPALIVE, (void *) &i, sizeof(i) ) - < 0 ) - { - perror( "setsockopt" ); - exit( 1 ); - } -#endif - - /* bind to a name */ - (void)memset( (void *)&addr, '\0', sizeof( addr )); - addr.sin_family = AF_INET; - addr.sin_addr.s_addr = htonl(INADDR_ANY); - addr.sin_port = htons( port ); - if ( bind( s, (struct sockaddr *) &addr, sizeof(addr) ) ) { - perror( "bind" ); - exit( 1 ); - } - - if ( !udp ) { - /* listen for connections */ - if ( listen( s, 5 ) == -1 ) { - perror( "listen" ); - exit( 1 ); - } - } - - Debug( LDAP_DEBUG_TRACE, "listening on %s port %d\n", - udp ? "udp" : "tcp", port, 0 ); - - return( s ); -} - -static RETSIGTYPE -wait4child( int sig ) -{ -#ifndef HAVE_WAITPID - WAITSTATUSTYPE status; -#endif - - Debug( LDAP_DEBUG_TRACE, "parent: catching child status\n", 0, 0, 0 ); - -#ifdef HAVE_WAITPID - while( waitpid( (pid_t) -1, (int *) NULL, WAIT_FLAGS ) > 0 ) - ; /* NULL */ -#else - while ( wait4( (pid_t) -1, &status, WAIT_FLAGS, 0 ) > 0 ) - ; /* NULL */ -#endif - - (void) SIGNAL( SIGCHLD, wait4child ); -} - - -RETSIGTYPE -log_and_exit( int exitcode ) -{ - struct timeval tv; - - if ( dosyslog ) { - if ( conn_start_tv.tv_sec == 0 ) { - syslog( LOG_INFO, "UDP exit(%d)", exitcode ); - } else { - gettimeofday( &tv, (struct timezone *)NULL ); - syslog( LOG_INFO, "TCP closed %d seconds, exit(%d)", - tv.tv_sec - conn_start_tv.tv_sec, exitcode ); - } - } - - exit( exitcode ); -} - - -#ifdef LDAP_CONNECTIONLESS -static int -udp_init( - int port, - int createsocket -) -{ - int s, bound; - char *matched; - - if ( createsocket ) - s = set_socket( port, 1 ); - - conn_init(); - conns->c_dn = strdup(""); - conns->c_cred = strdup(""); - conns->c_credlen = 0; - conns->c_method = LDAP_AUTH_SIMPLE; - - if ( dsa_address == NULL || (conns->c_paddr = str2paddr( dsa_address )) - == NULLPA ) { - fprintf(stderr, "Bad DSA address (%s)\n", dsa_address ? - dsa_address : "NULL" ); - exit( 1 ); - } else { - conns->c_paddr = psap_cpy(conns->c_paddr); - } - - if ( do_bind_real(conns, &bound, &matched) != LDAP_SUCCESS) { - fprintf(stderr, "Cannot bind to directory\n"); - exit( 1 ); - } - if ( matched != NULL ) - free( matched ); - - return( createsocket ? s : 0 ); -} -#endif diff --git a/servers/ldapd/message.c b/servers/ldapd/message.c deleted file mode 100644 index 23a56c794a..0000000000 --- a/servers/ldapd/message.c +++ /dev/null @@ -1,176 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include - -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -static struct msg *messages; - -struct msg *add_msg( - int msgid, - int msgtype, - BerElement *ber, - struct conn *dsaconn, - int udp, - struct sockaddr *clientaddr -) -{ - struct msg *new; - static int uniqid = 0; - - /* make a new message */ - if ( (new = (struct msg *) malloc( sizeof(struct msg) )) == NULL ) { - Debug( LDAP_DEBUG_ANY, "addmsg: malloc failed\n", 0, 0, 0 ); - return( NULL ); - } - new->m_msgid = msgid; - new->m_uniqid = ++uniqid; - new->m_msgtype = msgtype; - new->m_ber = ber; - new->m_mods = NULL; - new->m_conn = dsaconn; - new->m_conn->c_refcnt++; - new->m_next = NULL; - -#ifdef LDAP_CONNECTIONLESS - new->m_cldap = udp; - new->m_searchbase = NULLDN; - - if ( udp ) { - new->m_clientaddr = *clientaddr; - Debug( LDAP_DEBUG_TRACE, "udp message from %s port %d\n", - inet_ntoa( ((struct sockaddr_in *)clientaddr)->sin_addr ), - ((struct sockaddr_in *)clientaddr)->sin_port, 0 ); - } -#endif - - /* add it to the front of the queue */ - new->m_next = messages; - messages = new; - - return( new ); -} - -struct msg *get_msg( int uniqid ) -{ - struct msg *tmp; - - for ( tmp = messages; tmp != NULL; tmp = tmp->m_next ) { - if ( tmp->m_uniqid == uniqid ) - return( tmp ); - } - - return( NULL ); -} - -int -del_msg( struct msg *m ) -{ - struct msg *cur, *prev; - - prev = NULL; - for ( cur = messages; cur != NULL; cur = cur->m_next ) { - if ( cur == m ) - break; - prev = cur; - } - - if ( cur == NULL ) { - Debug( LDAP_DEBUG_ANY, "delmsg: cannot find msg %lx\n", - (unsigned long) m, 0, 0 ); - return( -1 ); - } - - if ( prev == NULL ) { - messages = cur->m_next; - } else { - prev->m_next = cur->m_next; - } - conn_free( cur->m_conn ); - modlist_free( cur->m_mods ); - ber_free( cur->m_ber, 1 ); -#ifdef LDAP_CONNECTIONLESS - if ( cur->m_searchbase != NULLDN ) { - dn_free( cur->m_searchbase ); - } -#endif /* LDAP_CONNECTIONLESS */ - free( (char *) cur ); - - return( 0 ); -} - -/* - * send_msg - Send a messge in response to every outstanding request on - * a given connection. This is used, for example, when an association to - * a dsa fails. It deletes messages to which it responds. - */ - -void -send_msg( - struct conn *conn, - Sockbuf *clientsb, - int err, - char *str -) -{ - struct msg *tmp, *next; - - next = NULL; - for ( tmp = messages; tmp != NULL; tmp = next ) { - next = tmp->m_next; - - if ( tmp->m_conn == conn ) { - send_ldap_msgresult( clientsb, tmp->m_msgtype, tmp, - err, NULL, str ); - } - - del_msg( tmp ); - } -} - - -#ifdef LDAP_CONNECTIONLESS -struct msg * -get_cldap_msg( - int msgid, - int msgtype, - struct sockaddr *fromaddr -) -{ - struct msg *tmp; - - for ( tmp = messages; tmp != NULL; tmp = tmp->m_next ) { - if ( tmp->m_cldap && tmp->m_msgid == msgid && - tmp->m_msgtype == msgtype && - ((struct sockaddr_in *)&tmp->m_clientaddr)->sin_port == - ((struct sockaddr_in *)fromaddr)->sin_port && - ((struct sockaddr_in *)&tmp->m_clientaddr)->sin_addr - == ((struct sockaddr_in *)fromaddr)->sin_addr ) { - break; - } - } - - return( tmp ); -} -#endif /* LDAP_CONNECTIONLESS */ diff --git a/servers/ldapd/modify.c b/servers/ldapd/modify.c deleted file mode 100644 index 9e36928ca3..0000000000 --- a/servers/ldapd/modify.c +++ /dev/null @@ -1,637 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include /* get SAFEMEMCPY */ - -#include -#include -#include -#include -#include -#include -extern IFP merge_acl; - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -static CommonArgs common = default_common_args; - -static int replace_mod( struct entrymod *, Attr_Sequence, Attr_Sequence ); - -#ifdef LDAP_COMPAT20 -#define MODTAG (ldap_compat == 20 ? OLD_LDAP_RES_MODIFY : LDAP_RES_MODIFY) -#else -#define MODTAG LDAP_RES_MODIFY -#endif - -int -do_modify( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - char *dn; - char *last; - int rc; - unsigned long tag, len; - LDAPModList *mods, *modtail; - struct ds_read_arg ra; - - Debug( LDAP_DEBUG_TRACE, "do_modify\n", 0, 0, 0 ); - - /* - * Parse the modify request. It looks like this: - * ModifyRequest := [APPLICATION 6] SEQUENCE { - * name DistinguishedName, - * mods SEQUENCE OF SEQUENCE { - * operation ENUMERATED { - * add (0), - * delete (1), - * replace (2) - * }, - * modification SEQUENCE { - * type AttributeType, - * values SET OF AttributeValue - * } - * } - * } - * We then have to initiate a read of the entry to be modified. - * The actual modification is done by do_modify2(), after the - * read completes. - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_ReadArgument_INIT( &ra ); -#endif -#endif - - if ( ber_scanf( ber, "{a", &dn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - Debug( LDAP_DEBUG_ARGS, "do_modify: dn (%s)\n", dn, 0, 0 ); - - ra.rda_object = ldap_str2dn( dn ); - free( dn ); - if ( ra.rda_object == NULLDN ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - ra.rda_eis.eis_allattributes = TRUE; - ra.rda_eis.eis_infotypes = EIS_ATTRIBUTESANDVALUES; - ra.rda_eis.eis_select = NULLATTR; - - /* collect modifications & save for later */ - mods = modtail = NULL; - for ( tag = ber_first_element( ber, &len, &last ); tag != LBER_DEFAULT; - tag = ber_next_element( ber, &len, last ) ) { - LDAPModList *tmp; - - if ( (tmp = (LDAPModList *) calloc( 1, sizeof(LDAPModList) )) - == NULL ) { - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "Malloc error" ); - return( 0 ); - } - - if ( ber_scanf( ber, "{i{a[V]}}", &tmp->m.mod_op, - &tmp->m.mod_type, &tmp->m.mod_bvalues ) == LBER_ERROR ) { - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - if ( mods == NULL ) { - mods = tmp; - } else { - modtail->mod_next = tmp; - } - modtail = tmp; - } - m->m_mods = mods; - - ra.rda_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_READ, m, &ra ); - - dn_free( ra.rda_object ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, MODTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -int -do_modify2( - Sockbuf *clientsb, - struct msg *m, - struct ds_read_result *rr -) -{ - struct ds_modifyentry_arg ma; - struct entrymod *changetail = NULLMOD; - int rc; - LDAPModList *mods; - - Debug( LDAP_DEBUG_TRACE, "do_modify2\n", 0, 0, 0 ); - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_ModifyEntryArgument_INIT( &ma ); -#endif -#endif - - ma.mea_changes = NULLMOD; - for ( mods = m->m_mods; mods != NULL; mods = mods->mod_next ) { - struct entrymod *em; - Attr_Sequence as, new; - - if ( (em = (struct entrymod *) calloc( 1, - sizeof(struct entrymod) )) == NULLMOD ) { - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "Malloc error" ); - return( 0 ); - } - em->em_next = NULLMOD; - - if ( (new = get_as( clientsb, MODTAG, m, - mods->m.mod_type, mods->m.mod_bvalues )) == NULLATTR ) - return( 0 ); - em->em_what = new; - - for ( as = rr->rdr_entry.ent_attr; as != NULLATTR; - as = as->attr_link ) { - if ( AttrT_cmp( new->attr_type, as->attr_type ) == 0 ) - break; - } - - if ( new->attr_value == NULLAV && - mods->m.mod_op != LDAP_MOD_DELETE ) { - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_INVALID_SYNTAX, NULL, "No values specified" ); - return( 0 ); - } - - switch ( mods->m.mod_op ) { - case LDAP_MOD_ADD: - Debug( LDAP_DEBUG_ARGS, "ADD:\n", 0, 0, 0 ); - - if ( as == NULLATTR ) { - Debug( LDAP_DEBUG_ARGS, "\tattribute\n", 0, 0, - 0 ); - em->em_type = EM_ADDATTRIBUTE; - } else { - Debug( LDAP_DEBUG_ARGS, "\tvalues\n", 0, 0, 0 ); - em->em_type = EM_ADDVALUES; - } - break; - - case LDAP_MOD_DELETE: - Debug( LDAP_DEBUG_ARGS, "DELETE:\n", 0, 0, 0 ); - - if ( as == NULLATTR ) { - Debug( LDAP_DEBUG_ARGS, - "\tno existing attribute\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODTAG, - m, LDAP_NO_SUCH_ATTRIBUTE, NULL, "" ); - ems_free( em ); - return( 0 ); - } else { - if ( new->attr_value == NULLAV ) { - Debug( LDAP_DEBUG_ARGS, "\tattribute\n", - 0, 0, 0 ); - em->em_type = EM_REMOVEATTRIBUTE; - } else { - if ( avs_cmp( new->attr_value, - as->attr_value ) == 0 ) { - Debug( LDAP_DEBUG_ARGS, - "\tattribute\n", 0, 0, 0 ); - em->em_type = - EM_REMOVEATTRIBUTE; - } else { - Debug( LDAP_DEBUG_ARGS, - "\tvalues\n", 0, 0, 0 ); - em->em_type = EM_REMOVEVALUES; - } - } - } - break; - - case LDAP_MOD_REPLACE: - Debug( LDAP_DEBUG_ARGS, "REPLACE:\n", 0, 0, 0 ); - - if ( as == NULLATTR ) { - Debug( LDAP_DEBUG_ARGS, "\tattribute\n", 0, 0, - 0 ); - em->em_type = EM_ADDATTRIBUTE; - } else { - if ( replace_mod( em, as, new ) < 0 ) { - return( 0 ); - } - } - break; - - default: - Debug( LDAP_DEBUG_ARGS, "UNKNOWN MOD:\n", 0, 0, 0 ); - - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - break; - } - - if ( em->em_what == NULL ) { /* ignore this mod */ - free( em ); - } else { - if ( ma.mea_changes == NULLMOD ) { - ma.mea_changes = em; - } else { - changetail->em_next = em; - } - changetail = em->em_next == NULLMOD ? em : em->em_next; - } - } - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - struct entrymod *e; - Attr_Sequence as; - AV_Sequence val; - PS ps; - - ps = ps_alloc( std_open ); - std_setup( ps, stderr ); - - fprintf( stderr, "Modify changes are:\n"); - for (e = ma.mea_changes; e; e = e->em_next) { - switch (e->em_type) { - case EM_ADDATTRIBUTE: - fprintf( stderr, "\tADD ATTRIBUTE\n"); - break; - case EM_REMOVEATTRIBUTE: - fprintf( stderr, "\tREMOVE ATTRIBUTE\n"); - break; - case EM_ADDVALUES: - fprintf( stderr, "\tADD VALUES\n"); - break; - case EM_REMOVEVALUES: - fprintf( stderr, "\tREMOVE VALUES\n"); - break; - default: - fprintf( stderr, "\tUNKNOWN\n"); - break; - } - - as = e->em_what; - fprintf( stderr, "\t\ttype (" ); - AttrT_print( ps, as->attr_type, EDBOUT ); - fprintf( stderr, ")" ); - if ( e->em_type == EM_REMOVEATTRIBUTE ) { - fprintf( stderr, "\n" ); - continue; - } - fprintf( stderr, " values" ); - for (val = as->attr_value; val; val = val->avseq_next) { - ps_print( ps, " (" ); - AttrV_print( ps, &val->avseq_av, EDBOUT ); - ps_print( ps, ")" ); - } - fprintf( stderr, "\n" ); - } - ps_free( ps ); - } -#endif - - if ( ma.mea_changes == NULLMOD ) { /* nothing to do */ - send_ldap_msgresult( clientsb, MODTAG, m, - LDAP_SUCCESS, NULL, "" ); - return( 0 ); - } - - ma.mea_object = rr->rdr_entry.ent_dn; - ma.mea_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_MODIFYENTRY, m, &ma ); - - ems_free( ma.mea_changes ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, MODTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -Attr_Sequence -get_as( - Sockbuf *clientsb, - unsigned long op, - struct msg *m, - char *type, - struct berval **bvals -) -{ - Attr_Sequence as; - int i; - short syntax; - - Debug( LDAP_DEBUG_TRACE, "get_as\n", 0, 0, 0 ); - - if ( (as = as_comp_new( NULLAttrT, NULLAV, NULLACL_INFO )) - == NULLATTR ) { - send_ldap_msgresult( clientsb, op, m, - LDAP_OPERATIONS_ERROR, NULL, "Malloc error" ); - return( NULLATTR ); - } - as->attr_link = NULLATTR; - as->attr_value = NULLAV; - as->attr_acl = NULLACL_INFO; - - if ( (as->attr_type = str2AttrT( type )) == NULLAttrT ) { - send_ldap_msgresult( clientsb, op, m, LDAP_UNDEFINED_TYPE, - NULL, type ); - return( NULLATTR ); - } - - if ( bvals == NULL ) - return( as ); - - syntax = as->attr_type->oa_syntax; - for ( i = 0; bvals[i] != NULL; i++ ) { - AttributeValue av; - int t61str, ncomp; - char *sval, *s, *news, *n; - - if ( syntax == ldap_jpeg_syntax || - syntax == ldap_jpeg_nonfile_syntax || - syntax == ldap_octetstring_syntax || - syntax == ldap_audio_syntax ) { - if (( av = bv_octet2AttrV( bvals[i] )) == NULLAttrV ) { - send_ldap_msgresult( clientsb, op, m, - LDAP_INVALID_SYNTAX, NULL, type ); - as_free( as ); - return( NULLATTR ); - } - } else if ( syntax == ldap_photo_syntax ) { - if (( av = bv_asn2AttrV( bvals[i] )) == NULLAttrV ) { - send_ldap_msgresult( clientsb, op, m, - LDAP_INVALID_SYNTAX, NULL, type ); - as_free( as ); - return( NULLATTR ); - } - } else { - - if (( sval = malloc( bvals[i]->bv_len + 1 )) == NULL ) { - send_ldap_msgresult( clientsb, op, m, - LDAP_OPERATIONS_ERROR, NULL, - "Malloc error" ); - return( NULLATTR ); - } - SAFEMEMCPY( sval, bvals[i]->bv_val, bvals[i]->bv_len ); - sval[ bvals[i]->bv_len ] = '\0'; - - /* dang quipu - there's no need for this! */ - if ( syntax == ldap_postaladdress_syntax ) { - t61str = 0; - ncomp = 1; - for ( s = sval; *s; s++ ) { - if ( *s == '$' ) { - ncomp++; - continue; - } -#define ist61(c) (!isascii(c) || !isalnum(c) \ - && c != 047 && c != '(' && c != ')' \ - && c != '+' && c != '-' && c != '.' && c != ',' \ - && c != '/' && c != ':' && c != '=' && c != '?' \ - && c != ' ') - if ( ist61( *s ) ) - t61str = 1; - } -#define T61MARK "{T.61}" -#define T61MARKLEN 6 - if ( t61str ) { - news = malloc( strlen(sval) + - ncomp * T61MARKLEN + 1 ); - strcpy( news, T61MARK ); - for ( n = news + T61MARKLEN, s = sval; - *s; n++, s++ ) { - *n = *s; - if ( *s == '$' ) { - strcpy( ++n, T61MARK ); - n += T61MARKLEN - 1; - } - } - *n = '\0'; - free( sval ); - sval = news; - } - - av = str_at2AttrV( sval, as->attr_type ); - } else if ( syntax == ldap_dn_syntax ) { - av = ldap_strdn2AttrV( sval ); - } else if ( i != 0 && syntax == ldap_acl_syntax ) { - (void) (*merge_acl)( as->attr_value, sval ); - free( sval ); - continue; - } else { - av = ldap_str_at2AttrV( sval, as->attr_type ); - } - - if ( av == NULLAttrV ) { - send_ldap_msgresult( clientsb, op, m, - LDAP_INVALID_SYNTAX, NULL, sval ); - free( sval ); - as_free( as ); - return( NULLATTR ); - } - - free( sval ); - } - as->attr_value = avs_merge( as->attr_value, - avs_comp_new( av ) ); - } - - return( as ); -} - -void -modify_result( Sockbuf *sb, struct msg *m ) -{ - send_ldap_msgresult( sb, MODTAG, m, LDAP_SUCCESS, NULL, "" ); - - return; -} - -void -modlist_free( LDAPModList *mods ) -{ - LDAPModList *next; - - for ( ; mods != NULL; mods = next ) { - free( mods->m.mod_type ); - if ( mods->m.mod_bvalues != NULL ) - ber_bvecfree( mods->m.mod_bvalues ); - next = mods->mod_next; - free( mods ); - } -} - -/* - * called when mod is replace to optimize by only deleting old values - * that are not in the new set and by only adding what isn't in old set - */ - -static int -replace_mod( - struct entrymod *rem, - Attr_Sequence oas, - Attr_Sequence nas -) -{ - AV_Sequence oavs, navs, davs, prev_navs, tmp; -#ifdef LDAP_DEBUG - PS ps; - - ps = ps_alloc( std_open ); - std_setup( ps, stderr ); - - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, "replace_mod(" ); - AttrT_print( ps, oas->attr_type, EDBOUT ); - ps_print( ps, ")\n" ); - } -#endif - - davs = NULL; - for ( oavs = oas->attr_value; oavs != NULL; oavs = oavs->avseq_next ) { -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, "old value " ); - AttrV_print( ps, &oavs->avseq_av, EDBOUT ); - ps_print( ps, "\n" ); - } -#endif - - prev_navs = NULL; - for ( navs = nas->attr_value; navs != NULL; - prev_navs = navs, navs = navs->avseq_next ) { -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, "\tnew value " ); - AttrV_print( ps, &navs->avseq_av, EDBOUT ); - ps_print( ps, "\n" ); - } -#endif - if ( AttrV_cmp( &oavs->avseq_av, &navs->avseq_av) - == 0) { - break; - } - } - - if ( navs == NULL ) { /* value to delete */ -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, "value to delete " ); - AttrV_print( ps, &oavs->avseq_av, EDBOUT ); - ps_print( ps, "\n" ); - } -#endif - if ( davs == NULL ) { - davs = avs_comp_cpy( oavs ); - } else { - tmp = avs_comp_cpy( oavs ); - tmp->avseq_next = davs; - davs = tmp; - } - } else { /* value to keep */ -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, "value to leave alone " ); - AttrV_print( ps, &oavs->avseq_av, EDBOUT ); - ps_print( ps, "\n" ); - } -#endif - if ( prev_navs == NULL ) { - nas->attr_value = navs->avseq_next; - } else { - prev_navs->avseq_next = navs->avseq_next; - } - avs_comp_free( navs ); - } - } - - if ( davs == NULL && nas->attr_value == NULL ) { -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - ps_print( ps, " nothing to do" ); - } -#endif - rem->em_what = NULL; - } else { - /* Must add new values before removing old values. - * Otherwise, removing all existing values causes the - * attribute to be removed such that subsequent add values - * fail. - */ - if ( nas->attr_value != NULL ) { /* add new values */ -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - AttrT_print( ps, nas->attr_type, EDBOUT ); - ps_print( ps, ": some to add\n" ); - } -#endif - rem->em_type = EM_ADDVALUES; - rem->em_what = nas; - rem->em_next = NULLMOD; - } - - if ( davs != NULL ) { /* delete old values */ -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - AttrT_print( ps, nas->attr_type, EDBOUT ); - ps_print( ps, ": some to delete\n" ); - } -#endif - if ( nas->attr_value != NULL ) { - rem->em_next = (struct entrymod *) calloc( 1, - sizeof(struct entrymod) ); - rem = rem->em_next; - } - rem->em_type = EM_REMOVEVALUES; - rem->em_what = as_comp_new( NULLAttrT, NULLAV, - NULLACL_INFO ); - rem->em_what->attr_type = AttrT_cpy( nas->attr_type ); - rem->em_what->attr_value = davs; - } - } - - return( 0 ); -} diff --git a/servers/ldapd/modrdn.c b/servers/ldapd/modrdn.c deleted file mode 100644 index b9053cd341..0000000000 --- a/servers/ldapd/modrdn.c +++ /dev/null @@ -1,121 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include - -#include -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef LDAP_COMPAT20 -#define MODRDNTAG (ldap_compat == 20 ? OLD_LDAP_RES_MODRDN : LDAP_RES_MODRDN) -#else -#define MODRDNTAG LDAP_RES_MODRDN -#endif - -int -do_modrdn( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - char *dn, *newrdn; - int rc, deleteoldrdn; - struct ds_modifyrdn_arg ma; - static CommonArgs common = default_common_args; - - Debug( LDAP_DEBUG_TRACE, "do_modrdn\n", 0, 0, 0 ); - - /* - * Parse the modrdn request. It looks like this: - * ModifyRDNRequest := SEQUENCE { - * entry DistinguishedName, - * newrdn RelativeDistinguishedName - * } - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_ModifyDnArgument_INIT( &ma ); -#endif -#endif - - if ( ber_scanf( ber, "{aa", &dn, &newrdn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODRDNTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - deleteoldrdn = 1; - if ( ber_scanf( ber, "b", &deleteoldrdn ) == LBER_ERROR ) { - Debug( LDAP_DEBUG_ANY, "found old modrdn\n", 0, 0, 0 ); - } - - Debug( LDAP_DEBUG_ARGS, - "do_modrdn: dn (%s) newrdn (%s) deleteoldrdn (%d)\n", dn, newrdn, - deleteoldrdn ); - - ma.mra_object = ldap_str2dn( dn ); - free( dn ); - if ( ma.mra_object == NULLDN ) { - Debug( LDAP_DEBUG_ANY, "ldap_str2dn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODRDNTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - - ma.mra_newrdn = ldap_str2rdn( newrdn ); - free( newrdn ); - if ( ma.mra_newrdn == NULLRDN ) { - Debug( LDAP_DEBUG_ANY, "str2rdn failed\n", 0, 0, 0 ); - send_ldap_msgresult( clientsb, MODRDNTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "Bad RDN" ); - return( 0 ); - } - ma.deleterdn = (deleteoldrdn ? 1 : 0); - - ma.mra_common = common; /* struct copy */ - - rc = initiate_dap_operation( OP_MODIFYRDN, m, &ma ); - - dn_free( ma.mra_object ); - rdn_free( ma.mra_newrdn ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, MODRDNTAG, m, rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -void -modrdn_result( Sockbuf *sb, struct msg *m ) -{ - send_ldap_msgresult( sb, MODRDNTAG, m, LDAP_SUCCESS, NULL, "" ); - - return; -} diff --git a/servers/ldapd/proto-ldapd.h b/servers/ldapd/proto-ldapd.h deleted file mode 100644 index ced8f1be8f..0000000000 --- a/servers/ldapd/proto-ldapd.h +++ /dev/null @@ -1,182 +0,0 @@ -/* $OpenLDAP$ */ -#ifndef _PROTO_LDAPD_H -#define _PROTO_LDAPD_H - -#include - -/* - * abandon.c - */ - -int do_abandon LDAP_P(( struct conn *dsaconn, BerElement *ber, int msgid )); - -/* - * add.c - */ - -int do_add LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -void add_result LDAP_P(( Sockbuf *sb, struct msg *m )); - -/* - * association.c - */ - -struct conn *conn_dup LDAP_P(( struct conn *cn )); -int conn_init LDAP_P(( void )); -void conn_free LDAP_P(( struct conn *conn )); -void conn_del LDAP_P(( struct conn *conn )); -void conn_setfds LDAP_P(( fd_set *fds )); -void conn_badfds LDAP_P(( void )); -struct conn *conn_getfd LDAP_P(( fd_set *fds )); -void conn_add LDAP_P(( struct conn *new )); -struct conn *conn_find LDAP_P(( struct conn *c )); -void conn_close LDAP_P(( void )); -int isclosed LDAP_P(( int ad )); - -/* - * bind.c - */ - -int do_bind LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber, int *bound )); -int do_bind_real LDAP_P(( struct conn *dsaconn, int *bound, char **matched )); - -/* - * certificate.c - */ - -int ldap_certif_print LDAP_P(( PS ps, struct certificate *parm, int format )); -void ldap_print_algid LDAP_P(( PS ps, struct alg_id *parm, int format )); -struct certificate *ldap_str2cert LDAP_P(( char *str )); -void ldap_str2alg LDAP_P(( char *str, struct alg_id *alg )); -void certif_init LDAP_P(( void )); - -/* - * compare.c - */ - -struct ds_compare_result; -int do_compare LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -void compare_result LDAP_P(( Sockbuf *sb, struct msg *m, - struct ds_compare_result *cr )); - -/* - * delete.c - */ - -int do_delete LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -void delete_result LDAP_P(( Sockbuf *sb, struct msg *m )); - -/* - * error.c - */ - -void print_error LDAP_P(( struct DSError *e )); -int x500err2ldaperr LDAP_P(( struct DSError *e, char **matched )); - -/* - * kerberos.c - */ - -struct ds_bind_arg; -int kerberosv4_ldap_auth LDAP_P(( char *cred, long len )); -int kerberosv4_bindarg LDAP_P(( struct ds_bind_arg *ba, DN dn, char *cred, - long len, u_long *nonce )); -int kerberos_check_mutual LDAP_P(( struct ds_bind_arg *res, u_long nonce )); - -/* - * main.c - */ - -RETSIGTYPE log_and_exit LDAP_P(( int exitcode )) LDAP_GCCATTR((noreturn)); - -/* - * message.c - */ - -struct msg *add_msg LDAP_P(( int msgid, int msgtype, BerElement *ber, - struct conn *dsaconn, int udp, struct sockaddr *clientaddr )); -struct msg *get_msg LDAP_P(( int uniqid )); -int del_msg LDAP_P(( struct msg *m )); -void send_msg LDAP_P(( struct conn *conn, Sockbuf *clientsb, int err, char *str )); -struct msg * get_cldap_msg LDAP_P(( int msgid, int msgtype, struct sockaddr *fromaddr )); - -/* - * modify.c - */ - -struct ds_read_result; -int do_modify LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -int do_modify2 LDAP_P((Sockbuf *sb, struct msg *m, struct ds_read_result *rr)); -Attr_Sequence get_as LDAP_P(( Sockbuf *clientsb, unsigned long op, struct msg *m, - char *type, struct berval **bvals )); -void modify_result LDAP_P(( Sockbuf *sb, struct msg *m )); -void modlist_free LDAP_P(( LDAPModList *mods )); - -/* - * modrdn.c - */ - -int do_modrdn LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -void modrdn_result LDAP_P((Sockbuf *sb, struct msg *m)); - -/* - * request.c - */ - -void client_request LDAP_P(( Sockbuf *clientsb, struct conn *dsaconn, int udp )); -int do_request LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber, - int *bound )); -int initiate_dap_operation LDAP_P(( int op, struct msg *m, void *arg )); -#ifdef LDAP_DEBUG -int trace_ber LDAP_P(( int tag, int len, char *ber, - FILE *trace_file, int prepend, int read_pdu )); -#endif - -/* - * result.c - */ - -void dsa_response LDAP_P(( struct conn *dsaconn, Sockbuf *clientsb )); -int send_ldap_msgresult LDAP_P(( Sockbuf *sb, unsigned long tag, struct msg *m, - int err, char *matched, char *text )); -int send_ldap_result LDAP_P(( Sockbuf *sb, unsigned long tag, int msgid, int err, - char *matched, char *text )); - -/* - * search.c - */ - -struct ds_search_result; -int do_search LDAP_P(( Sockbuf *clientsb, struct msg *m, BerElement *ber )); -void search_result LDAP_P(( Sockbuf *sb, struct msg *m, - struct ds_search_result *sr )); - - -/* - * syntax.c - */ - -void get_syntaxes LDAP_P(( void )); -int dn_print_real LDAP_P(( PS ps, DN dn, int format)); -void ldap_dn_print LDAP_P(( PS ps, DN dn, DN base, int format)); -int encode_dn LDAP_P(( BerElement *ber, DN dn, DN base)); -int encode_attrs LDAP_P(( BerElement *ber, Attr_Sequence as )); -AttributeValue bv_octet2AttrV LDAP_P(( struct berval *bv )); -AttributeValue bv_asn2AttrV LDAP_P(( struct berval *bv )); -AttributeValue ldap_strdn2AttrV LDAP_P(( char *dnstr )); -DN ldap_str2dn LDAP_P(( char *str )); -RDN ldap_str2rdn LDAP_P(( char *rdnstr )); -AttributeValue ldap_str_at2AttrV LDAP_P(( char *str, AttributeType type )); -AttributeValue ldap_str2AttrV LDAP_P(( char *value, short syntax )); - -/* - * util.c - */ - -void bprint LDAP_P(( char *data, int len )); -void charlist_free LDAP_P(( char **cl )); -int get_ava LDAP_P(( BerElement *ber, AVA *tava )); -int chase_referral LDAP_P(( Sockbuf *clientsb, struct msg *m, struct DSError *err, - char **matched )); - -#endif /* _proto_ldapd */ diff --git a/servers/ldapd/request.c b/servers/ldapd/request.c deleted file mode 100644 index 8f27d30430..0000000000 --- a/servers/ldapd/request.c +++ /dev/null @@ -1,514 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -#ifdef PEPSY_DUMP -#ifndef DEBUG -#define DEBUG -#endif -#include "LDAP-types.h" -#if ISODEPACKAGE == IC -#include -#else -#include -#endif -#endif - -/* - * client_request - called by do_queries() when there is activity on the - * client socket. It expects to be able to get an LDAP message from the - * client socket, parses the first couple of fields, and then calls - * do_request() to handle the request. If do_request() (or something - * called by it) returns a response to the client (e.g., in the case of - * an error), then client_request() is done. If the request is not - * responded to (and needs a response), it is added to the queue of - * outstanding requests. It will be responded to later via dsa_response(), - * once the DSA operation completes. - */ - -void -client_request( - Sockbuf *clientsb, - struct conn *dsaconn, - int udp -) -{ - unsigned long tag; - unsigned long len; - long msgid; - BerElement ber, *copyofber; - struct msg *m; - static int bound; -#ifdef LDAP_CONNECTIONLESS - struct sockaddr_in *sai; -#endif - Debug( LDAP_DEBUG_TRACE, "client_request%s\n", - udp ? " udp" : "", 0, 0 ); - - /* - * Get the ldap message, which is a sequence of message id - - * and then the actual request choice. - */ - - ber_init_w_nullc( &ber, 0 ); - if ( (tag = ber_get_next( clientsb, &len, &ber )) == LBER_DEFAULT ) { - Debug( LDAP_DEBUG_ANY, "ber_get_next failed\n", 0, 0, 0 ); - log_and_exit( 1 ); - } - -#ifdef LDAP_CONNECTIONLESS - if ( udp && dosyslog ) { - ber_sockbuf_ctrl( clientsb, LBER_SB_OPT_UDP_GET_SRC, - (void *)&sai ); - syslog( LOG_INFO, "UDP request from unknown (%s)", - inet_ntoa( sai->sin_addr ) ); - } -#endif - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_BER ) - trace_ber( tag, len, ber.ber_buf, stderr, 1, 1 ); -#endif - -#ifdef LDAP_COMPAT - /* - * This tag should be a normal SEQUENCE tag. In release 2.0 this - * tag is 0x10. In the new stuff this is 0x30. To distinguish - * between 3.0 and the "correct" stuff, we look for an extra - * sequence tag after the bind tag. - */ - - Debug( LDAP_DEBUG_ANY, "bound %d\n", bound, 0, 0 ); - if ( bound == 0 ) { - /* check for 2.0 */ - if ( tag == OLD_LDAP_TAG_MESSAGE ) { - Debug( LDAP_DEBUG_ANY, "version 2.0 detected\n", 0, - 0, 0 ); - if ( dosyslog ) { - syslog( LOG_INFO, "old version 2.0 detected" ); - } - ldap_compat = 20; - /* check for 3.0 */ - } else { - BerElement tber; - unsigned long tlen; - unsigned long ttag; - - tber = ber; /* struct copy */ - /* msgid */ - ttag = ber_skip_tag( &tber, &tlen ); - tber.ber_ptr += tlen; - /* bind sequence header */ - ttag = ber_skip_tag( &tber, &tlen ); - ttag = ber_peek_tag( &tber, &tlen ); - - Debug( LDAP_DEBUG_ANY, "checking for 3.0 tag 0x%lx\n", - ttag, 0, 0 ); - if ( ttag == LBER_SEQUENCE ) { - Debug( LDAP_DEBUG_ANY, "version 3.0 detected\n", - 0, 0, 0 ); - if ( dosyslog ) { - syslog( LOG_INFO, - "old version 3.0 detected" ); - } - ldap_compat = 30; - } - } - } -#endif - - if ( ber_get_int( &ber, &msgid ) != LDAP_TAG_MSGID ) { - send_ldap_result( clientsb, LBER_DEFAULT, msgid, - LDAP_PROTOCOL_ERROR, NULL, "Not an LDAP message" ); - free( ber.ber_buf ); - return; - } - -#ifdef LDAP_CONNECTIONLESS - if ( udp ) { - char *logdn = NULL; - - ber_get_stringa( &ber, &logdn ); - if ( logdn != NULL ) { - if ( dosyslog ) { - syslog( LOG_INFO, "UDP requestor: %s", logdn ); - } - Debug( LDAP_DEBUG_ANY, "UDP requestor: %s\n", logdn, 0, 0 ); - free( logdn ); - } - } -#endif /* LDAP_CONNECTIONLESS */ - -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - tag = ber_skip_tag( &ber, &len ); - else -#endif - tag = ber_peek_tag( &ber, &len ); - if ( !udp && bound == 0 && tag != LDAP_REQ_BIND -#ifdef LDAP_COMPAT20 - && tag != OLD_LDAP_REQ_BIND -#endif - ) { - send_ldap_result( clientsb, tag, msgid, LDAP_OPERATIONS_ERROR, - NULL, "Bind operation must come first" ); - free( ber.ber_buf ); - return; - } - -#ifdef LDAP_CONNECTIONLESS - if (udp && tag != LDAP_REQ_SEARCH && tag != LDAP_REQ_ABANDON ) { - send_ldap_result( clientsb, tag, msgid, LDAP_OPERATIONS_ERROR, - NULL, "Only search is supported over UDP/CLDAP" ); - free( ber.ber_buf ); - return; - } - ber_sockbuf_ctrl( clientsb, LBER_SB_OPT_UDP_GET_SRC, (void *)&sai ); - - if ( get_cldap_msg( msgid, tag, - (struct sockaddr *)sai ) != NULL ) { - /* - * duplicate request: toss this one - */ - Debug( LDAP_DEBUG_TRACE, - "client_request tossing dup request id %ld from %s\n", - msgid, inet_ntoa( sai->sin_addr ), 0 ); - - free( ber.ber_buf ); - return; - } -#endif - - copyofber = ber_dup( &ber ); - - m = add_msg( msgid, tag, copyofber, dsaconn, udp, -#ifdef LDAP_CONNECTIONLESS - (struct sockaddr *)sai ); -#else - NULL ); -#endif - - /* - * Call the appropriate routine to handle the request. If it - * returns a nonzero result, the message requires a response, and - * so it's left in the queue of outstanding requests, otherwise - * it's deleted. - */ - - if ( do_request( clientsb, m, &ber, &bound ) == 0 ) { - del_msg( m ); - } - - return; -} - -/* - * do_request - called when a client makes a request, or when a referral - * error is returned. In the latter case, a connection is made to the - * referred to DSA, and do_request() is called to retry the operation over - * that connection. In the former case, do_request() is called to try - * the operation over the default association. - */ - -int -do_request( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber, - int *bound -) -{ - int resp_required = 0; - - Debug( LDAP_DEBUG_TRACE, "do_request\n", 0, 0, 0 ); - - switch ( m->m_msgtype ) { -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_BIND: -#endif - case LDAP_REQ_BIND: - resp_required = do_bind( clientsb, m, ber, bound ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_UNBIND: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_REQ_UNBIND_30: -#endif - case LDAP_REQ_UNBIND: - conn_close(); - log_and_exit( 0 ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_ADD: -#endif - case LDAP_REQ_ADD: - resp_required = do_add( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_DELETE: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_REQ_DELETE_30: -#endif - case LDAP_REQ_DELETE: - resp_required = do_delete( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_MODRDN: -#endif - case LDAP_REQ_MODRDN: - resp_required = do_modrdn( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_MODIFY: -#endif - case LDAP_REQ_MODIFY: - resp_required = do_modify( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_COMPARE: -#endif - case LDAP_REQ_COMPARE: - resp_required = do_compare( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_SEARCH: -#endif - case LDAP_REQ_SEARCH: - resp_required = do_search( clientsb, m, ber ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_ABANDON: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_REQ_ABANDON_30: -#endif - case LDAP_REQ_ABANDON: - resp_required = do_abandon( m->m_conn, ber, m->m_uniqid ); - break; - - default: - Debug( LDAP_DEBUG_ANY, "unknown operation %d\n", m->m_msgtype, - 0, 0 ); - - send_ldap_msgresult( clientsb, m->m_msgtype, m, - LDAP_PROTOCOL_ERROR, NULL, "Unknown request type" ); - break; - } - - return( resp_required ); -} - -/* - * initiate_dap_operation - initiate a dap operation, rebinding and retrying - * the request if necessary. If the request is successfully initiated, 0 is - * returned. Otherwise, an indication of the error is returned. - */ - -int -initiate_dap_operation( - int op, - struct msg *m, - void *arg -) -{ - char *matched; - int i, rc, bound = 0; - struct DAPindication di; - - Debug( LDAP_DEBUG_TRACE, "initiate_dap_operation\n", 0, 0, 0 ); - - if ( m->m_conn->c_ad == -1 && do_bind_real( m->m_conn, &bound, - &matched ) != LDAP_SUCCESS ) - return( LDAP_UNAVAILABLE ); - - for ( i = 0; i < 2; i++ ) { - switch ( op ) { - case OP_COMPARE: - rc = DapCompare( m->m_conn->c_ad, m->m_uniqid, - (struct ds_compare_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_SEARCH: - rc = DapSearch( m->m_conn->c_ad, m->m_uniqid, - (struct ds_search_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_ADDENTRY: - rc = DapAddEntry( m->m_conn->c_ad, m->m_uniqid, - (struct ds_addentry_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_REMOVEENTRY: - rc = DapRemoveEntry( m->m_conn->c_ad, m->m_uniqid, - (struct ds_removeentry_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_MODIFYENTRY: - rc = DapModifyEntry( m->m_conn->c_ad, m->m_uniqid, - (struct ds_modifyentry_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_READ: - rc = DapRead( m->m_conn->c_ad, m->m_uniqid, - (struct ds_read_arg *) arg, &di, ROS_ASYNC ); - break; - - case OP_MODIFYRDN: - rc = DapModifyRDN( m->m_conn->c_ad, m->m_uniqid, - (struct ds_modifyrdn_arg *) arg, &di, ROS_ASYNC ); - break; - - default: - break; - } - - Debug( LDAP_DEBUG_TRACE, "operation initiated %d\n", rc, 0, - 0 ); - - if ( rc == OK ) - return( 0 ); - - /* - * the operation was not invoked - try rebinding, then - * try it again. - */ - - (void) dap_unbind( m->m_conn->c_ad ); - - if ( do_bind_real( m->m_conn, &bound, &matched ) - != LDAP_SUCCESS ) - break; - } - - m->m_conn->c_ad = -1; - - return( LDAP_UNAVAILABLE ); /* DSA was unreachable */ -} - -#ifdef LDAP_DEBUG -int -trace_ber( - int tag, - int len, - char *ber, - FILE *trace_file, - int prepend, - int read_pdu /* If non-zero, PDU was read from client. 0 == PDU is being written */ -) -{ - unsigned char *buf; - PS input_ps = NULLPS; - PE pe; - int result = -1; - - Debug( LDAP_DEBUG_TRACE, "trace_ber(tag=%#x, ber=%#lx, len=%d)\n", tag, - (unsigned long) ber, len ); - - if ( (buf = (unsigned char *) malloc( len + 6 )) == NULL ) { - fprintf( trace_file, "Unable to allocate memory\n" ); - } else { - if ( prepend ) { - buf[0] = tag; - buf[1] = 0x84; - buf[2] = len >> 24; - buf[3] = len >> 16; - buf[4] = len >> 8; - buf[5] = len; - SAFEMEMCPY( buf + 6, ber, len ); - } else { - SAFEMEMCPY( buf, ber, len ); - } - if ( (input_ps = ps_alloc( str_open )) == NULLPS ) - fprintf( trace_file, "ps_alloc failed\n" ); - else if ( str_setup( input_ps, (char *)buf, len + 6, 1 ) != OK ) - fprintf( trace_file, "str_setup\n" ); - else if ( (pe = ps2pe( input_ps )) == NULLPE ) { - fprintf(trace_file, "ps2pe: %s\n", - ps_error( input_ps->ps_errno ) ); - ber_bprint( (char *) buf, len + 6 ); - } else { -#ifdef PEPSY_DUMP - int failed = 0; - static LLog log = { - "-", NULLCP, NULLCP, LLOG_PDUS, - LLOG_NONE, -1, 0, NOTOK - }; - struct type_LDAP_LDAPMessage *ldap_msg = NULL; - - if ( decode_LDAP_LDAPMessage(pe, 1, 0, NULL, &ldap_msg) - == -1 ) { - failed = 1; - fprintf( trace_file, - "Error decoding LDAPMessage:\n [%s]\n", - PY_pepy ); - fprintf( trace_file, "Here is the PDU:\n" ); - vsetfp( trace_file, NULL ); - vunknown( pe ); - } - if (log.ll_events & LLOG_PDUS) { - pvpdu (&log, print_LDAP_LDAPMessage_P, pe, - failed ? - "" : "", - read_pdu); - } -/* - PLOGP(&log, LDAP_LDAPMessage, pe, failed ? "" : "", read_pdu); -*/ - if (ldap_msg) - free_LDAP_LDAPMessage(ldap_msg); -#else - vsetfp( trace_file, NULL ); - vunknown( pe ); -#endif - pe_free( pe ); - result = 0; - } - free( buf ); - } - - if ( input_ps ) - ps_free( input_ps ); - - return( result ); -} -#endif diff --git a/servers/ldapd/result.c b/servers/ldapd/result.c deleted file mode 100644 index d7a8e1445a..0000000000 --- a/servers/ldapd/result.c +++ /dev/null @@ -1,371 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include - -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -/* - * dsa_response - called by do_queries() when there is activity on one of - * the DSA associations. It is passed the association descriptor on which - * the activity occurred, and the client socket. It figures out what kind - * of activity it was (e.g., result of a previously initiated operation, - * error return, etc), and calls the appropriate routine to send a response - * to the client, or to continue the operation in some cases (e.g., modify), - * or to chase a referral and retry an operation. - * - * If the client is actually given a response, dsa_response() removes the - * corresponding request from the queue of outstanding requests. If the - * activity was an error referral, a connection is made to the referred to - * DSA (if possible), and do_request() is called to retry the request. - */ - -void -dsa_response( - struct conn *dsaconn, - Sockbuf *clientsb -) -{ - struct DAPindication di; - struct DSResult *dr; - struct DSError *de; - struct DAPpreject *dp; - struct DAPabort *da; - struct msg *m = NULL; - BerElement *bercopy; - char *matched; - int incr, delete, rc, ldaperr; - - Debug( LDAP_DEBUG_TRACE, "dsa_response on ad %d\n", dsaconn->c_ad, 0, - 0 ); - di.di_type = -1; - if ( (rc = DapInitWaitRequest( dsaconn->c_ad, OK, &di )) == DONE ) { - Debug( LDAP_DEBUG_ANY, "DapInitWaitRequest: DONE\n", 0, 0, 0 ); - return; - } - - Debug( LDAP_DEBUG_ARGS, "DapInitWaitRequest: result %d type %d\n", rc, - di.di_type, 0 ); - - delete = 1; - switch ( di.di_type ) { - case DI_RESULT: - dr = &di.di_result.dr_res; - if ( (m = get_msg( di.di_result.dr_id )) == NULL ) { - Debug( LDAP_DEBUG_ANY, "DI_RESULT: can't find msg %d\n", - di.di_result.dr_id, 0, 0 ); - return; - } - - Debug( LDAP_DEBUG_ARGS, "DI_RESULT: type %d\n", - dr->result_type, 0, 0 ); - - switch ( dr->result_type ) { - case OP_COMPARE: - compare_result( clientsb, m, &dr->res_cm ); - break; - - case OP_SEARCH: - search_result( clientsb, m, &dr->res_sr ); - break; - - case OP_ADDENTRY: - add_result( clientsb, m ); - break; - - case OP_REMOVEENTRY: - delete_result( clientsb, m ); - break; - - case OP_MODIFYENTRY: - modify_result( clientsb, m ); - break; - - case OP_READ: - if ( do_modify2( clientsb, m, &dr->res_rd ) != 0 ) - delete = 0; - break; - - case OP_MODIFYRDN: - modrdn_result( clientsb, m ); - break; - - default: - break; - } - ds_res_free( dr ); - break; - - case DI_ERROR: - de = &di.di_error.de_err; - if ( (m = get_msg( di.di_error.de_id )) == NULL ) { - Debug( LDAP_DEBUG_ANY, "DI_ERROR: can't find msg %d\n", - di.di_error.de_id, 0, 0 ); - return; - } - if ( m->m_msgtype == LDAP_REQ_SEARCH -#ifdef LDAP_COMPAT20 - || m->m_msgtype == OLD_LDAP_REQ_SEARCH -#endif - ) - incr = 2; - else if ( m->m_msgtype == LDAP_REQ_DELETE ) - incr = (LDAP_RES_DELETE - LDAP_REQ_DELETE); - else - incr = 1; - - Debug( LDAP_DEBUG_ARGS, "DI_ERROR\n", 0, 0, 0 ); - - /* - * chase down referrals, retry operation there. only do - * this for modify-like operations, since we assume the - * dsa should have been able to chase anything else that - * wasn't really down. - */ - - if ( de->dse_type == DSE_REFERRAL ) { - int bound, rc; - - switch ( m->m_msgtype ) { -#ifdef LDAP_COMPAT20 - case OLD_LDAP_REQ_ADD: - case OLD_LDAP_REQ_MODIFY: - case OLD_LDAP_REQ_MODRDN: - case OLD_LDAP_REQ_DELETE: - case OLD_LDAP_REQ_COMPARE: - case OLD_LDAP_REQ_SEARCH: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_REQ_DELETE_30: -#endif - case LDAP_REQ_ADD: - case LDAP_REQ_MODIFY: - case LDAP_REQ_MODRDN: - case LDAP_REQ_DELETE: - case LDAP_REQ_COMPARE: - case LDAP_REQ_SEARCH: - /* chase down the referral */ - if ( (rc = chase_referral( clientsb, m, de, - &matched )) != LDAP_SUCCESS ) { - send_ldap_msgresult( clientsb, - m->m_msgtype + incr, m, rc, - matched, "Can't chase referral" ); - free( matched ); - break; - } - - /* now retry the operation */ - bercopy = ber_dup( m->m_ber ); - if ( do_request( clientsb, m, bercopy, &bound ) - == 0 ) { - del_msg( m ); - } - ber_free( bercopy, 0 ); - return; - break; - - default: - send_ldap_msgresult( clientsb, m->m_msgtype + - incr, m, LDAP_UNAVAILABLE, NULL, "" ); - break; - } - break; - } else if ( de->dse_type == DSE_ABANDONED ) { - return; - } - - - /* not a referral - convert the error and return to client */ - ldaperr = x500err2ldaperr( de, &matched ); -#ifdef LDAP_DEBUG - if ( ldap_debug ) - print_error( de ); /* prints, then calls free */ - else -#endif - ds_error_free( de ); - - send_ldap_msgresult( clientsb, m->m_msgtype + incr, m, - ldaperr, matched, "" ); - free( matched ); - break; - - case DI_PREJECT: - dp = &di.di_preject; - if ( (m = get_msg( dp->dp_id )) == NULL ) { - Debug(LDAP_DEBUG_ANY, "DI_PREJECT: can't find msg %d\n", - dp->dp_id, 0, 0 ); - return; - } - - Debug( LDAP_DEBUG_ARGS, "DI_PREJECT src %d rson %d inf (%s)\n", - dp->dp_source, dp->dp_reason, dp->dp_cc ? dp->dp_data - : "" ); - - send_ldap_msgresult( clientsb, m->m_msgtype, m, - LDAP_UNAVAILABLE, NULL, "Got PREJECT from X.500" ); - - dsaconn->c_ad = -1; - break; - - case DI_ABORT: - da = &di.di_abort; - - Debug( LDAP_DEBUG_ARGS, "DI_ABORT src %d rson %d inf (%s)\n", - da->da_source, da->da_reason, da->da_cc ? da->da_data - : "" ); - - /* assume this always means more stuff coming... */ - if ( da->da_reason == DA_ROS ) - return; - - /* moby hack - but how else do you tell the difference? */ - if ( isclosed( dsaconn->c_ad ) ) { - send_msg( dsaconn, clientsb, LDAP_UNAVAILABLE, - "Got ABORT from X.500" ); - return; - } - - /* notify outstanding requests of the failure */ - send_msg( dsaconn, clientsb, LDAP_OPERATIONS_ERROR, - "Got unknown ABORT from X.500" ); - - dsaconn->c_ad = -1; - return; - break; - - default: - Debug( LDAP_DEBUG_ANY, "unknown result type %d\n", di.di_type, - 0, 0 ); - - dsaconn->c_ad = -1; /* better safe... */ - return; - break; - } - - if ( delete && m != NULL ) - del_msg( m ); -} - -int -send_ldap_msgresult( - Sockbuf *sb, - unsigned long tag, - struct msg *m, - int err, - char *matched, - char *text -) -{ -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) { - ber_sockbuf_ctrl( sb, LBER_SB_OPT_UDP_SET_DST, - (void *)&m->m_clientaddr ); - - Debug( LDAP_DEBUG_TRACE, "UDP response to %s port %d\n", - inet_ntoa(((struct sockaddr_in *) - &m->m_clientaddr)->sin_addr ), - ((struct sockaddr_in *)&m->m_clientaddr)->sin_port, 0 ); - } -#endif - return( send_ldap_result( sb, tag, m->m_msgid, err, matched, text ) ); -} - -int -send_ldap_result( - Sockbuf *sb, - unsigned long tag, - int msgid, - int err, - char *matched, - char *text -) -{ - BerElement *ber; - int rc; -#ifdef LDAP_CONNECTIONLESS - int cldap; - cldap = ber_sockbuf_ctrl( sb, LBER_SB_OPT_HAS_IO, &ber_sockbuf_io_udp ); -#endif - - Debug( LDAP_DEBUG_TRACE, "send_ldap_result\n", 0, 0, 0 ); - - if ( tag == LBER_DEFAULT ) -#ifdef LDAP_COMPAT20 - tag = ldap_compat == 20 ? OLD_LBER_SEQUENCE : LBER_SEQUENCE; -#else - tag = LBER_SEQUENCE; -#endif - - if ( (ber = der_alloc()) == NULL ) { - Debug( LDAP_DEBUG_ANY, "der_alloc failed\n", 0, 0, 0 ); - return( -1 ); - } - - if ( version != 1 ) { -#ifdef LDAP_COMPAT20 - if ( ldap_compat == 20 ) { - rc = ber_printf( ber, "t{it{tess}}", OLD_LBER_SEQUENCE, - msgid, tag, LBER_INTEGER, err, - matched ? matched : "", text ); - } else -#endif -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) { - rc = ber_printf( ber, "{it{{ess}}}", msgid, tag, err, - matched ? matched : "", text ); - } else -#endif -#ifdef LDAP_CONNECTIONLESS - if ( cldap ) { - rc = ber_printf( ber, "{is{t{ess}}}", msgid, "", tag, - err, matched ? matched : "", text ); - } else -#endif - rc = ber_printf( ber, "{it{ess}}", msgid, tag, err, matched ? - matched : "", text ); - } else { - /* version 1 always uses the broken stuff */ - rc = ber_printf( ber, "t{it{is}}", OLD_LBER_SEQUENCE, msgid, - tag, err, text ); - } - - if ( rc == -1 ) { - Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 ); - return( -1 ); - } - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_BER ) - trace_ber( 0, ber->ber_ptr - ber->ber_buf, ber->ber_buf, - stderr, 0, 0 ); -#endif - - if ( ber_flush( sb, ber, 1 ) != 0 ) { - Debug( LDAP_DEBUG_ANY, "ber_flush failed\n", 0, 0, 0 ); - return( -1 ); - } - - return( 0 ); -} diff --git a/servers/ldapd/search.c b/servers/ldapd/search.c deleted file mode 100644 index 8ff3c194f6..0000000000 --- a/servers/ldapd/search.c +++ /dev/null @@ -1,715 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -static int get_filter( BerElement *ber, Filter *filt ); -static int get_filter_list( BerElement *ber, Filter f ); -static int get_substring_filter( BerElement *ber, Filter f ); - -#ifdef LDAP_COMPAT -#define SEARCHRESTAG (ldap_compat == 20 ? OLD_LDAP_RES_SEARCH_RESULT : LDAP_RES_SEARCH_RESULT) -#else -#define SEARCHRESTAG LDAP_RES_SEARCH_RESULT -#endif - -int -do_search( - Sockbuf *clientsb, - struct msg *m, - BerElement *ber -) -{ - int rc, err; - int deref, attrsonly; - int sizelimit, timelimit; - char *base; - char **attrs; - struct ds_search_arg sa; - static CommonArgs common = default_common_args; - - Debug( LDAP_DEBUG_TRACE, "do_search\n", 0, 0, 0 ); - - /* - * Parse the search request. It looks like this: - * SearchRequest := [APPLICATION 3] SEQUENCE { - * baseObject DistinguishedName, - * scope ENUMERATED { - * baseObject (0), - * singleLevel (1), - * wholeSubtree (2) - * }, - * derefAliases ENUMERATED { - * neverDerefaliases (0), - * derefInSearching (1), - * derefFindingBaseObj (2), - * alwaysDerefAliases (3) - * }, - * sizelimit INTEGER (0 .. 65535), - * timelimit INTEGER (0 .. 65535), - * attrsOnly BOOLEAN, - * filter Filter, - * attributes SEQUENCE OF AttributeType - * } - */ - -#if ISODEPACKAGE == IC -#if ICRELEASE > 2 - DAS_SearchArgument_INIT( &sa ); -#endif -#endif - - if ( ber_scanf( ber, "{aiiiib", &base, &sa.sra_subset, &deref, - &sizelimit, &timelimit, &attrsonly ) == LBER_ERROR ) { - send_ldap_msgresult( clientsb, SEARCHRESTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - - sa.sra_baseobject = ldap_str2dn( base ); - if ( sa.sra_baseobject == NULLDN && *base != '\0' ) { - free( base ); - send_ldap_msgresult( clientsb, SEARCHRESTAG, m, - LDAP_INVALID_DN_SYNTAX, NULL, "" ); - return( 0 ); - } - free( base ); - - sa.sra_common = common; /* struct copy */ - sa.sra_searchaliases = (deref == LDAP_DEREF_SEARCHING || - deref == LDAP_DEREF_ALWAYS); - if ( deref == LDAP_DEREF_NEVER || deref == LDAP_DEREF_SEARCHING ) - sa.sra_common.ca_servicecontrol.svc_options |= - SVC_OPT_DONTDEREFERENCEALIAS; - - sa.sra_common.ca_servicecontrol.svc_sizelimit = (sizelimit == 0 ? - SVC_NOSIZELIMIT : sizelimit); - - sa.sra_common.ca_servicecontrol.svc_timelimit = (timelimit == 0 ? - SVC_NOTIMELIMIT : timelimit); - - sa.sra_eis.eis_infotypes = (attrsonly ? EIS_ATTRIBUTETYPESONLY : - EIS_ATTRIBUTESANDVALUES); - - /* search filter */ - if ( (err = get_filter( ber, &sa.sra_filter )) != 0 ) { - send_ldap_msgresult( clientsb, SEARCHRESTAG, m, - err, NULL, "Bad search filter" ); - return( 0 ); - } - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - PS ps; - - ps = ps_alloc( std_open ); - std_setup( ps, stderr ); - ps_print( ps, "Filter: " ); - fi_print( ps, sa.sra_filter, EDBOUT ); - ps_print( ps, "\n" ); - ps_free( ps ); - } -#endif - - /* attrs to return */ - attrs = NULL; - if ( ber_scanf( ber, "{v}}", &attrs ) == LBER_ERROR ) { - send_ldap_msgresult( clientsb, SEARCHRESTAG, m, - LDAP_PROTOCOL_ERROR, NULL, "" ); - return( 0 ); - } - sa.sra_eis.eis_select = NULLATTR; - if ( attrs == NULL ) { - sa.sra_eis.eis_allattributes = 1; - } else { - Attr_Sequence as; - int i; - - sa.sra_eis.eis_allattributes = 0; - for ( i = 0; attrs[i] != NULL; i++ ) { - AttributeType type; - - if ( (type = AttrT_new( attrs[i] )) == NULLAttrT ) { - Debug( LDAP_DEBUG_TRACE, "unknown attr (%s)\n", - attrs[i], 0, 0 ); - continue; - } - - as = as_comp_alloc(); - as->attr_type = type; - as->attr_acl = NULLACL_INFO; - as->attr_link = NULLATTR; - as->attr_value = NULLAV; - - sa.sra_eis.eis_select = as_merge( as, - sa.sra_eis.eis_select ); - } - - /* complain only if we know about none of the attrs */ - if ( sa.sra_eis.eis_select == NULLATTR ) { - send_ldap_msgresult( clientsb, SEARCHRESTAG, - m, LDAP_UNDEFINED_TYPE, NULL, attrs[0] ); - charlist_free( attrs ); - return( 0 ); - } - - charlist_free( attrs ); - } - - rc = initiate_dap_operation( OP_SEARCH, m, &sa ); - -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) - m->m_searchbase = sa.sra_baseobject; - else -#endif /* LDAP_CONNECTIONLESS */ - dn_free( sa.sra_baseobject ); - - filter_free( sa.sra_filter ); - as_free( sa.sra_eis.eis_select ); - - if ( rc != 0 ) { - send_ldap_msgresult( clientsb, SEARCHRESTAG, m, - rc, NULL, "" ); - return( 0 ); - } - - return( 1 ); -} - -static int -get_filter( BerElement *ber, Filter *filt ) -{ - unsigned long tag, len; - int err; - char typestr[64]; - Filter f; - - Debug( LDAP_DEBUG_TRACE, "get_filter\n", 0, 0, 0 ); - - /* - * A filter looks like this coming in: - * Filter ::= CHOICE { - * and [0] SET OF Filter, - * or [1] SET OF Filter, - * not [2] Filter, - * equalityMatch [3] AttributeValueAssertion, - * substrings [4] SubstringFilter, - * greaterOrEqual [5] AttributeValueAssertion, - * lessOrEqual [6] AttributeValueAssertion, - * present [7] AttributeType,, - * approxMatch [8] AttributeValueAssertion - * } - * - * SubstringFilter ::= SEQUENCE { - * type AttributeType, - * SEQUENCE OF CHOICE { - * initial [0] IA5String, - * any [1] IA5String, - * final [2] IA5String - * } - * } - */ - - f = filter_alloc(); - *filt = f; - f->flt_next = NULLFILTER; - - err = 0; - switch (tag = ber_peek_tag( ber, &len )) { -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_EQUALITY: -#endif - case LDAP_FILTER_EQUALITY: - Debug( LDAP_DEBUG_ARGS, "EQUALITY\n", 0, 0, 0 ); - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_EQUALITY; -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - - if ( (err = get_ava( ber, &f->FUITEM.UNAVA )) != 0 ) { - free( f ); - return( err ); - } - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_SUBSTRINGS: -#endif - case LDAP_FILTER_SUBSTRINGS: - Debug( LDAP_DEBUG_ARGS, "SUBSTRINGS\n", 0, 0, 0 ); - err = get_substring_filter( ber, f ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_GE: -#endif - case LDAP_FILTER_GE: - Debug( LDAP_DEBUG_ARGS, "GE\n", 0, 0, 0 ); - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_GREATEROREQUAL; -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - if ( (err = get_ava( ber, &f->FUITEM.UNAVA )) != 0 ) { - free( f ); - return( err ); - } - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_LE: -#endif - case LDAP_FILTER_LE: - Debug( LDAP_DEBUG_ARGS, "LE\n", 0, 0, 0 ); - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_LESSOREQUAL; -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - - if ( (err = get_ava( ber, &f->FUITEM.UNAVA )) != 0 ) { - free( f ); - return( err ); - } - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_PRESENT: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_FILTER_PRESENT_30: -#endif - case LDAP_FILTER_PRESENT: - Debug( LDAP_DEBUG_ARGS, "PRESENT\n", 0, 0, 0 ); - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_PRESENT; - len = sizeof(typestr); -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - - if ( ber_scanf( ber, "s", typestr, &len ) == LBER_ERROR ) - return( LDAP_PROTOCOL_ERROR ); - if ( (f->FUITEM.UNTYPE = str2AttrT( typestr )) == NULLAttrT ) - return( LDAP_UNDEFINED_TYPE ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_APPROX: -#endif - case LDAP_FILTER_APPROX: - Debug( LDAP_DEBUG_ARGS, "APPROX\n", 0, 0, 0 ); - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_APPROX; -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - - if ( (err = get_ava( ber, &f->FUITEM.UNAVA )) != 0 ) { - free( f ); - return( err ); - } - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_AND: -#endif - case LDAP_FILTER_AND: - Debug( LDAP_DEBUG_ARGS, "AND\n", 0, 0, 0 ); - f->flt_type = FILTER_AND; - err = get_filter_list( ber, f ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_OR: -#endif - case LDAP_FILTER_OR: - Debug( LDAP_DEBUG_ARGS, "OR\n", 0, 0, 0 ); - f->flt_type = FILTER_OR; - err = get_filter_list( ber, f ); - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_FILTER_NOT: -#endif - case LDAP_FILTER_NOT: - Debug( LDAP_DEBUG_ARGS, "NOT\n", 0, 0, 0 ); - f->flt_type = FILTER_NOT; - (void) ber_skip_tag( ber, &len ); - err = get_filter( ber, &f->FUFILT ); - break; - - default: - Debug( LDAP_DEBUG_ANY, "unknown filter type %lu\n", tag, 0, 0 ); - free( f ); - return( LDAP_PROTOCOL_ERROR ); - break; - } - - Debug( LDAP_DEBUG_TRACE, "end get_filter\n", 0, 0, 0 ); - return( err ); -} - -static int -get_filter_list( BerElement *ber, Filter f ) -{ - Filter new, tail; - int err; - unsigned long tag, len; - char *last; - - Debug( LDAP_DEBUG_TRACE, "get_filter_list\n", 0, 0, 0 ); - -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - f->FUFILT = tail = NULLFILTER; - for ( tag = ber_first_element( ber, &len, &last ); tag != LBER_DEFAULT; - tag = ber_next_element( ber, &len, last ) ) { - if ( (err = get_filter( ber, &new )) != 0 ) - return( err ); - - if ( f->FUFILT == NULLFILTER ) { - f->FUFILT = new; - } else { - tail->flt_next = new; - } - tail = new; - } - - Debug( LDAP_DEBUG_TRACE, "end get_filter_list\n", 0, 0, 0 ); - return( 0 ); -} - -static int -get_substring_filter( BerElement *ber, Filter f ) -{ - unsigned long tag, len; - char typestr[64]; - AttributeType type; - char *valstr, *last; - AttributeValue value; - - Debug( LDAP_DEBUG_TRACE, "get_substring_filter\n", 0, 0, 0 ); - -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) - (void) ber_skip_tag( ber, &len ); -#endif - - f->flt_type = FILTER_ITEM; - f->FUITEM.fi_type = FILTERITEM_SUBSTRINGS; - len = sizeof(typestr); - if ( ber_scanf( ber, "{s", typestr, &len ) == LBER_ERROR ) { - return( LDAP_PROTOCOL_ERROR ); - } - if ( (type = str2AttrT( typestr )) == NULLAttrT ) { - return( LDAP_UNDEFINED_TYPE ); - } - f->FUITEM.UNSUB.fi_sub_type = type; - f->FUITEM.UNSUB.fi_sub_initial = NULLAV; - f->FUITEM.UNSUB.fi_sub_any = NULLAV; - f->FUITEM.UNSUB.fi_sub_final = NULLAV; - for ( tag = ber_first_element( ber, &len, &last ); tag != LBER_DEFAULT; - tag = ber_next_element( ber, &len, last ) ) { - AV_Sequence avs, any_end; - -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) { - if ( ber_scanf( ber, "{a}", &valstr ) == LBER_ERROR ) { - return( LDAP_PROTOCOL_ERROR ); - } - } else -#endif - if ( ber_scanf( ber, "a", &valstr ) == LBER_ERROR ) { - return( LDAP_PROTOCOL_ERROR ); - } - - value = ldap_str2AttrV( valstr, type->oa_syntax ); - free( valstr ); - - if ( value == NULLAttrV ) { - return( LDAP_INVALID_SYNTAX ); - } - - if ( (avs = avs_comp_new( value )) == NULLAV ) - return( LDAP_OPERATIONS_ERROR ); - - switch ( tag ) { -#ifdef LDAP_COMPAT20 - case OLD_LDAP_SUBSTRING_INITIAL: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_SUBSTRING_INITIAL_30: -#endif - case LDAP_SUBSTRING_INITIAL: - Debug( LDAP_DEBUG_ARGS, " INITIAL\n", 0, 0, 0 ); - if ( f->FUITEM.UNSUB.fi_sub_initial != NULLAV - && f->FUITEM.UNSUB.fi_sub_initial->avseq_next - != NULLAV ) { - return( LDAP_PROTOCOL_ERROR ); - } - f->FUITEM.UNSUB.fi_sub_initial = avs; - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_SUBSTRING_ANY: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_SUBSTRING_ANY_30: -#endif - case LDAP_SUBSTRING_ANY: - Debug( LDAP_DEBUG_ARGS, " ANY\n", 0, 0, 0 ); - - if (f->FUITEM.UNSUB.fi_sub_any != NULLAV) { - any_end->avseq_next = avs; - } else { - f->FUITEM.UNSUB.fi_sub_any = avs; - } - - any_end = avs; - break; - -#ifdef LDAP_COMPAT20 - case OLD_LDAP_SUBSTRING_FINAL: -#endif -#ifdef LDAP_COMPAT30 - case LDAP_SUBSTRING_FINAL_30: -#endif - case LDAP_SUBSTRING_FINAL: - Debug( LDAP_DEBUG_ARGS, " FINAL\n", 0, 0, 0 ); - if ( f->FUITEM.UNSUB.fi_sub_final != NULLAV - && f->FUITEM.UNSUB.fi_sub_final->avseq_next - != NULLAV ) { - return( LDAP_PROTOCOL_ERROR ); - } - f->FUITEM.UNSUB.fi_sub_final = avs; - break; - - default: - Debug( LDAP_DEBUG_ARGS, " unknown type\n", tag, 0, 0 ); - return( LDAP_PROTOCOL_ERROR ); - } - } - - Debug( LDAP_DEBUG_TRACE, "end get_substring_filter\n", 0, 0, 0 ); - return( 0 ); -} - -void -search_result( - Sockbuf *sb, - struct msg *m, - struct ds_search_result *sr -) -{ - EntryInfo *e; - BerElement *ber; - int rc; - - Debug( LDAP_DEBUG_TRACE, "search_result\n", 0, 0, 0 ); - - ber = NULL; - - if ( ! sr->srr_correlated ) { - Debug( LDAP_DEBUG_ARGS, "correlating results\n", 0, 0, 0 ); - correlate_search_results( sr ); - } - -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) { - if ((ber = der_alloc()) == NULL ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "der_alloc" ); - return; - } - if ( ber_printf( ber, "t{is{", LBER_SEQUENCE, m->m_msgid, - "" ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf" ); - return; - } - } -#endif - - for ( e = sr->CSR_entries; e != NULLENTRYINFO; e = e->ent_next ) { - Debug( LDAP_DEBUG_ARGS, "\tentry:\n", 0, 0, 0 ); - -#ifdef LDAP_CONNECTIONLESS - if ( !m->m_cldap ) -#endif /* LDAP_CONNECTIONLESS */ - - if ( (ber = der_alloc()) == NULL ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "der_alloc" ); - return; - } - -#ifdef LDAP_COMPAT20 - if ( version == 1 ) { - if ( ber_printf( ber, "t{it{", OLD_LBER_SEQUENCE, - m->m_msgid, OLD_LDAP_RES_SEARCH_ENTRY ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf" ); - return; - } - } else -#endif -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) { - if ( ber_printf( ber, "{it{{", m->m_msgid, - LDAP_RES_SEARCH_ENTRY ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf" ); - return; - } - } else -#endif -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) - rc = ber_printf( ber, "t{", LDAP_RES_SEARCH_ENTRY ); - else -#endif /* LDAP_CONNECTIONLESS */ - rc = ber_printf( ber, "{it{", m->m_msgid, - LDAP_RES_SEARCH_ENTRY ); - - if ( rc == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf" ); - return; - } - -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) - rc = encode_dn( ber, e->ent_dn, m->m_searchbase ); -#endif /* LDAP_CONNECTIONLESS */ - else - rc = encode_dn( ber, e->ent_dn, NULLDN ); - - if ( rc == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "encode_dn" ); - return; - } - - if ( encode_attrs( ber, e->ent_attr ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "encode_attrs" ); - return; - } - -#ifdef LDAP_COMPAT20 - if ( version == 1 ) { - if ( ber_printf( ber, "}}" ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, - "ber_printf 2" ); - return; - } - } else -#endif -#ifdef LDAP_COMPAT30 - if ( ldap_compat == 30 ) { - if ( ber_printf( ber, "}}}" ) == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, - "ber_printf 2" ); - return; - } - } else -#endif -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) - rc = ber_printf( ber, "}" ); - else -#endif /* LDAP_CONNECTIONLESS */ - rc = ber_printf( ber, "}}" ); - - if ( rc == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf 2" ); - return; - } - -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_BER ) - trace_ber( 0, ber->ber_ptr - ber->ber_buf, - ber->ber_buf, stderr, 0, 0 ); -#endif - -#ifdef LDAP_CONNECTIONLESS - if ( !m->m_cldap ) -#endif - (void) ber_flush( sb, ber, 1 ); - } - - switch ( sr->CSR_limitproblem ) { - case LSR_NOLIMITPROBLEM: - rc = LDAP_SUCCESS; - break; - case LSR_TIMELIMITEXCEEDED: - rc = LDAP_TIMELIMIT_EXCEEDED; - break; - case LSR_SIZELIMITEXCEEDED: - case LSR_ADMINSIZEEXCEEDED: - rc = LDAP_SIZELIMIT_EXCEEDED; - break; - } - - Debug( LDAP_DEBUG_ARGS, "\tresult:\n", 0, 0, 0 ); - -#ifdef LDAP_CONNECTIONLESS - if ( m->m_cldap ) { - if ( ber_printf( ber, "t{ess}}}", SEARCHRESTAG, rc, "", "" ) - == -1 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_OPERATIONS_ERROR, NULL, "ber_printf" ); - return; - } - ber_sockbuf_ctrl( sb, LBER_SB_OPT_UDP_SET_DST, - (void *)&m->m_clientaddr ); - - if ( ber_flush( sb, ber, 1 ) != 0 ) { - send_ldap_msgresult( sb, SEARCHRESTAG, m, - LDAP_RESULTS_TOO_LARGE, NULL, "ber_flush" ); - } - } else -#endif - send_ldap_msgresult( sb, SEARCHRESTAG, m, rc, NULL, "" ); - - return; -} diff --git a/servers/ldapd/syntax.c b/servers/ldapd/syntax.c deleted file mode 100644 index 005fb78d6b..0000000000 --- a/servers/ldapd/syntax.c +++ /dev/null @@ -1,1039 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -extern oid_table_attr *name2attr( char * ); -/*extern AttributeValue str_at2AttrV( char *, IF_AttributeType * );*/ - -#include "lber.h" -#include "../../libraries/liblber/lber-int.h" /* get struct berelement */ -#include "ldap.h" -#include "common.h" - -short ldap_photo_syntax; -short ldap_jpeg_syntax; -short ldap_jpeg_nonfile_syntax; -short ldap_audio_syntax; -short ldap_dn_syntax; -short ldap_postaladdress_syntax; -short ldap_acl_syntax; -short ldap_mtai_syntax; -short ldap_rts_cred_syntax; -short ldap_rtl_syntax; -short ldap_mailbox_syntax; -short ldap_caseignorelist_syntax; -short ldap_caseexactstring_syntax; -short ldap_certif_syntax; -short ldap_iattr_syntax; -short ldap_telex_syntax; -short ldap_octetstring_syntax; -short ldap_deliverymethod_syntax; -short ldap_facsimileTelephoneNumber_syntax; -short ldap_presentationAddress_syntax; -short ldap_teletexTerminalIdentifier_syntax; -short ldap_searchGuide_syntax; -short ldap_dLSubmitPermission_syntax; - -static void de_t61( char *s, int t61mark ); -static int syntax_is_string( short syntax ); - -static int -get_one_syntax( char *attrib, int required ) -{ - oid_table_attr *p; - - if ( (p = name2attr( attrib )) != (oid_table_attr *) 0 ) - return( p->oa_syntax ); - - if ( !required ) - return( -1 ); - - Debug( LDAP_DEBUG_ANY, "name2attr (%s) failed - exiting\n", attrib, - 0, 0 ); - - log_and_exit( 1 ); -} - -void -get_syntaxes( void ) -{ - Debug( LDAP_DEBUG_TRACE, "get_syntaxes\n", 0, 0, 0 ); - - ldap_photo_syntax = get_one_syntax( "photo", 0 ); - ldap_jpeg_syntax = get_one_syntax( "jpegPhoto", 0 ); - ldap_jpeg_nonfile_syntax = str2syntax( "jpeg" ); - ldap_audio_syntax = get_one_syntax( "audio", 0 ); - ldap_postaladdress_syntax = get_one_syntax( "postaladdress", 0 ); - ldap_dn_syntax = get_one_syntax( "aliasedObjectName", 1 ); - ldap_acl_syntax = get_one_syntax( "acl", 0 ); - ldap_mtai_syntax = get_one_syntax( "mTAInfo", 0 ); - ldap_rts_cred_syntax= get_one_syntax( "initiatingRTSCredentials", 0 ); - ldap_rtl_syntax= get_one_syntax( "routingTreeList", 0 ); - ldap_mailbox_syntax = get_one_syntax( "otherMailbox", 0 ); - ldap_caseignorelist_syntax = str2syntax( "CaseIgnoreList" ); - ldap_caseexactstring_syntax = str2syntax( "caseexactstring" ); - ldap_octetstring_syntax = str2syntax( "OctetString" ); - ldap_deliverymethod_syntax = str2syntax( "DeliveryMethod" ); - ldap_iattr_syntax = get_one_syntax( "inheritedAttribute", 0 ); - ldap_certif_syntax = get_one_syntax( "userCertificate", 0 ); - ldap_telex_syntax = get_one_syntax( "telexNumber", 0 ); - ldap_facsimileTelephoneNumber_syntax = - get_one_syntax( "facsimileTelephoneNumber", 0 ); - ldap_presentationAddress_syntax = - get_one_syntax( "presentationAddress", 0 ); - ldap_teletexTerminalIdentifier_syntax = - get_one_syntax( "teletexTerminalIdentifier", 0 ); - ldap_searchGuide_syntax = get_one_syntax( "searchGuide", 0 ); - ldap_dLSubmitPermission_syntax = - get_one_syntax( "mhsDLSubmitPermissions", 0 ); - - certif_init(); /* initialize certificate syntax handler */ -} - -/* - * From RFC 1779 "A String Representation of Distinguished Names" - * - * Key Attribute (X.520 keys) - * ------------------------------ - * CN CommonName - * L LocalityName - * ST StateOrProvinceName - * O OrganizationName - * OU OrganizationalUnitName - * C CountryName - * STREET StreetAddress - * - * - * Table 1: Standardised Keywords - * - * There is an escape mechanism from the normal user oriented form, so - * that this syntax may be used to print any valid distinguished name. - * - * 1. Attributes types are represented in a (big-endian) dotted - * notation. (e.g., OID.2.6.53). - * - */ -static void -attr_key_rfc1779( - AttributeType at, - char *key /* return key, caller allocated */ -) -{ - char *x; - - x = attr2name_aux ( at ); - - if ( x == NULL ) { - x = "?"; - } else if ( isdigit ( (unsigned char) *x ) ) { - sprintf ( key, "OID.%s", x ); - return; - } else if (strcasecmp(x,"commonName")==0) { - x = "CN"; - } else if (strcasecmp(x,"localityName")==0) { - x = "l"; - } else if (strcasecmp(x,"stateOrProvinceName")==0) { - x = "st"; - } else if (strcasecmp(x,"organizationName")==0) { - x = "o"; - } else if (strcasecmp(x,"organizationalUnitName")==0) { - x = "ou"; - } else if (strcasecmp(x,"countryName")==0) { - x = "c"; - } else if (strcasecmp(x,"streetAddress")==0) { - x = "street"; - } - - strcpy ( key, x ); -} - -#define SEPARATOR(c) ((c) == ',' || (c) == ';') -#define SPACE(c) ((c) == ' ' || (c) == '\n') - -int -dn_print_real( - PS ps, - DN dn, - int format -) -{ - RDN rdn; - int firstrdn; - char *value; - PS rps; - char key[512]; - - if ( dn == NULLDN ) - return( 0 ); - - if ( dn->dn_parent != NULLDN ) { - dn_print_real( ps, dn->dn_parent, format ); - ps_print( ps, ", " ); - } - - if ( (rps = ps_alloc( str_open )) == NULLPS ) - return( -1 ); - if ( str_setup( rps, NULLCP, 0, 0 ) == NOTOK ) - return( -1 ); - - firstrdn = 1; - for ( rdn = dn->dn_rdn; rdn != NULLRDN; rdn = rdn->rdn_next ) { - if ( firstrdn ) - firstrdn = 0; - else - ps_print( ps, " + " ); - - attr_key_rfc1779 ( rdn->rdn_at, key ); - - ps_print ( ps, key ); - ps_print( ps, "=" ); - - if ( rdn->rdn_at->oa_syntax == ldap_dn_syntax ) { - dn_print_real( rps, (DN) rdn->rdn_av.av_struct, - format ); - *rps->ps_ptr = '\0'; - value = rps->ps_base; - } else { - AttrV_print( rps, &rdn->rdn_av, EDBOUT ); - *rps->ps_ptr = '\0'; - if ( rps->ps_ptr - rps->ps_base >= 5 && - strncmp( rps->ps_base, "{ASN}", 5 ) == 0 ) { - *rps->ps_base = '#'; - SAFEMEMCPY( rps->ps_base + 1, rps->ps_base + 5, - rps->ps_ptr - rps->ps_base - 4 ); - } - value = rps->ps_base; - de_t61( value, 0 ); - } - - /* - * ,+="\\\n all go in quotes. " and \\ need to - * be preceeded by \\. - */ - - if ( strpbrk( value, ",+=\"\\\n" ) != NULL || SPACE( value[0] ) - || SPACE( value[max( strlen(value) - 1, (size_t) 0 )] ) ) { - char *p, *t, *tmp; - int specialcount; - - ps_print( ps, "\"" ); - - specialcount = 0; - for ( p = value; *p != '\0'; p++ ) { - if ( *p == '"' || *p == '\\' ) { - specialcount++; - } - } - if ( specialcount > 0 ) { - tmp = smalloc( strlen( value ) + specialcount - + 1 ); - for ( p = value, t = tmp; *p != '\0'; p++ ) { - switch ( *p ) { - case '"': - case '\\': - *t++ = '\\'; - /* FALL THROUGH */ - default: - *t++ = *p; - } - } - *t = '\0'; - ps_print( ps, tmp ); - free( tmp ); - } else { - ps_print( ps, value ); - } - - ps_print( ps, "\"" ); - } else { - ps_print( ps, value ); - } - - rps->ps_ptr = rps->ps_base; - } - - ps_free( rps ); - - return( 0 ); -} - -void -ldap_dn_print( - PS ps, - DN dn, - DN base, /* if non-NULL, subsitute '*' for base (for CLDAP) */ - int format -) -{ - DN tmpdn; - int addstar; - - Debug( LDAP_DEBUG_TRACE, "ldap_dn_print\n", 0, 0, 0 ); - - addstar = 0; - if ( base != NULLDN && dn != NULL ) { - for ( tmpdn = dn; base != NULLDN && tmpdn != NULLDN; - base = base->dn_parent, tmpdn = tmpdn->dn_parent ) { - if ( dn_comp_cmp( base, tmpdn ) == NOTOK ) { - break; - } - } - if (( addstar = ( base == NULLDN && tmpdn != NULL ))) { - dn = tmpdn; - } - } - - dn_print_real( ps, dn, format ); - if ( addstar ) { - ps_print( ps, ", *" ); - } -} - -int -encode_dn( - BerElement *ber, - DN dn, - DN base /* if non-NULL, subsitute '*' for base (for CLDAP) */ -) -{ - PS ps; - int rc; - - Debug( LDAP_DEBUG_TRACE, "encode_dn\n", 0, 0, 0 ); - - if ( (ps = ps_alloc( str_open )) == NULLPS ) - return( -1 ); - if ( str_setup( ps, NULLCP, 0, 0 ) == NOTOK ) - return( -1 ); - - ldap_dn_print( ps, dn, base, EDBOUT ); - *ps->ps_ptr = '\0'; - - rc = ber_printf( ber, "s", ps->ps_base ); - - ps_free( ps ); - - return( rc ); -} - -static int -put_jpeg_value( BerElement *ber, AttributeValue av ) -{ - PE pe; - int len; - - Debug( LDAP_DEBUG_TRACE, "put_jpeg_value\n", 0, 0, 0 ); - - if (av->av_syntax == AV_FILE) - pe = (PE) (((struct file_syntax *) av->av_struct)-> - fs_attr->av_struct); - else - pe = (PE) av->av_struct; - - Debug( LDAP_DEBUG_ARGS, - "put_jpeg_value: pe_class %x, pe_form %x, pe_id %x\n", - pe->pe_class, pe->pe_form, pe->pe_id ); - - if ( (pe->pe_class != PE_CLASS_UNIV && pe->pe_class != PE_CLASS_CONT) - || pe->pe_form != PE_FORM_PRIM || pe->pe_id != PE_PRIM_OCTS ) { - Debug( LDAP_DEBUG_ANY, "put_jpeg_value: unknown type\n", 0, - 0, 0 ); - return( -1 ); - } - - if ( pe_pullup( pe ) == NOTOK ) { - Debug( LDAP_DEBUG_ANY, "put_jpeg_value: cannot pullup\n", 0, - 0, 0 ); - return( -1 ); - } - - len = ps_get_abs( pe ); - - Debug( LDAP_DEBUG_ARGS, "put_jeg_value: ber_printf %d bytes\n", - len, 0, 0 ); - if ( ber_printf( ber, "o", (char *) pe->pe_prim, len ) == -1 ) { - Debug( LDAP_DEBUG_ANY, "put_jpeg_value: ber_printf failed\n", - 0, 0, 0 ); - return( -1 ); - } - - return( 0 ); -} - -static int -put_audio_value( BerElement *ber, AttributeValue av ) -{ - struct qbuf *qb, *p; - int rc, len; - char *buf; - - Debug( LDAP_DEBUG_TRACE, "put_audio_value\n", 0, 0, 0 ); - - qb = (struct qbuf *) (((struct file_syntax *) - av->av_struct)->fs_attr->av_struct); - - len = 0; - for ( p = qb->qb_forw; p != qb; p = p->qb_forw ) { - len += p->qb_len; - } - - if ( (buf = (char *) malloc( len )) == NULL ) - return( -1 ); - - len = 0; - for ( p = qb->qb_forw; p != qb; p = p->qb_forw ) { - SAFEMEMCPY( buf + len, p->qb_data, p->qb_len ); - len += p->qb_len; - } - - Debug( LDAP_DEBUG_ARGS, "put_audio_value: ber_printf %d bytes\n", - len, 0, 0 ); - - if ( (rc = ber_printf( ber, "o", buf, len )) == -1 ) - Debug( LDAP_DEBUG_ANY, "put_audio_value: ber_printf failed\n", - 0, 0, 0 ); - - free( buf ); - - return( rc ); -} - -static int -put_photo_value( BerElement *ber, AttributeValue av ) -{ - PE pe; - PS ps; - int len; - char *faxparamset = "\000\300\000\000"; - BerElement *phber; - - Debug( LDAP_DEBUG_TRACE, "put_photo_value\n", 0, 0, 0 ); - - pe = (PE) (((struct file_syntax *) av->av_struct)->fs_attr->av_struct); - - /* old bit string-like format - only handle this for now */ - if ( pe->pe_class == PE_CLASS_UNIV && pe->pe_form == PE_FORM_PRIM - && pe->pe_id == PE_PRIM_BITS ) { - len = ps_get_abs( pe ); - Debug( LDAP_DEBUG_ARGS, "put_photo_val: ber_printf %d bytes\n", - len, 0, 0 ); - if (( phber = der_alloc()) == NULL ) { - Debug( LDAP_DEBUG_ANY, "der_alloc failed\n", 0, 0, 0 ); - return( -1 ); - } - if ( ber_printf( phber, "t{[tB]{B}}", 0xA3, 0x81, faxparamset, - 31, (char *)pe->pe_prim, len * 8 ) == -1 ) { - Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 ); - ber_free( phber, 1 ); - return( -1 ); - } - if ( ber_printf( ber, "o", phber->ber_buf, phber->ber_ptr - - phber->ber_buf ) == -1 ) { - Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 ); - ber_free( phber, 1 ); - return( -1 ); - } - ber_free( phber, 1 ); - } else { - /* - * try just writing this into a PS and sending it along - */ - ps_len_strategy = PS_LEN_LONG; - if ( (ps = ps_alloc( str_open )) == NULLPS ) - return( -1 ); - if ( str_setup( ps, NULLCP, 0, 0 ) == NOTOK || - pe2ps( ps, pe ) == NOTOK ) { - ps_free( ps ); - return( -1 ); - } - - len = ps->ps_ptr - ps->ps_base; - Debug( LDAP_DEBUG_ARGS, "put_photo_val: ber_printf %d bytes\n", - len, 0, 0 ); - if ( ber_printf( ber, "o", (char *) ps->ps_base, len ) == -1 ) { - Debug( LDAP_DEBUG_ANY, "ber_printf failed\n", 0, 0, 0 ); - ps_free( ps ); - return( -1 ); - } - ps_free( ps ); - } - - return( 0 ); -} - -static int -put_values( - BerElement *ber, - PS ps, - short syntax, - AV_Sequence vals -) -{ - AV_Sequence av; - char *strvalue; - - Debug( LDAP_DEBUG_TRACE, "put_values\n", 0, 0, 0 ); - - for ( av = vals; av != NULLAV; av = av->avseq_next ) { - if ( syntax == ldap_jpeg_syntax || - syntax == ldap_jpeg_nonfile_syntax ) { - if ( put_jpeg_value( ber, &av->avseq_av ) == -1 ) - return( -1 ); - } else if ( syntax == ldap_photo_syntax ) { - if ( put_photo_value( ber, &av->avseq_av ) == -1 ) - return( -1 ); - } else if ( syntax == ldap_audio_syntax ) { - if ( put_audio_value( ber, &av->avseq_av ) == -1 ) - return( -1 ); - } else if ( syntax == ldap_dn_syntax ) { - if ( encode_dn( ber, (DN) av->avseq_av.av_struct, - NULLDN ) == -1 ) - return( -1 ); - } else if ( syntax > AV_WRITE_FILE ) { - struct file_syntax *fsyntax; - - fsyntax = (struct file_syntax *) av->avseq_av.av_struct; - - ps->ps_ptr = ps->ps_base; - AttrV_print( ps, fsyntax->fs_attr, EDBOUT ); - *ps->ps_ptr = '\0'; - - if ( ber_printf( ber, "o", ps->ps_base, - ps->ps_ptr - ps->ps_base ) == -1 ) - return( -1 ); - } else { - ps->ps_ptr = ps->ps_base; - AttrV_print( ps, &av->avseq_av, EDBOUT ); - *ps->ps_ptr = '\0'; - de_t61( ps->ps_base, 0 ); - - if ( syntax_is_string( av->avseq_av.av_syntax ) && - *ps->ps_base == '\0' ) { - /* - * If this is a zero-length string, make it - * a single blank (this is gross, but it works - * around a dsap library bug). - */ - Debug( LDAP_DEBUG_ANY, - "put_values: replaced zero-length string with single blank\n", 0, 0, 0 ); - strvalue = " "; - } else { - strvalue = ps->ps_base; - } - if ( ber_printf( ber, "s", strvalue ) == -1 ) - return( -1 ); - } - } - - return( 0 ); -} - -int -encode_attrs( BerElement *ber, Attr_Sequence as ) -{ - PS ps; - - Debug( LDAP_DEBUG_TRACE, "encode_attrs\n", 0, 0, 0 ); - - if ( (ps = ps_alloc( str_open )) == NULLPS ) - return( -1 ); - if ( str_setup( ps, NULLCP, 0, 0 ) == NOTOK ) - return( -1 ); - -#ifdef LDAP_COMPAT20 - if ( ber_printf( ber, "t{", ldap_compat == 20 ? OLD_LBER_SEQUENCE : - LBER_SEQUENCE ) == -1 ) { -#else - if ( ber_printf( ber, "{" ) == -1 ) { -#endif - ps_free( ps ); - return( -1 ); - } - - while ( as != NULLATTR ) { - ps->ps_ptr = ps->ps_base; - AttrT_print( ps, as->attr_type, EDBOUT ); - *ps->ps_ptr = '\0'; - -#ifdef LDAP_COMPAT20 - if ( ber_printf( ber, "t{st[", ldap_compat == 20 ? - OLD_LBER_SEQUENCE : LBER_SEQUENCE, ps->ps_base, - ldap_compat == 20 ? OLD_LBER_SET : LBER_SET ) == -1 ) { -#else - if ( ber_printf( ber, "{s[", ps->ps_base ) == -1 ) { -#endif - ps_free( ps ); - return( -1 ); - } - - put_values( ber, ps, as->attr_type->oa_syntax, as->attr_value ); - - if ( ber_printf( ber, "]}" ) == -1 ) { - ps_free( ps ); - return( -1 ); - } - - as = as->attr_link; - } - ps_free( ps ); - - if ( ber_printf( ber, "}" ) == -1 ) - return( -1 ); - - return( 0 ); -} - -static void -trim_trailing_spaces( char *s ) -{ - char *t; - - t = s + strlen( s ); - while ( --t > s ) { - if ( SPACE( *t ) ) { - *t = '\0'; - } else { - break; - } - } -} - -DN -ldap_str2dn( char *str ) -{ - DN dn, save; - RDN rdn, newrdn, tmprdn; - AttributeType at; - AttributeValue av; - char *type, *value, *savestr; - int morerdncomps; - - Debug( LDAP_DEBUG_TRACE, "ldap_str2dn\n", 0, 0, 0 ); - - savestr = str = strdup( str ); - dn = NULLDN; - do { - char *r; - int state; - - rdn = NULLRDN; - morerdncomps = 1; - do { - /* get the type */ - while ( *str == ' ' || *str == '\n' ) - str++; - type = str; - while ( *str != '\0' && *str != '=' ) - str++; - if ( *str == '\0' ) { - free( savestr ); - Debug( LDAP_DEBUG_ARGS, "no =\n", 0, 0, 0 ); - return( NULLDN ); - } - *str++ = '\0'; - if ( strncmp( type, "OID.", 4 ) == 0 ) - type += 4; - -#define BEGINVALUE 1 -#define INVALUE 2 -#define INQUOTE 3 -#define ENDVALUE 4 - if ( *str == '#' ) { - ++str; - } - r = value = str; - state = BEGINVALUE; - /* break or return out */ - while ( state != ENDVALUE ) { - switch ( *str ) { - case '"': - if ( state == BEGINVALUE ) { - state = INQUOTE; - str++; - } else if ( state == INQUOTE ) { - state = ENDVALUE; - str++; - } else { - free( savestr ); - Debug( LDAP_DEBUG_ARGS, - "quote state %d\n", state, - 0, 0 ); - return( NULLDN ); - } - break; - - case ',': - case ';': - case '+': - if ( state == INVALUE ) { - state = ENDVALUE; - } else if ( state == INQUOTE ) { - *r++ = *str++; - } else { - free( savestr ); - Debug( LDAP_DEBUG_ARGS, - "comma state %d\n", state, - 0, 0 ); - return( NULLDN ); - } - break; - - case ' ': - case '\n': - if ( state == BEGINVALUE ) { - str++; - } else { - *r++ = *str++; - } - break; - - case '\\': - str++; - *r++ = *str++; - break; - - case '\0': - state = ENDVALUE; - break; - - default: - if ( state == BEGINVALUE ) - state = INVALUE; - *r++ = *str++; - break; - } - } - - while ( SPACE( *str ) ) - str++; - if ( *str == '+' ) { - morerdncomps = 1; - str++; - } else { - morerdncomps = 0; - if ( SEPARATOR( *str ) ) - str++; - } - *r = '\0'; - - /* type */ - trim_trailing_spaces( type ); - if ( (at = str2AttrT( type )) == NULLAttrT ) { - dn_free( dn ); - free( savestr ); - Debug( LDAP_DEBUG_ARGS, "bad type (%s)\n", - type, 0, 0 ); - return( NULLDN ); /* LDAP_UNDEFINED_TYPE */ - } - /* value */ - if ( (av = ldap_str2AttrV( value, at->oa_syntax )) - == NULLAttrV ) { - dn_free( dn ); - free( savestr ); - Debug( LDAP_DEBUG_ARGS, "bad val\n", 0, 0, 0 ); - return( NULLDN ); /* LDAP_INVALID_SYNTAX */ - } - /* make the rdn */ - newrdn = rdn_comp_new( at, av ); - - /* add it to the list */ - for ( tmprdn = rdn; tmprdn != NULLRDN && - tmprdn->rdn_next != NULLRDN; - tmprdn = tmprdn->rdn_next ) - ; /* NULL */ - if ( tmprdn != NULLRDN ) - tmprdn->rdn_next = newrdn; - else - rdn = newrdn; - - AttrV_free( av ); - } while ( morerdncomps ); - - save = dn; - dn = dn_comp_new( rdn ); - dn->dn_parent = save; - } while ( str != NULL && *str != '\0' ); - - free( savestr ); - Debug( LDAP_DEBUG_TRACE, "ldap_str2dn OK\n", 0, 0, 0 ); - return( dn ); -} - -#define T61 "{T.61}" -#define T61LEN 6 - -static void -de_t61( char *s, int t61mark ) -{ - char *next = s; - unsigned char c; - unsigned int hex; - - while ( *s ) { - switch ( *s ) { - case '{' : - if ( strncasecmp( s, T61, T61LEN) == 0 ) { - s += T61LEN; - if ( t61mark ) - *next++ = '@'; - } else { - *next++ = *s++; - } - break; - - case '\\': - c = *(s + 1); - if ( c == '\n' ) { - s += 2; - if ( *s == '\t' ) - s++; - break; - } - if ( c == '\\' ) { - /* reverse solidus character itself */ - s += 2; - *next++ = c; - break; - } - if ( isdigit( c ) ) - hex = c - '0'; - else if ( c >= 'A' && c <= 'F' ) - hex = c - 'A' + 10; - else if ( c >= 'a' && c <= 'f' ) - hex = c - 'a' + 10; - else { - *next++ = *s++; - break; - } - hex <<= 4; - c = *(s + 2); - if ( isdigit( c ) ) - hex += c - '0'; - else if ( c >= 'A' && c <= 'F' ) - hex += c - 'A' + 10; - else if ( c >= 'a' && c <= 'f' ) - hex += c - 'a' + 10; - else { - *next++ = *s++; - *next++ = *s++; - break; - } - - *next++ = hex; - s += 3; - break; - - default: - *next++ = *s++; - break; - } - } - *next = '\0'; -} - - -static PE -bv_asn2pe( struct berval *bv ) -{ - PS ps; - PE pe; - - if (( ps = ps_alloc(str_open)) == NULLPS || str_setup( ps, bv->bv_val, - bv->bv_len, 0 ) == NOTOK ) { - Debug( LDAP_DEBUG_TRACE, "bv_asn2pe: ps_alloc failed\n", - 0, 0, 0 ); - return( NULLPE ); - } - - pe = ps2pe( ps ); - if ( ps->ps_errno != PS_ERR_NONE ) { - Debug( LDAP_DEBUG_TRACE, "bv_asn2pe: ps2pe failed %s\n", - ps_error(ps->ps_errno), 0, 0 ); - if ( pe != NULLPE ) { - pe_free( pe ); - } - return( NULLPE ); - } - - return( pe ); -} - - -AttributeValue -bv_octet2AttrV( struct berval *bv ) -{ - AttributeValue av; - - av = AttrV_alloc(); - if ( av == NULLAttrV ) { - return( NULLAttrV ); - } - - if (( av->av_struct = (caddr_t) str2prim( bv->bv_val, bv->bv_len, - PE_CLASS_UNIV, PE_PRIM_OCTS )) == NULL ) { - free((char *)av ); - return( NULLAttrV ); - } - - av->av_syntax = 0; - return( av ); -} - - -AttributeValue -bv_asn2AttrV( struct berval *bv ) -{ - AttributeValue av; - - av = AttrV_alloc(); - if ( av == NULLAttrV ) { - return( NULLAttrV ); - } - - if (( av->av_struct = (caddr_t) bv_asn2pe( bv )) == NULL ) { - free((char *)av ); - return( NULLAttrV ); - } - - av->av_syntax = 0; - return( av ); -} - - -AttributeValue -ldap_strdn2AttrV( char *dnstr ) -{ - DN dn; - AttributeValue av; - - if (( dn = ldap_str2dn( dnstr )) == NULL ) { - return( NULLAttrV ); - } - - av = AttrV_alloc(); - if ( av == NULLAttrV ) { - dn_free( dn ); - return( NULLAttrV ); - } - - av->av_struct = (caddr_t)dn; - av->av_syntax = ldap_dn_syntax; - return( av ); -} - -RDN -ldap_str2rdn( char *rdnstr ) -{ - DN dn; - RDN rdn; - - if ( (dn = ldap_str2dn( rdnstr )) == NULL ) { - return( NULL ); - } - - if ( (rdn = rdn_cpy( dn->dn_rdn )) == NULL ) { - return( NULL ); - } - - dn_free( dn ); - - return( rdn ); -} - -AttributeValue -ldap_str_at2AttrV( char *str, AttributeType type ) -{ - char *s, *res, *r; - - Debug( LDAP_DEBUG_TRACE, "ldap_str_at2AttrV str (%s) type (%s)\n", str, - type->oa_ot.ot_name, 0 ); - - if ( type->oa_syntax == ldap_rts_cred_syntax || - type->oa_syntax == ldap_mtai_syntax || - type->oa_syntax == ldap_acl_syntax || - type->oa_syntax == ldap_mailbox_syntax || - type->oa_syntax == ldap_caseignorelist_syntax || - type->oa_syntax == ldap_certif_syntax || - type->oa_syntax == ldap_iattr_syntax || - type->oa_syntax == ldap_telex_syntax || - type->oa_syntax == ldap_deliverymethod_syntax || - type->oa_syntax == ldap_facsimileTelephoneNumber_syntax || - type->oa_syntax == ldap_presentationAddress_syntax || - type->oa_syntax == ldap_teletexTerminalIdentifier_syntax || - type->oa_syntax == ldap_searchGuide_syntax || - type->oa_syntax == ldap_dLSubmitPermission_syntax || - type->oa_syntax == ldap_rtl_syntax ) { - res = str; - } else { - res = (char *) malloc( max( 2 * strlen( str ), (size_t) 10 ) ); - - r = res; - for ( s = str; *s; s++ ) { - switch ( *s ) { - case '&': - case '#': - case '$': - case '%': - case '@': - case '\\': - sprintf( r, "\\%02x", *s & 0xff ); - r += 3; - break; - - default: - *r++ = *s; - } - } - *r = '\0'; - } - - Debug( LDAP_DEBUG_TRACE, "ldap_str_at2AttrV returning (%s)\n", res, - 0, 0 ); - - return( str_at2AttrV( res, type ) ); -} - -AttributeValue -ldap_str2AttrV( char *value, short syntax ) -{ - if ( syntax == ldap_dn_syntax ) { - return( ldap_strdn2AttrV( value ) ); - } else { - return( str2AttrV( value, syntax ) ); - } -} - - -static int -syntax_is_string( short syntax ) -{ -/* - * this code depends on the order and nunber of strings that are in - * the ISODE file lib/syntax/x500/string.c - */ - return ( syntax >= ldap_caseexactstring_syntax && - syntax <= ldap_caseexactstring_syntax + 8 ); -} diff --git a/servers/ldapd/util.c b/servers/ldapd/util.c deleted file mode 100644 index 4403be4fa5..0000000000 --- a/servers/ldapd/util.c +++ /dev/null @@ -1,190 +0,0 @@ -/* $OpenLDAP$ */ -/* - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * Redistribution and use in source and binary forms are permitted - * provided that this notice is preserved and that due credit is given - * to the University of Michigan at Ann Arbor. The name of the University - * may not be used to endorse or promote products derived from this - * software without specific prior written permission. This software - * is provided ``as is'' without express or implied warranty. - */ - -#include "portable.h" - -#include - -#include -#include -#include -#include - -#include - -#include -#include - -#include "lber.h" -#include "ldap.h" -#include "common.h" - -/* - * Print arbitrary stuff, for debugging. - */ - - -#define BPLEN 48 - -void -bprint( char *data, int len ) -{ - static const char hexdig[] = "0123456789abcdef"; - char out[ BPLEN ]; - int i = 0; - - (void) memset( out, 0, BPLEN ); - for ( ;; ) { - if ( len < 1 ) { - printf( "\t%s\n", ( i == 0 ) ? "(end)" : out ); - break; - } - - if ( isgraph( (unsigned char)*data )) { - out[ i ] = ' '; - out[ i+1 ] = *data; - } else { - out[ i ] = hexdig[ ( (unsigned char)*data & 0xf0 ) >> 4 ]; - out[ i+1 ] = hexdig[ (unsigned char)*data & 0x0f ]; - } - i += 2; - len--; - data++; - - if ( i > BPLEN - 2 ) { - printf( "\t%s\n", out ); - (void) memset( out, 0, BPLEN ); - i = 0; - continue; - } - out[ i++ ] = ' '; - } -} - -void -charlist_free( char **cl ) -{ - int i; - - if ( cl == NULL ) - return; - - for ( i = 0; cl[i] != NULL; i++ ) - free( cl[i] ); - free( (char *) cl ); -} - -int -get_ava( BerElement *ber, AVA *tava ) -{ - char *type, *value; - - Debug( LDAP_DEBUG_TRACE, "get_ava\n", 0, 0, 0 ); - - /* - * An AVA looks like this: - * AttributeValueAsertion ::= SEQUENCE { - * attributeType AttributeType, - * attributeValue AttributeValue - * } - */ - - if ( ber_scanf( ber, "{aa}", &type, &value ) == LBER_ERROR ) - return( LDAP_PROTOCOL_ERROR ); - - if ( (tava->ava_type = str2AttrT( type )) == NULLAttrT ) { - free( type ); - free( value ); - return( LDAP_UNDEFINED_TYPE ); - } - - if ( (tava->ava_value = ldap_str2AttrV( value, - tava->ava_type->oa_syntax )) == NULLAttrV ) { - free( type ); - free( value ); - return( LDAP_INVALID_SYNTAX ); - } - - free( type ); - free( value ); - - return( 0 ); -} - -int -chase_referral( - Sockbuf *clientsb, - struct msg *m, - struct DSError *err, - char **matched -) -{ - ContinuationRef cr; - struct access_point *ap; - int rc, bound; - struct conn *save, *dup, *found; - - Debug( LDAP_DEBUG_TRACE, "chase_referral\n", 0, 0, 0 ); - - save = m->m_conn; - dup = conn_dup( m->m_conn ); - m->m_conn = dup; - m->m_conn->c_ad = -1; - - /* for each dsa candidate */ - rc = LDAP_OTHER; - for ( cr = err->ERR_REFERRAL.DSE_ref_candidates; - cr != NULLCONTINUATIONREF; cr = cr->cr_next ) { - - /* for each access point listed for the dsa */ - for ( ap = cr->cr_accesspoints; ap != NULLACCESSPOINT; - ap = ap->ap_next ) { -#ifdef LDAP_DEBUG - if ( ldap_debug & LDAP_DEBUG_ARGS ) { - char *str; - - str = paddr2str( ap->ap_address, NULLNA ); - fprintf( stderr, "Referring to (%s)...\n", - str ); - } -#endif - - if ( m->m_conn->c_paddr ) - free( (char *) m->m_conn->c_paddr ); - m->m_conn->c_paddr = psap_cpy( ap->ap_address ); - - if ( (found = conn_find( m->m_conn )) != NULL ) { - conn_free( m->m_conn ); - m->m_conn = found; - m->m_conn->c_refcnt++; - conn_free( save ); - return( LDAP_SUCCESS ); - } - - rc = do_bind_real( m->m_conn, &bound, matched ); - - if ( rc == LDAP_SUCCESS ) { - conn_free( save ); - conn_add( m->m_conn ); - return( LDAP_SUCCESS ); - } - } - - } - - /* so the conn can be found and freed later */ - conn_free( m->m_conn ); - m->m_conn = save; - - return( rc ); -} diff --git a/servers/slapd/tools/Makefile.in b/servers/slapd/tools/Makefile.in index 0d4efed850..11fe1c0a8d 100644 --- a/servers/slapd/tools/Makefile.in +++ b/servers/slapd/tools/Makefile.in @@ -28,7 +28,7 @@ XDEFS = $(MODULES_CPPFLAGS) XLDFLAGS = $(MODULES_LDFLAGS) $(SLAPD_MODULES) XLIBS = -lavl -lldif -lldbm -llutil -lldap_r -llber -XXLIBS = $(LDAPD_LIBS) $(SLAPD_LIBS) \ +XXLIBS = $(QUIPU_LIBS) $(SLAPD_LIBS) \ $(LDBM_LIBS) $(SECURITY_LIBS) \ $(LDIF_LIBS) $(LUTIL_LIBS) XXXLIBS = $(LTHREAD_LIBS) $(MODULES_LIBS)