]> git.sur5r.net Git - openldap/commitdiff
-lldap reentrantancy improvements from Bart Hartgers <A.Hartgers@phys.tue.nl>
authorKurt Zeilenga <kurt@openldap.org>
Sat, 19 Dec 1998 01:27:20 +0000 (01:27 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Sat, 19 Dec 1998 01:27:20 +0000 (01:27 +0000)
including use of ctime_r, gethostby*_r, etc..  Also reworked ldap_sort_entries
to be reentrant.
Need to add code to properly set LDAP_API_FEATURE_THREAD_SAFE.

15 files changed:
build/lib.mk
configure
configure.in
include/portable.h.in
libraries/liblber/Makefile.in
libraries/libldap/Makefile.in
libraries/libldap/cldap.c
libraries/libldap/getdn.c
libraries/libldap/getfilter.c
libraries/libldap/ldap-int.h
libraries/libldap/os-ip.c
libraries/libldap/request.c
libraries/libldap/sort.c
libraries/libldap/tmplout.c
libraries/libldap/util-int.c [new file with mode: 0644]

index a56086fb5275fd86c1ba8b2189c563b0d8b03ccf..d92d72503dfcf316ddec72a88bf27a68cfcbc1df 100644 (file)
@@ -22,7 +22,8 @@ lint5: lint5-local FORCE
        $(5LINT) $(DEFS) $(DEFINES) $(SRCS)
 
 clean-common:  FORCE
-       $(RM) $(LIBRARY) ../$(LIBRARY) $(PROGRAMS) $(XPROGRAMS) $(XSRCS) \
+       $(RM) $(LIBRARY) ../$(LIBRARY) $(XLIBRARY) \
+               $(PROGRAMS) $(XPROGRAMS) $(XSRCS) \
                *.o *.lo a.out core version.c .libs/*
 
 depend-common: FORCE
index e2ceb6a13330eddbf55fafb6488df41c3e1eacff..4d4ea066423860f860bebcedf473ef046500f42c 100755 (executable)
--- a/configure
+++ b/configure
@@ -4940,73 +4940,6 @@ echo "$ac_t""$ol_cv_errno_thread_specific" 1>&6
                LTHREAD_LIBS=""
        fi
 
-                                               save_CPPFLAGS="$CPPFLAGS"
-       save_LIBS="$LIBS"
-       LIBS="$LTHREAD_LIBS $LIBS"
-       for ac_func in \
-               strtok_r \
-               gmtime_r \
-               gethostbyaddr_r gethostbyname_r \
-               feof_unlocked unlocked_feof \
-               putc_unlocked unlocked_putc \
-               flockfile ftrylockfile \
-       
-do
-echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4957: checking for $ac_func" >&5
-if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftest.$ac_ext <<EOF
-#line 4962 "configure"
-#include "confdefs.h"
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func(); below.  */
-#include <assert.h>
-/* Override any gcc2 internal prototype to avoid an error.  */
-/* We use char because int might match the return type of a gcc2
-    builtin and then its argument prototype would still apply.  */
-char $ac_func();
-
-int main() {
-
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
-choke me
-#else
-$ac_func();
-#endif
-
-; return 0; }
-EOF
-if { (eval echo configure:4985: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=yes"
-else
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_func_$ac_func=no"
-fi
-rm -f conftest*
-fi
-
-if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-  cat >> confdefs.h <<EOF
-#define $ac_tr_func 1
-EOF
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
 fi  
 
 
@@ -5030,13 +4963,13 @@ fi
 ol_link_ldbm=no 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db2 ; then
        echo $ac_n "checking for DB2 library""... $ac_c" 1>&6
-echo "configure:5034: checking for DB2 library" >&5
+echo "configure:4967: checking for DB2 library" >&5
 if eval "test \"`echo '$''{'ol_cv_lib_db2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
        ol_LIBS="$LIBS"
        echo $ac_n "checking for db_open in -ldb""... $ac_c" 1>&6
-echo "configure:5040: checking for db_open in -ldb" >&5
+echo "configure:4973: checking for db_open in -ldb" >&5
 ac_lib_var=`echo db'_'db_open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5044,7 +4977,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldb  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5048 "configure"
+#line 4981 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5055,7 +4988,7 @@ int main() {
 db_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5059: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5086,17 +5019,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:5090: checking for $ac_hdr" >&5
+echo "configure:5023: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5095 "configure"
+#line 5028 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5100: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5033: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5124,13 +5057,13 @@ done
 
 if test $ac_cv_header_db_h = yes ; then
        echo $ac_n "checking if db.h is DB2""... $ac_c" 1>&6
-echo "configure:5128: checking if db.h is DB2" >&5
+echo "configure:5061: checking if db.h is DB2" >&5
 if eval "test \"`echo '$''{'ol_cv_header_db2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 5134 "configure"
+#line 5067 "configure"
 #include "confdefs.h"
 
 #                      include <db.h>
@@ -5162,7 +5095,7 @@ fi
 
  
  echo $ac_n "checking for Berkeley DB2""... $ac_c" 1>&6
-echo "configure:5166: checking for Berkeley DB2" >&5
+echo "configure:5099: checking for Berkeley DB2" >&5
 if eval "test \"`echo '$''{'ol_cv_berkeley_db2'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5208,18 +5141,18 @@ fi
 
 if test $ol_with_ldbm_api = auto -o $ol_with_ldbm_api = db ; then
        echo $ac_n "checking for Berkeley DB library""... $ac_c" 1>&6
-echo "configure:5212: checking for Berkeley DB library" >&5
+echo "configure:5145: checking for Berkeley DB library" >&5
 if eval "test \"`echo '$''{'ol_cv_lib_db'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
        ol_LIBS="$LIBS"
        echo $ac_n "checking for dbopen""... $ac_c" 1>&6
-echo "configure:5218: checking for dbopen" >&5
+echo "configure:5151: checking for dbopen" >&5
 if eval "test \"`echo '$''{'ac_cv_func_dbopen'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5223 "configure"
+#line 5156 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbopen(); below.  */
@@ -5242,7 +5175,7 @@ dbopen();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5246: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbopen=yes"
 else
@@ -5261,7 +5194,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for dbopen in -ldb""... $ac_c" 1>&6
-echo "configure:5265: checking for dbopen in -ldb" >&5
+echo "configure:5198: checking for dbopen in -ldb" >&5
 ac_lib_var=`echo db'_'dbopen | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5269,7 +5202,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldb  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5273 "configure"
+#line 5206 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5280,7 +5213,7 @@ int main() {
 dbopen()
 ; return 0; }
 EOF
-if { (eval echo configure:5284: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5217: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5315,17 +5248,17 @@ for ac_hdr in db_185.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5319: checking for $ac_hdr" >&5
+echo "configure:5252: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5324 "configure"
+#line 5257 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5329: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5262: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5361,7 +5294,7 @@ fi
 
  
  echo $ac_n "checking for Berkeley DB""... $ac_c" 1>&6
-echo "configure:5365: checking for Berkeley DB" >&5
+echo "configure:5298: checking for Berkeley DB" >&5
 if eval "test \"`echo '$''{'ol_cv_berkeley_db'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5414,17 +5347,17 @@ if test $ol_with_ldbm_api = manual ; then
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:5418: checking for $ac_hdr" >&5
+echo "configure:5351: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5423 "configure"
+#line 5356 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5428: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5361: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5459,18 +5392,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:5463: checking for GDBM library" >&5
+echo "configure:5396: checking for GDBM library" >&5
 if eval "test \"`echo '$''{'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:5469: checking for gdbm_open" >&5
+echo "configure:5402: checking for gdbm_open" >&5
 if eval "test \"`echo '$''{'ac_cv_func_gdbm_open'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5474 "configure"
+#line 5407 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gdbm_open(); below.  */
@@ -5493,7 +5426,7 @@ gdbm_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5497: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5430: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_gdbm_open=yes"
 else
@@ -5512,7 +5445,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for gdbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:5516: checking for gdbm_open in -lgdbm" >&5
+echo "configure:5449: checking for gdbm_open in -lgdbm" >&5
 ac_lib_var=`echo gdbm'_'gdbm_open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5520,7 +5453,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lgdbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5524 "configure"
+#line 5457 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5531,7 +5464,7 @@ int main() {
 gdbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5535: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5566,17 +5499,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:5570: checking for $ac_hdr" >&5
+echo "configure:5503: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5575 "configure"
+#line 5508 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5580: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5513: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5603,7 +5536,7 @@ fi
 done
 
  echo $ac_n "checking for db""... $ac_c" 1>&6
-echo "configure:5607: checking for db" >&5
+echo "configure:5540: checking for db" >&5
 if eval "test \"`echo '$''{'ol_cv_gdbm'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5639,18 +5572,18 @@ if test $ol_with_ldbm_api = auto ; then
        echo "configure: warning: skipping automatic checking for NDBM, must be manually enabled." 1>&2
 elif test $ol_with_ldbm_api = ndbm ; then
        echo $ac_n "checking for NDBM library""... $ac_c" 1>&6
-echo "configure:5643: checking for NDBM library" >&5
+echo "configure:5576: checking for NDBM library" >&5
 if eval "test \"`echo '$''{'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:5649: checking for dbm_open" >&5
+echo "configure:5582: checking for dbm_open" >&5
 if eval "test \"`echo '$''{'ac_cv_func_dbm_open'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5654 "configure"
+#line 5587 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -5673,7 +5606,7 @@ dbm_open();
 
 ; return 0; }
 EOF
-if { (eval echo configure:5677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5610: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -5692,7 +5625,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for dbm_open in -lndbm""... $ac_c" 1>&6
-echo "configure:5696: checking for dbm_open in -lndbm" >&5
+echo "configure:5629: checking for dbm_open in -lndbm" >&5
 ac_lib_var=`echo ndbm'_'dbm_open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5700,7 +5633,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lndbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5704 "configure"
+#line 5637 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5711,7 +5644,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5648: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5731,7 +5664,7 @@ else
   echo "$ac_t""no" 1>&6
 
                        echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:5735: checking for dbm_open in -ldbm" >&5
+echo "configure:5668: checking for dbm_open in -ldbm" >&5
 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5739,7 +5672,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldbm  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5743 "configure"
+#line 5676 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5750,7 +5683,7 @@ int main() {
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:5754: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5787,17 +5720,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:5791: checking for $ac_hdr" >&5
+echo "configure:5724: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5796 "configure"
+#line 5729 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5801: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5734: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5824,7 +5757,7 @@ fi
 done
 
  echo $ac_n "checking for db""... $ac_c" 1>&6
-echo "configure:5828: checking for db" >&5
+echo "configure:5761: checking for db" >&5
 if eval "test \"`echo '$''{'ol_cv_ndbm'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -5868,7 +5801,7 @@ fi
 
 if test $ol_enable_wrappers = yes ; then
        echo $ac_n "checking for main in -lwrap""... $ac_c" 1>&6
-echo "configure:5872: checking for main in -lwrap" >&5
+echo "configure:5805: checking for main in -lwrap" >&5
 ac_lib_var=`echo wrap'_'main | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5876,14 +5809,14 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lwrap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5880 "configure"
+#line 5813 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:5887: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5820: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5929,17 +5862,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:5933: checking for $ac_hdr" >&5
+echo "configure:5866: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 5938 "configure"
+#line 5871 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5943: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5876: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5968,7 +5901,7 @@ done
 
 if test $ol_link_termcap = no ; then
        echo $ac_n "checking for tputs in -ltermcap""... $ac_c" 1>&6
-echo "configure:5972: checking for tputs in -ltermcap" >&5
+echo "configure:5905: checking for tputs in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tputs | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -5976,7 +5909,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ltermcap  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5980 "configure"
+#line 5913 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5987,7 +5920,7 @@ int main() {
 tputs()
 ; return 0; }
 EOF
-if { (eval echo configure:5991: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5924: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6020,7 +5953,7 @@ fi
 
 if test $ol_link_termcap = no ; then
        echo $ac_n "checking for initscr in -lncurses""... $ac_c" 1>&6
-echo "configure:6024: checking for initscr in -lncurses" >&5
+echo "configure:5957: checking for initscr in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'initscr | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6028,7 +5961,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lncurses  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6032 "configure"
+#line 5965 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6039,7 +5972,7 @@ int main() {
 initscr()
 ; return 0; }
 EOF
-if { (eval echo configure:6043: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:5976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6081,12 +6014,12 @@ fi
 # FreeBSD (and others) have crypt(3) in -lcrypt
 if test $ol_enable_crypt != no ; then
        echo $ac_n "checking for crypt""... $ac_c" 1>&6
-echo "configure:6085: checking for crypt" >&5
+echo "configure:6018: checking for crypt" >&5
 if eval "test \"`echo '$''{'ac_cv_func_crypt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6090 "configure"
+#line 6023 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char crypt(); below.  */
@@ -6109,7 +6042,7 @@ crypt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6046: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_crypt=yes"
 else
@@ -6128,7 +6061,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:6132: checking for crypt in -lcrypt" >&5
+echo "configure:6065: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6136,7 +6069,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lcrypt  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6140 "configure"
+#line 6073 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6147,7 +6080,7 @@ int main() {
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:6151: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6084: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6191,12 +6124,12 @@ fi
 # FreeBSD (and others) have setproctitle(3) in -lutil
 if test $ol_enable_proctitle != no ; then
        echo $ac_n "checking for setproctitle""... $ac_c" 1>&6
-echo "configure:6195: checking for setproctitle" >&5
+echo "configure:6128: checking for setproctitle" >&5
 if eval "test \"`echo '$''{'ac_cv_func_setproctitle'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6200 "configure"
+#line 6133 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char setproctitle(); below.  */
@@ -6219,7 +6152,7 @@ setproctitle();
 
 ; return 0; }
 EOF
-if { (eval echo configure:6223: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6156: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_setproctitle=yes"
 else
@@ -6238,7 +6171,7 @@ else
   echo "$ac_t""no" 1>&6
 
                echo $ac_n "checking for setproctitle in -lutil""... $ac_c" 1>&6
-echo "configure:6242: checking for setproctitle in -lutil" >&5
+echo "configure:6175: checking for setproctitle in -lutil" >&5
 ac_lib_var=`echo util'_'setproctitle | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6246,7 +6179,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lutil  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6250 "configure"
+#line 6183 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6257,7 +6190,7 @@ int main() {
 setproctitle()
 ; return 0; }
 EOF
-if { (eval echo configure:6261: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6194: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6292,12 +6225,12 @@ EOF
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:6296: checking for ANSI C header files" >&5
+echo "configure:6229: checking for ANSI C header files" >&5
 if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6301 "configure"
+#line 6234 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -6305,7 +6238,7 @@ else
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6309: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6322,7 +6255,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
-#line 6326 "configure"
+#line 6259 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -6340,7 +6273,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
-#line 6344 "configure"
+#line 6277 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -6361,7 +6294,7 @@ if test "$cross_compiling" = yes; then
   :
 else
   cat > conftest.$ac_ext <<EOF
-#line 6365 "configure"
+#line 6298 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -6372,7 +6305,7 @@ if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
 exit (0); }
 
 EOF
-if { (eval echo configure:6376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6309: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   :
 else
@@ -6405,12 +6338,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:6409: checking for $ac_hdr that defines DIR" >&5
+echo "configure:6342: checking for $ac_hdr that defines DIR" >&5
 if eval "test \"`echo '$''{'ac_cv_header_dirent_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6414 "configure"
+#line 6347 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_hdr>
@@ -6418,7 +6351,7 @@ int main() {
 DIR *dirp = 0;
 ; return 0; }
 EOF
-if { (eval echo configure:6422: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6355: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   eval "ac_cv_header_dirent_$ac_safe=yes"
 else
@@ -6443,7 +6376,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:6447: checking for opendir in -ldir" >&5
+echo "configure:6380: checking for opendir in -ldir" >&5
 ac_lib_var=`echo dir'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6451,7 +6384,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-ldir  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6455 "configure"
+#line 6388 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6462,7 +6395,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:6466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6399: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6484,7 +6417,7 @@ fi
 
 else
 echo $ac_n "checking for opendir in -lx""... $ac_c" 1>&6
-echo "configure:6488: checking for opendir in -lx" >&5
+echo "configure:6421: checking for opendir in -lx" >&5
 ac_lib_var=`echo x'_'opendir | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -6492,7 +6425,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lx  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 6496 "configure"
+#line 6429 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6503,7 +6436,7 @@ int main() {
 opendir()
 ; return 0; }
 EOF
-if { (eval echo configure:6507: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6440: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6526,12 +6459,12 @@ fi
 fi
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:6530: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:6463: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6535 "configure"
+#line 6468 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -6547,7 +6480,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:6551: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6484: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -6568,12 +6501,12 @@ EOF
 fi
 
 echo $ac_n "checking POSIX termios""... $ac_c" 1>&6
-echo "configure:6572: checking POSIX termios" >&5
+echo "configure:6505: checking POSIX termios" >&5
 if eval "test \"`echo '$''{'am_cv_sys_posix_termios'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6577 "configure"
+#line 6510 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <unistd.h>
@@ -6583,7 +6516,7 @@ int main() {
    tcgetattr(0, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:6587: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:6520: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   am_cv_sys_posix_termios=yes
 else
@@ -6599,7 +6532,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:6603: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5
+echo "configure:6536: checking whether use of TIOCGWINSZ requires sys/ioctl.h" >&5
 if eval "test \"`echo '$''{'am_cv_sys_tiocgwinsz_needs_sys_ioctl_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6608,7 +6541,7 @@ else
   gwinsz_in_termios_h=no
   if test $am_cv_sys_posix_termios = yes; then
     cat > conftest.$ac_ext <<EOF
-#line 6612 "configure"
+#line 6545 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #     include <termios.h>
@@ -6628,7 +6561,7 @@ rm -f conftest*
 
   if test $gwinsz_in_termios_h = no; then
     cat > conftest.$ac_ext <<EOF
-#line 6632 "configure"
+#line 6565 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #     include <sys/ioctl.h>
@@ -6698,17 +6631,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:6702: checking for $ac_hdr" >&5
+echo "configure:6635: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6707 "configure"
+#line 6640 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6712: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6645: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6736,12 +6669,12 @@ done
 
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:6740: checking for uid_t in sys/types.h" >&5
+echo "configure:6673: checking for uid_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'ac_cv_type_uid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6745 "configure"
+#line 6678 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -6770,7 +6703,7 @@ EOF
 fi
 
 echo $ac_n "checking type of array argument to getgroups""... $ac_c" 1>&6
-echo "configure:6774: checking type of array argument to getgroups" >&5
+echo "configure:6707: checking type of array argument to getgroups" >&5
 if eval "test \"`echo '$''{'ac_cv_type_getgroups'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -6778,7 +6711,7 @@ else
   ac_cv_type_getgroups=cross
 else
   cat > conftest.$ac_ext <<EOF
-#line 6782 "configure"
+#line 6715 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Rendell for this test.  */
@@ -6803,7 +6736,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:6807: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:6740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
     ac_cv_type_getgroups=gid_t
 else
@@ -6817,7 +6750,7 @@ fi
 
 if test $ac_cv_type_getgroups = cross; then
         cat > conftest.$ac_ext <<EOF
-#line 6821 "configure"
+#line 6754 "configure"
 #include "confdefs.h"
 #include <unistd.h>
 EOF
@@ -6840,12 +6773,12 @@ cat >> confdefs.h <<EOF
 EOF
 
  echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:6844: checking for mode_t" >&5
+echo "configure:6777: checking for mode_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_mode_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6849 "configure"
+#line 6782 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6873,12 +6806,12 @@ EOF
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:6877: checking for off_t" >&5
+echo "configure:6810: checking for off_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6882 "configure"
+#line 6815 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6906,12 +6839,12 @@ EOF
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:6910: checking for pid_t" >&5
+echo "configure:6843: checking for pid_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_pid_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6915 "configure"
+#line 6848 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -6939,19 +6872,19 @@ EOF
 fi
 
 echo $ac_n "checking for ptrdiff_t""... $ac_c" 1>&6
-echo "configure:6943: checking for ptrdiff_t" >&5
+echo "configure:6876: checking for ptrdiff_t" >&5
 if eval "test \"`echo '$''{'am_cv_type_ptrdiff_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6948 "configure"
+#line 6881 "configure"
 #include "confdefs.h"
 #include <stddef.h>
 int main() {
 ptrdiff_t p
 ; return 0; }
 EOF
-if { (eval echo configure:6955: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6888: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_type_ptrdiff_t=yes
 else
@@ -6972,12 +6905,12 @@ EOF
    fi
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:6976: checking return type of signal handlers" >&5
+echo "configure:6909: checking return type of signal handlers" >&5
 if eval "test \"`echo '$''{'ac_cv_type_signal'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 6981 "configure"
+#line 6914 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -6994,7 +6927,7 @@ int main() {
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:6998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6931: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -7013,12 +6946,12 @@ EOF
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:7017: checking for size_t" >&5
+echo "configure:6950: checking for size_t" >&5
 if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7022 "configure"
+#line 6955 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -7046,12 +6979,12 @@ EOF
 fi
 
 echo $ac_n "checking for st_blksize in struct stat""... $ac_c" 1>&6
-echo "configure:7050: checking for st_blksize in struct stat" >&5
+echo "configure:6983: checking for st_blksize in struct stat" >&5
 if eval "test \"`echo '$''{'ac_cv_struct_st_blksize'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7055 "configure"
+#line 6988 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/stat.h>
@@ -7059,7 +6992,7 @@ int main() {
 struct stat s; s.st_blksize;
 ; return 0; }
 EOF
-if { (eval echo configure:7063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:6996: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_st_blksize=yes
 else
@@ -7080,12 +7013,12 @@ EOF
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:7084: checking whether time.h and sys/time.h may both be included" >&5
+echo "configure:7017: checking whether time.h and sys/time.h may both be included" >&5
 if eval "test \"`echo '$''{'ac_cv_header_time'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7089 "configure"
+#line 7022 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -7094,7 +7027,7 @@ int main() {
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:7098: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7031: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -7115,12 +7048,12 @@ EOF
 fi
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:7119: checking whether struct tm is in sys/time.h or time.h" >&5
+echo "configure:7052: checking whether struct tm is in sys/time.h or time.h" >&5
 if eval "test \"`echo '$''{'ac_cv_struct_tm'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7124 "configure"
+#line 7057 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -7128,7 +7061,7 @@ int main() {
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:7132: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7065: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -7151,7 +7084,7 @@ fi
 
 
 echo $ac_n "checking if toupper() requires islower()""... $ac_c" 1>&6
-echo "configure:7155: checking if toupper() requires islower()" >&5
+echo "configure:7088: checking if toupper() requires islower()" >&5
 if eval "test \"`echo '$''{'ol_cv_c_upper_lower'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7160,7 +7093,7 @@ else
   ol_cv_c_upper_lower=safe
 else
   cat > conftest.$ac_ext <<EOF
-#line 7164 "configure"
+#line 7097 "configure"
 #include "confdefs.h"
 
 #include <ctype.h>
@@ -7172,7 +7105,7 @@ main()
                exit(1);
 }
 EOF
-if { (eval echo configure:7176: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ol_cv_c_upper_lower=no
 else
@@ -7195,12 +7128,12 @@ EOF
 fi
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:7199: checking for working const" >&5
+echo "configure:7132: checking for working const" >&5
 if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7204 "configure"
+#line 7137 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -7249,7 +7182,7 @@ ccp = (char const *const *) p;
 
 ; return 0; }
 EOF
-if { (eval echo configure:7253: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7186: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -7277,14 +7210,14 @@ EOF
 
 else
        echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:7281: checking whether byte ordering is bigendian" >&5
+echo "configure:7214: checking whether byte ordering is bigendian" >&5
 if eval "test \"`echo '$''{'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 <<EOF
-#line 7288 "configure"
+#line 7221 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -7295,11 +7228,11 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:7299: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7232: \"$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 <<EOF
-#line 7303 "configure"
+#line 7236 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -7310,7 +7243,7 @@ int main() {
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:7314: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7247: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -7330,7 +7263,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 <<EOF
-#line 7334 "configure"
+#line 7267 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -7343,7 +7276,7 @@ main () {
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:7347: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_bigendian=no
 else
@@ -7367,7 +7300,7 @@ EOF
 fi
 
        echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:7371: checking size of short" >&5
+echo "configure:7304: checking size of short" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_short'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7375,7 +7308,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 7379 "configure"
+#line 7312 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -7386,7 +7319,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7323: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -7406,7 +7339,7 @@ EOF
 
  
        echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:7410: checking size of int" >&5
+echo "configure:7343: checking size of int" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_int'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7414,7 +7347,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 7418 "configure"
+#line 7351 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -7425,7 +7358,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7429: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7362: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -7445,7 +7378,7 @@ EOF
 
  
        echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:7449: checking size of long" >&5
+echo "configure:7382: checking size of long" >&5
 if eval "test \"`echo '$''{'ac_cv_sizeof_long'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7453,7 +7386,7 @@ else
     { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
 else
   cat > conftest.$ac_ext <<EOF
-#line 7457 "configure"
+#line 7390 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -7464,7 +7397,7 @@ main()
   exit(0);
 }
 EOF
-if { (eval echo configure:7468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7401: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -7486,7 +7419,7 @@ EOF
 fi
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:7490: checking for 8-bit clean memcmp" >&5
+echo "configure:7423: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7494,7 +7427,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 7498 "configure"
+#line 7431 "configure"
 #include "confdefs.h"
 
 main()
@@ -7504,7 +7437,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:7508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7441: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -7522,12 +7455,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
 
 echo $ac_n "checking for strftime""... $ac_c" 1>&6
-echo "configure:7526: checking for strftime" >&5
+echo "configure:7459: checking for strftime" >&5
 if eval "test \"`echo '$''{'ac_cv_func_strftime'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7531 "configure"
+#line 7464 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char strftime(); below.  */
@@ -7550,7 +7483,7 @@ strftime();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7487: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_strftime=yes"
 else
@@ -7572,7 +7505,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:7576: checking for strftime in -lintl" >&5
+echo "configure:7509: checking for strftime in -lintl" >&5
 ac_lib_var=`echo intl'_'strftime | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -7580,7 +7513,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 7584 "configure"
+#line 7517 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7591,7 +7524,7 @@ int main() {
 strftime()
 ; return 0; }
 EOF
-if { (eval echo configure:7595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7618,12 +7551,12 @@ fi
 fi
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:7622: checking for vprintf" >&5
+echo "configure:7555: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7627 "configure"
+#line 7560 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -7646,7 +7579,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7650: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7583: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -7670,12 +7603,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:7674: checking for _doprnt" >&5
+echo "configure:7607: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7679 "configure"
+#line 7612 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -7698,7 +7631,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7635: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -7727,12 +7660,12 @@ if test $ac_cv_func_vprintf = yes ; then
                for ac_func in vsnprintf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7731: checking for $ac_func" >&5
+echo "configure:7664: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7736 "configure"
+#line 7669 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7755,7 +7688,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7759: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7692: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7782,7 +7715,7 @@ done
 fi
 
 echo $ac_n "checking for wait3 that fills in rusage""... $ac_c" 1>&6
-echo "configure:7786: checking for wait3 that fills in rusage" >&5
+echo "configure:7719: checking for wait3 that fills in rusage" >&5
 if eval "test \"`echo '$''{'ac_cv_func_wait3_rusage'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -7790,7 +7723,7 @@ else
   ac_cv_func_wait3_rusage=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 7794 "configure"
+#line 7727 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -7821,7 +7754,7 @@ main() {
   }
 }
 EOF
-if { (eval echo configure:7825: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:7758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_wait3_rusage=yes
 else
@@ -7846,9 +7779,11 @@ fi
 
 for ac_func in \
        bcopy                   \
+       ctime_r                 \
        flock                   \
        getdtablesize   \
        gethostname             \
+       gethostbyaddr_r gethostbyname_r \
        getpwuid                \
        gettimeofday    \
        lockf                   \
@@ -7869,6 +7804,7 @@ for ac_func in \
        strsep                  \
        strstr                  \
        strtok                  \
+       strtok_r                \
        strtol                  \
        strtoul                 \
        sysconf                 \
@@ -7876,12 +7812,12 @@ for ac_func in \
 
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7880: checking for $ac_func" >&5
+echo "configure:7816: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7885 "configure"
+#line 7821 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7904,7 +7840,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7908: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7844: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7932,12 +7868,12 @@ done
 for ac_func in getopt strdup tempnam
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7936: checking for $ac_func" >&5
+echo "configure:7872: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 7941 "configure"
+#line 7877 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7960,7 +7896,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:7964: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7990,13 +7926,13 @@ done
 # Check Configuration
 
 echo $ac_n "checking declaration of sys_errlist""... $ac_c" 1>&6
-echo "configure:7994: checking declaration of sys_errlist" >&5
+echo "configure:7930: checking declaration of sys_errlist" >&5
 if eval "test \"`echo '$''{'ol_cv_dcl_sys_errlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
        cat > conftest.$ac_ext <<EOF
-#line 8000 "configure"
+#line 7936 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -8006,7 +7942,7 @@ int main() {
 char *c = (char *) *sys_errlist
 ; return 0; }
 EOF
-if { (eval echo configure:8010: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:7946: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ol_cv_dcl_sys_errlist=yes
 else
@@ -8027,20 +7963,20 @@ if test $ol_cv_dcl_sys_errlist = no ; then
 EOF
 
        echo $ac_n "checking existence of sys_errlist""... $ac_c" 1>&6
-echo "configure:8031: checking existence of sys_errlist" >&5
+echo "configure:7967: checking existence of sys_errlist" >&5
        if eval "test \"`echo '$''{'ol_cv_have_sys_errlist'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   
                cat > conftest.$ac_ext <<EOF
-#line 8037 "configure"
+#line 7973 "configure"
 #include "confdefs.h"
 #include <errno.h>
 int main() {
 char *c = (char *) *sys_errlist
 ; return 0; }
 EOF
-if { (eval echo configure:8044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:7980: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ol_cv_have_sys_errlist=yes
 else
index 46dd667bcdadf73380f5dad0d69ea1527e7c1e9b..5ebcf71b851f23cc0be1604786d579b535c5c918 100644 (file)
@@ -803,24 +803,37 @@ int x = errno;
                LTHREAD_LIBS=""
        fi
 
-       dnl check for reentrant/threadsafe functions
-       dnl
-       dnl note: these should only be used when linking
-       dnl       with $LTHREAD_LIBS
-       dnl
-       save_CPPFLAGS="$CPPFLAGS"
-       save_LIBS="$LIBS"
-       LIBS="$LTHREAD_LIBS $LIBS"
-       AC_CHECK_FUNCS( \
-               strtok_r \
-               gmtime_r \
-               gethostbyaddr_r gethostbyname_r \
-               feof_unlocked unlocked_feof \
-               putc_unlocked unlocked_putc \
-               flockfile ftrylockfile \
-       )
-       CPPFLAGS="$save_CPPFLAGS"
-       LIBS="$save_LIBS"
+dnl When in thread environment, use 
+dnl            #if defined( HAVE_REENTRANT_FUNCTIONS ) \ 
+dnl                    || defined( HAVE_FUNC_R )
+dnl                    func_r(...);
+dnl            #else
+dnl                    func(...);
+dnl            #endif
+dnl
+dnl HAVE_REENTRANT_FUNCTIONS is derived from:
+dnl            _POSIX_REENTRANT_FUNCTIONS
+dnl            _POSIX_THREAD_SAFE_FUNCTIONS
+dnl            _POSIX_THREADSAFE_FUNCTIONS
+dnl            
+dnl    dnl check for reentrant/threadsafe functions
+dnl    dnl
+dnl    dnl note: these should only be used when linking
+dnl    dnl       with $LTHREAD_LIBS
+dnl    dnl
+dnl    save_CPPFLAGS="$CPPFLAGS"
+dnl    save_LIBS="$LIBS"
+dnl    LIBS="$LTHREAD_LIBS $LIBS"
+dnl    AC_CHECK_FUNCS( \
+dnl            strtok_r \
+dnl            gmtime_r \
+dnl            gethostbyaddr_r gethostbyname_r \
+dnl            feof_unlocked unlocked_feof \
+dnl            putc_unlocked unlocked_putc \
+dnl            flockfile ftrylockfile \
+dnl    )
+dnl    CPPFLAGS="$save_CPPFLAGS"
+dnl    LIBS="$save_LIBS"
 fi  
 
 dnl ----------------------------------------------------------------
@@ -1103,9 +1116,11 @@ AC_FUNC_WAIT3
 
 AC_CHECK_FUNCS(                \
        bcopy                   \
+       ctime_r                 \
        flock                   \
        getdtablesize   \
        gethostname             \
+       gethostbyaddr_r gethostbyname_r \
        getpwuid                \
        gettimeofday    \
        lockf                   \
@@ -1126,6 +1141,7 @@ AC_CHECK_FUNCS(           \
        strsep                  \
        strstr                  \
        strtok                  \
+       strtok_r                \
        strtol                  \
        strtoul                 \
        sysconf                 \
index 4501493731b747910b0f1a7235cb6a26080c616a..f4785d5f917e974d305085a8ffbd67be105009a4 100644 (file)
@@ -279,18 +279,12 @@ is provided ``as is'' without express or implied warranty.
 /* Define if you have the bcopy function.  */
 #undef HAVE_BCOPY
 
-/* Define if you have the feof_unlocked function.  */
-#undef HAVE_FEOF_UNLOCKED
+/* Define if you have the ctime_r function.  */
+#undef HAVE_CTIME_R
 
 /* Define if you have the flock function.  */
 #undef HAVE_FLOCK
 
-/* Define if you have the flockfile function.  */
-#undef HAVE_FLOCKFILE
-
-/* Define if you have the ftrylockfile function.  */
-#undef HAVE_FTRYLOCKFILE
-
 /* Define if you have the getdtablesize function.  */
 #undef HAVE_GETDTABLESIZE
 
@@ -312,9 +306,6 @@ is provided ``as is'' without express or implied warranty.
 /* Define if you have the gettimeofday function.  */
 #undef HAVE_GETTIMEOFDAY
 
-/* Define if you have the gmtime_r function.  */
-#undef HAVE_GMTIME_R
-
 /* Define if you have the lockf function.  */
 #undef HAVE_LOCKF
 
@@ -354,9 +345,6 @@ is provided ``as is'' without express or implied warranty.
 /* Define if you have the pthread_yield function.  */
 #undef HAVE_PTHREAD_YIELD
 
-/* Define if you have the putc_unlocked function.  */
-#undef HAVE_PUTC_UNLOCKED
-
 /* Define if you have the res_search function.  */
 #undef HAVE_RES_SEARCH
 
@@ -423,12 +411,6 @@ is provided ``as is'' without express or implied warranty.
 /* Define if you have the thr_setconcurrency function.  */
 #undef HAVE_THR_SETCONCURRENCY
 
-/* Define if you have the unlocked_feof function.  */
-#undef HAVE_UNLOCKED_FEOF
-
-/* Define if you have the unlocked_putc function.  */
-#undef HAVE_UNLOCKED_PUTC
-
 /* Define if you have the vsnprintf function.  */
 #undef HAVE_VSNPRINTF
 
index 4d6754ee944e9c00ec9fa52cc9eb32699e2d5acc..1c0bfcb79b7a9339ba346e2b2038950150c7561b 100644 (file)
@@ -3,6 +3,7 @@
 ##
 
 LIBRARY = liblber.la
+XLIBRARY = ../liblber.a
 
 SRCS= decode.c encode.c io.c bprint.c
 OBJS= decode.lo encode.lo io.lo bprint.lo
index 484a8f3f70308416208e3def5c2e534d0fd11478..013b2e4976163ffe961206e61827a949d8ee363e 100644 (file)
@@ -2,6 +2,8 @@
 ## Makefile.in for LDAP -lldap
 ##
 LIBRARY = libldap.la
+XLIBRARY = ../libldap.a
+
 PROGRAMS = apitest ltest ttest
 
 SRCS   = bind.c open.c result.c error.c compare.c search.c \
@@ -10,14 +12,14 @@ SRCS        = bind.c open.c result.c error.c compare.c search.c \
        free.c disptmpl.c srchpref.c dsparse.c tmplout.c sort.c \
        getdn.c getentry.c getattr.c getvalues.c addentry.c \
        request.c getdxbyname.c os-ip.c url.c charset.c \
-       init.c options.c strdup.c
+       init.c options.c strdup.c util-int.c
 OBJS   = bind.lo open.lo result.lo error.lo compare.lo search.lo \
        modify.lo add.lo modrdn.lo delete.lo abandon.lo ufn.lo cache.lo \
        getfilter.lo sbind.lo kbind.lo unbind.lo friendly.lo cldap.lo \
        free.lo disptmpl.lo srchpref.lo dsparse.lo tmplout.lo sort.lo \
        getdn.lo getentry.lo getattr.lo getvalues.lo addentry.lo \
        request.lo getdxbyname.lo os-ip.lo url.lo charset.lo \
-       init.lo options.lo strdup.lo
+       init.lo options.lo strdup.lo util-int.lo
 
 LDAP_INCDIR= ../../include       
 LDAP_LIBDIR= ../../libraries
index 5ae4c6a66350a2fe51235658ccf385b0dd543485..1ed8693a15b31a192e48c43dde9774a9318660ee 100644 (file)
@@ -64,6 +64,13 @@ cldap_open( char *host, int port )
     char               *p;
     int                        i;
 
+    /* buffers for ldap_int_gethostbyname_a ... */
+    struct hostent      he_buf;
+    int                 local_h_errno;
+    char               *ha_buf=NULL;
+
+#define DO_RETURN(x) if (ha_buf) free(ha_buf); return (x);
+   
     Debug( LDAP_DEBUG_TRACE, "ldap_open\n", 0, 0, 0 );
 
     if ( (s = socket( AF_INET, SOCK_DGRAM, 0 )) < 0 ) {
@@ -110,9 +117,11 @@ cldap_open( char *host, int port )
            /* This was just a test for -1 until OSF1 let inet_addr return
               unsigned int, which is narrower than 'unsigned long address' */
            if ( address == 0xffffffff || address == (unsigned long) -1 ) {
-               if ( (hp = gethostbyname( host )) == NULL ) {
-                   errno = EHOSTUNREACH;
-                   continue;
+               if ((ldap_int_gethostbyname_a( host, &he_buf, &ha_buf,
+                                             &hp,&local_h_errno)<0) || 
+                   (hp==NULL)) {
+                  errno = EHOSTUNREACH;
+                  continue;
                }
 
                for ( i = 0; hp->h_addr_list[ i ] != 0; ++i ) {
@@ -121,7 +130,7 @@ cldap_open( char *host, int port )
                            sizeof(sock.sin_addr.s_addr));
                    if ( add_addr( ld, (struct sockaddr *)&sock ) < 0 ) {
                        ldap_ld_free( ld, 1 );
-                       return( NULL );
+                       DO_RETURN( NULL );
                    }
                }
 
@@ -129,7 +138,7 @@ cldap_open( char *host, int port )
                sock.sin_addr.s_addr = address;
                if ( add_addr( ld, (struct sockaddr *)&sock ) < 0 ) {
                    ldap_ld_free( ld, 1 );
-                   return( NULL );
+                   DO_RETURN( NULL );
                }
            }
 
@@ -137,13 +146,12 @@ cldap_open( char *host, int port )
                    ld->ld_host = ldap_strdup( host );
            }
        }
-
     } else {
        address = INADDR_LOOPBACK;
        sock.sin_addr.s_addr = htonl( address );
        if ( add_addr( ld, (struct sockaddr *)&sock ) < 0 ) {
            ldap_ld_free( ld, 1 );
-           return( NULL );
+           DO_RETURN( NULL );
        }
     }
 
@@ -153,7 +161,7 @@ cldap_open( char *host, int port )
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS */
            ) {
        ldap_ld_free( ld, 0 );
-       return( NULL );
+       DO_RETURN( NULL );
     }
 
     ld->ld_sb.sb_useaddr = ld->ld_sb.sb_addrs[ 0 ];
@@ -168,10 +176,10 @@ cldap_open( char *host, int port )
     }
 #endif
 
-    return( ld );
+    DO_RETURN( ld );
 }
 
-
+#undef DO_RETURN
 
 void
 cldap_close( LDAP *ld )
index 1142c883643f4e0959864d0dd516862f40bfae37..c50b4813eab48638dbecf5045ceaa224685cc174 100644 (file)
@@ -124,6 +124,7 @@ ldap_explode_dns( char *dn )
        int     ncomps, maxcomps;
        char    *s;
        char    **rdns;
+       char    *tok_r;
 
        if ( (rdns = (char **) malloc( 8 * sizeof(char *) )) == NULL ) {
                return( NULL );
@@ -131,7 +132,8 @@ ldap_explode_dns( char *dn )
 
        maxcomps = 8;
        ncomps = 0;
-       for ( s = strtok( dn, "@." ); s != NULL; s = strtok( NULL, "@." ) ) {
+       for ( s = ldap_int_strtok( dn, "@.", &tok_r ); s != NULL; 
+             s = ldap_int_strtok( NULL, "@.", &tok_r ) ) {
                if ( ncomps == maxcomps ) {
                        maxcomps *= 2;
                        if ( (rdns = (char **) realloc( rdns, maxcomps *
index e466adc243cd70df73960a0ae09591ace8992777..f5b9ff0d263e5f5c0775287110d33a72369f3aad 100644 (file)
@@ -405,14 +405,15 @@ break_into_words( char *str, char *delims, char ***wordsp )
 {
     char       *word, **words;
     int                count;
-       
+    char        *tok_r;        
+
     if (( words = (char **)calloc( 1, sizeof( char * ))) == NULL ) {
        return( -1 );
     }
     count = 0;
     words[ count ] = NULL;
 
-    word = strtok( str, delims );
+    word = ldap_int_strtok( str, delims, &tok_r );
     while ( word != NULL ) {
        if (( words = (char **)realloc( words,
                ( count + 2 ) * sizeof( char * ))) == NULL ) {
@@ -421,7 +422,7 @@ break_into_words( char *str, char *delims, char ***wordsp )
 
        words[ count ] = word;
        words[ ++count ] = NULL;
-       word = strtok( NULL, delims );
+       word = ldap_int_strtok( NULL, delims, &tok_r );
     }
        
     *wordsp = words;
index 4b95a75f4f6b3f49e4152c97a1dfe109a633109d..68c8c5b245dc77d1e9784afc2a46ec7b784a8344 100644 (file)
@@ -11,6 +11,8 @@
 #include "../liblber/lber-int.h"
 #include "ldap_log.h"
 #include "ldap.h"
+#include <time.h>
+#include <netdb.h>
 
 LDAP_BEGIN_DECL
 
@@ -273,6 +275,28 @@ int ldap_8859_to_t61( char **bufp, unsigned long *buflenp, int free_input );
 #endif /* LDAP_CHARSET_8859 == LDAP_DEFAULT_CHARSET */
 #endif /* STR_TRANSLATION && LDAP_DEFAULT_CHARSET */
 
+/*
+ * in util_r.c
+ * 
+ */
+
+extern char *ldap_int_strtok( char *str, const char *delim, char **pos );
+extern char *ldap_int_ctime( const time_t *tp, char *buf );
+extern int ldap_int_gethostbyname_a(
+       const char *name, 
+       struct hostent *resbuf,
+       char **buf,
+       struct hostent **result,
+       int *herrno_ptr );
+extern int ldap_int_gethostbyaddr_a(
+       const char *addr,
+       int len,
+       int type,
+       struct hostent *resbuf,
+       char **buf,
+       struct hostent **result,
+       int *herrno_ptr );
+
 LDAP_END_DECL
 
 #endif /* _LDAP_INT_H */
index 1b22917a46e95c5f996beb6a58801bbf0b4a3dc2..46ab3a6d5aafc5abd37224144255bb6db541b475 100644 (file)
@@ -48,7 +48,13 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
        int                     status; /* for ioctl call */
 #endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS */
 #endif /* notyet */
-
+   
+       /* buffers for ldap_int_gethostbyname_a */
+       struct hostent          he_buf;
+       int                     local_h_errno;
+       char                    *ha_buf=NULL;
+#define DO_RETURN(x) if (ha_buf) free(ha_buf); return (x);
+   
        Debug( LDAP_DEBUG_TRACE, "ldap_connect_to_host: %s:%d\n",
            ( host == NULL ) ? "(by address)" : host, (int) ntohs( (short) port ), 0 );
 
@@ -59,13 +65,15 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
            /* This was just a test for -1 until OSF1 let inet_addr return
               unsigned int, which is narrower than 'unsigned long address' */
            if ( address == 0xffffffff || address == (unsigned long) -1 ) {
-               if ( (hp = gethostbyname( host )) == NULL ) {
+               if ( ( ldap_int_gethostbyname_a( host, &he_buf, &ha_buf,
+                       &hp, &local_h_errno) < 0) || (hp==NULL))
+               {
 #ifdef HAVE_WINSOCK
                        errno = WSAGetLastError();
 #else
                        errno = EHOSTUNREACH;   /* not exactly right, but... */
 #endif
-                       return( -1 );
+                       DO_RETURN( -1 );
                }
                use_hp = 1;
            }
@@ -74,7 +82,7 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
        rc = -1;
        for ( i = 0; !use_hp || ( hp->h_addr_list[ i ] != 0 ); i++ ) {
                if (( s = socket( AF_INET, SOCK_STREAM, 0 )) < 0 ) {
-                       return( -1 );
+                       DO_RETURN( -1 );
                }
 #ifdef notyet
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS
@@ -99,7 +107,7 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
                        break;
                } else {
 #ifdef HAVE_WINSOCK
-                       errno = WSAGetLastError();
+                       errno = WSAGetLastError();
 #endif
 #ifdef notyet
 #ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_REFERRALS
@@ -145,8 +153,12 @@ ldap_connect_to_host( Sockbuf *sb, char *host, unsigned long address,
                    s, (char *) inet_ntoa( sin.sin_addr ), 0 );
        }
 
-       return( rc );
+       DO_RETURN( rc );
+       
+       
 }
+   
+#undef DO_RETURN
 
 
 void
@@ -165,6 +177,12 @@ ldap_host_connected_to( Sockbuf *sb )
        int                     len;
        struct sockaddr_in      sin;
 
+       /* buffers for gethostbyaddr_r */
+       struct hostent          he_buf;
+        int                    local_h_errno;
+       char                    *ha_buf=NULL;
+#define DO_RETURN(x) if (ha_buf) free(ha_buf); return (x);
+   
        (void)memset( (char *)&sin, 0, sizeof( struct sockaddr_in ));
        len = sizeof( sin );
        if ( getpeername( sb->sb_sd, (struct sockaddr *)&sin, &len ) == -1 ) {
@@ -176,15 +194,20 @@ ldap_host_connected_to( Sockbuf *sb )
         * this is necessary for kerberos to work right, since the official
         * hostname is used as the kerberos instance.
         */
-       if (( hp = gethostbyaddr( (char *) &sin.sin_addr,
-           sizeof( sin.sin_addr ), AF_INET )) != NULL ) {
+       if ((ldap_int_gethostbyaddr_a( (char *) &sin.sin_addr,
+               sizeof( sin.sin_addr ), 
+               AF_INET, &he_buf, &ha_buf,
+               &hp,&local_h_errno ) ==0 ) && (hp != NULL) )
+       {
                if ( hp->h_name != NULL ) {
-                       return( ldap_strdup( hp->h_name ));
+                       DO_RETURN( ldap_strdup( hp->h_name ));
                }
        }
 
-       return( NULL );
+       DO_RETURN( NULL );
 }
+#undef DO_RETURN   
+   
 #endif /* HAVE_KERBEROS */
 
 
index f2d290e876286e219eeb7e3bf031cc382bdd21a9..245c73b9486c417b57cb05aa5c1c6c515520cb11 100644 (file)
@@ -442,6 +442,7 @@ void
 ldap_dump_connection( LDAP *ld, LDAPConn *lconns, int all )
 {
        LDAPConn        *lc;
+       char            timebuf[32];
 
        fprintf( stderr, "** Connection%s:\n", all ? "s" : "" );
        for ( lc = lconns; lc != NULL; lc = lc->lconn_next ) {
@@ -457,7 +458,7 @@ ldap_dump_connection( LDAP *ld, LDAPConn *lconns, int all )
                    "NeedSocket" : ( lc->lconn_status ==
                    LDAP_CONNST_CONNECTING ) ? "Connecting" : "Connected" );
                fprintf( stderr, "  last used: %s\n",
-                   ctime( &lc->lconn_lastused ));
+                   ldap_int_ctime( &lc->lconn_lastused, timebuf ));
                if ( !all ) {
                        break;
                }
index 831947019dabbec8db1b2e76285dd2e1de09b282..6738fba022c48b576fccddff005b9e2f0c544fdb 100644 (file)
@@ -27,9 +27,9 @@
 struct entrything {
        char            **et_vals;
        LDAPMessage     *et_msg;
+       int             (*et_cmp_fn) LDAP_P((const char *a, const char *b));
 };
 
-static int     (*et_cmp_fn) LDAP_P(( const char *a, const char *b ));
 static int     et_cmp LDAP_P(( const void *aa, const void *bb));
 
 
@@ -60,8 +60,7 @@ et_cmp(
                return( 1 );
 
        for ( i = 0; a->et_vals[i] && b->et_vals[i]; i++ ) {
-               if ( (rc = (*et_cmp_fn)( a->et_vals[i], b->et_vals[i] ))
-                   != 0 ) {
+               if ( (rc = a->et_cmp_fn( a->et_vals[i], b->et_vals[i] )) != 0 ) {
                        return( rc );
                }
        }
@@ -96,6 +95,7 @@ ldap_sort_entries(
 
        e = *chain;
        for ( i = 0; i < count; i++ ) {
+               et[i].et_cmp_fn = cmp;
                et[i].et_msg = e;
                if ( attr == NULL ) {
                        char    *dn;
@@ -111,7 +111,6 @@ ldap_sort_entries(
        }
        last = e;
 
-       et_cmp_fn = cmp;
        qsort( et, count, sizeof(struct entrything), et_cmp );
 
        ep = chain;
index 372f427f25ea0c6a2a94d04ed25abf1a9a5c2e46..94cc00c1393068c4e0d53eaa4651f06986a28b8c 100644 (file)
@@ -874,6 +874,7 @@ time2text( char *ldtimestr, int dateonly )
     struct tm          t;
     char               *p, *timestr, zone, *fmterr = "badly formatted time";
     time_t             gmttime;
+    char               timebuf[32];
 
     memset( (char *)&t, 0, sizeof( struct tm ));
     if ( (int) strlen( ldtimestr ) < 13 ) {
@@ -899,8 +900,9 @@ time2text( char *ldtimestr, int dateonly )
     }
 
     gmttime = gtime( &t );
-    timestr = ctime( &gmttime );
 
+    timestr = ldap_int_ctime( &gmttime, timebuf );
+   
     timestr[ strlen( timestr ) - 1 ] = zone;   /* replace trailing newline */
     if ( dateonly ) {
        strcpy( timestr + 11, timestr + 20 );
diff --git a/libraries/libldap/util-int.c b/libraries/libldap/util-int.c
new file mode 100644 (file)
index 0000000..cdf9979
--- /dev/null
@@ -0,0 +1,141 @@
+/*
+ * util-int.c  Various functions to replace missing threadsafe ones.
+ *                               Without the real *_r funcs, things will work, but won't be
+ *                               threadsafe. 
+ * 
+ * Written by Bart Hartgers.
+ *
+ * Copyright 1998, A. Hartgers, All rights reserved.
+ * This software is not subject to any license of Eindhoven University of
+ * Technology, since it was written in my spare time.
+ *                     
+ * Redistribution and use in source and binary forms are permitted only
+ * as authorized by the OpenLDAP Public License.  A copy of this
+ * license is available at http://www.OpenLDAP.org/license.html or
+ * in file LICENSE in the top-level directory of the distribution.
+ */ 
+
+#include "portable.h"
+
+#include <stdlib.h>
+
+#include <ac/errno.h>
+#include <ac/socket.h>
+#include <ac/string.h>
+#include <ac/time.h>
+
+#include "ldap-int.h"
+
+char *ldap_int_strtok( char *str, const char *delim, char **pos )
+{
+#ifdef HAVE_STRTOK_R
+       return strtok_r(str, delim, pos);
+#else
+       return strtok(str, delim);
+#endif
+}
+
+char *ldap_int_ctime( const time_t *tp, char *buf )
+{
+#ifdef HAVE_CTIME_R
+       return ctime_r(tp,buf);
+#else
+       return ctime(tp);
+#endif 
+}
+
+#define BUFSTART 1024
+#define BUFMAX (32*1024)
+
+static char *safe_realloc( char **buf, int len )
+{
+       char *tmpbuf;
+       tmpbuf = realloc( *buf, len );
+       if (tmpbuf) {
+               *buf=tmpbuf;
+       } 
+       return tmpbuf;
+}
+int ldap_int_gethostbyname_a(
+       const char *name, 
+       struct hostent *resbuf,
+       char **buf,
+       struct hostent **result,
+       int *herrno_ptr )
+{
+#ifdef HAVE_GETHOSTBYNAME_R
+       int r;
+       int buflen=BUFSTART;
+
+       if (safe_realloc( buf, buflen)) {
+               for(;buflen<BUFMAX;) {
+                       r = gethostbyname_r( name, resbuf, *buf,
+                               buflen, result, herrno_ptr );
+#ifdef NETDB_INTERNAL
+                       if ((r<0) &&
+                               (*herrno_ptr==NETDB_INTERNAL) &&
+                               (errno==ERANGE))
+                       {
+                               if (safe_realloc( buf, buflen*=2 )) {
+                                               continue;
+                               }
+                       }
+#endif
+                       return r;
+               }
+       }
+
+#else /* gethostbyname() */
+       *result = gethostbyname( name );
+
+       if (*result!=NULL) {
+               return 0;
+       }
+
+       *herrno_ptr = h_errno;
+#endif 
+
+       return -1;
+}
+        
+int ldap_int_gethostbyaddr_a(
+       const char *addr,
+       int len,
+       int type,
+       struct hostent *resbuf,
+       char **buf,
+       struct hostent **result,
+       int *herrno_ptr )
+{
+#ifdef HAVE_GETHOSTBYADDR_R
+       int r;
+       int buflen=BUFSTART;
+       if (safe_realloc( buf, buflen)) {
+               for(;buflen<BUFMAX;) {
+                       r = gethostbyaddr_r( addr, len, type,
+                               resbuf, *buf, buflen, 
+                               result, herrno_ptr );
+#ifdef NETDB_INTERNAL
+                       if ((r<0) &&
+                               (*herrno_ptr==NETDB_INTERNAL) &&
+                               (errno==ERANGE))
+                       {
+                               if (safe_realloc( buf, buflen*=2))
+                                       continue;
+                       }
+#endif
+                       return r;
+               }
+       }
+
+#else /* gethostbyaddr() */
+       *result = gethostbyaddr( addr, len, type );
+
+       if (*result!=NULL) {
+               return 0;
+       }
+#endif 
+
+       return -1;
+}