summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNathan Kinder <nkinder@redhat.com>2007-06-08 23:19:20 +0000
committerNathan Kinder <nkinder@redhat.com>2007-06-08 23:19:20 +0000
commit85eefc580b0dc619292325319a7bb261dd698e15 (patch)
tree9cb86c2de3097d356db3b34d2b970c16971d3635
parentd9b8787008e72e696b2b92f20e18b4c3f5f0a38c (diff)
Resolves: 240583
Summary: Added SASL support to ldclt as well as some thread-safety fixes for ns-slapd when using SASL.
-rw-r--r--Makefile.am5
-rw-r--r--Makefile.in29
-rw-r--r--aclocal.m434
-rwxr-xr-xconfigure208
-rw-r--r--ldap/servers/slapd/saslbind.c37
-rwxr-xr-xldap/servers/slapd/tools/ldaptool-sasl.c371
-rw-r--r--ldap/servers/slapd/tools/ldaptool-sasl.h45
-rw-r--r--ldap/servers/slapd/tools/ldaptool.h208
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldapfct.c73
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldclt.c195
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldclt.h8
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldclt.use5
-rw-r--r--ldap/servers/slapd/tools/ldclt/ldcltU.c10
-rw-r--r--ldap/servers/slapd/tools/ldclt/scalab01.c8
-rw-r--r--ltmain.sh162
15 files changed, 1012 insertions, 386 deletions
diff --git a/Makefile.am b/Makefile.am
index 8bebecd9..3f0baf49 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -867,7 +867,8 @@ ldap_agent_bin_LDADD = $(NETSNMP_LINK)
#------------------------
# ldclt
#------------------------
-ldclt_bin_SOURCES = ldap/servers/slapd/tools/ldclt/data.c \
+ldclt_bin_SOURCES = ldap/servers/slapd/tools/ldaptool-sasl.c \
+ ldap/servers/slapd/tools/ldclt/data.c \
ldap/servers/slapd/tools/ldclt/ldapfct.c \
ldap/servers/slapd/tools/ldclt/ldclt.c \
ldap/servers/slapd/tools/ldclt/ldcltU.c \
@@ -883,7 +884,7 @@ if SOLARIS
ldclt_bin_SOURCES += ldap/servers/slapd/tools/ldclt/opCheck.c
endif
-ldclt_bin_CPPFLAGS = $(AM_CPPFLAGS) @ldapsdk_inc@ @nss_inc@ @nspr_inc@
+ldclt_bin_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/ldap/servers/slapd/tools @ldapsdk_inc@ @sasl_inc@ @nss_inc@ @nspr_inc@
ldclt_bin_LDADD = $(NSPR_LINK) $(NSS_LINK) $(LDAPSDK_LINK) $(SASL_LINK) $(LIBNSL) $(LIBSOCKET) $(LIBDL)
#------------------------
diff --git a/Makefile.in b/Makefile.in
index 2c0d6280..f1b813e0 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -588,7 +588,8 @@ am_ldap_agent_bin_OBJECTS = \
ldap/servers/slapd/ldap_agent_bin-agtmmap.$(OBJEXT)
ldap_agent_bin_OBJECTS = $(am_ldap_agent_bin_OBJECTS)
ldap_agent_bin_DEPENDENCIES = $(am__DEPENDENCIES_1)
-am__ldclt_bin_SOURCES_DIST = ldap/servers/slapd/tools/ldclt/data.c \
+am__ldclt_bin_SOURCES_DIST = ldap/servers/slapd/tools/ldaptool-sasl.c \
+ ldap/servers/slapd/tools/ldclt/data.c \
ldap/servers/slapd/tools/ldclt/ldapfct.c \
ldap/servers/slapd/tools/ldclt/ldclt.c \
ldap/servers/slapd/tools/ldclt/ldcltU.c \
@@ -602,6 +603,7 @@ am__ldclt_bin_SOURCES_DIST = ldap/servers/slapd/tools/ldclt/data.c \
ldap/servers/slapd/tools/ldclt/opCheck.c
@SOLARIS_TRUE@am__objects_3 = ldap/servers/slapd/tools/ldclt/ldclt_bin-opCheck.$(OBJEXT)
am_ldclt_bin_OBJECTS = \
+ ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.$(OBJEXT) \
ldap/servers/slapd/tools/ldclt/ldclt_bin-data.$(OBJEXT) \
ldap/servers/slapd/tools/ldclt/ldclt_bin-ldapfct.$(OBJEXT) \
ldap/servers/slapd/tools/ldclt/ldclt_bin-ldclt.$(OBJEXT) \
@@ -872,7 +874,6 @@ PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
-SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
SOLARIS_FALSE = @SOLARIS_FALSE@
@@ -1780,7 +1781,8 @@ ldap_agent_bin_LDADD = $(NETSNMP_LINK)
#------------------------
# ldclt
#------------------------
-ldclt_bin_SOURCES = ldap/servers/slapd/tools/ldclt/data.c \
+ldclt_bin_SOURCES = ldap/servers/slapd/tools/ldaptool-sasl.c \
+ ldap/servers/slapd/tools/ldclt/data.c \
ldap/servers/slapd/tools/ldclt/ldapfct.c \
ldap/servers/slapd/tools/ldclt/ldclt.c \
ldap/servers/slapd/tools/ldclt/ldcltU.c \
@@ -1791,7 +1793,7 @@ ldclt_bin_SOURCES = ldap/servers/slapd/tools/ldclt/data.c \
ldap/servers/slapd/tools/ldclt/utils.c \
ldap/servers/slapd/tools/ldclt/version.c \
ldap/servers/slapd/tools/ldclt/workarounds.c $(am__append_1)
-ldclt_bin_CPPFLAGS = $(AM_CPPFLAGS) @ldapsdk_inc@ @nss_inc@ @nspr_inc@
+ldclt_bin_CPPFLAGS = $(AM_CPPFLAGS) -I$(srcdir)/ldap/servers/slapd/tools @ldapsdk_inc@ @sasl_inc@ @nss_inc@ @nspr_inc@
ldclt_bin_LDADD = $(NSPR_LINK) $(NSS_LINK) $(LDAPSDK_LINK) $(SASL_LINK) $(LIBNSL) $(LIBSOCKET) $(LIBDL)
#------------------------
@@ -3553,6 +3555,9 @@ ldap/servers/slapd/ldap_agent_bin-agtmmap.$(OBJEXT): \
ldap-agent-bin$(EXEEXT): $(ldap_agent_bin_OBJECTS) $(ldap_agent_bin_DEPENDENCIES)
@rm -f ldap-agent-bin$(EXEEXT)
$(LINK) $(ldap_agent_bin_LDFLAGS) $(ldap_agent_bin_OBJECTS) $(ldap_agent_bin_LDADD) $(LIBS)
+ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.$(OBJEXT): \
+ ldap/servers/slapd/tools/$(am__dirstamp) \
+ ldap/servers/slapd/tools/$(DEPDIR)/$(am__dirstamp)
ldap/servers/slapd/tools/ldclt/$(am__dirstamp):
@$(mkdir_p) ldap/servers/slapd/tools/ldclt
@: > ldap/servers/slapd/tools/ldclt/$(am__dirstamp)
@@ -4492,6 +4497,7 @@ mostlyclean-compile:
-rm -f ldap/servers/slapd/tools/ldclt/ldclt_bin-utils.$(OBJEXT)
-rm -f ldap/servers/slapd/tools/ldclt/ldclt_bin-version.$(OBJEXT)
-rm -f ldap/servers/slapd/tools/ldclt/ldclt_bin-workarounds.$(OBJEXT)
+ -rm -f ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.$(OBJEXT)
-rm -f ldap/servers/slapd/tools/ldif_bin-ldif.$(OBJEXT)
-rm -f ldap/servers/slapd/tools/migratecred_bin-migratecred.$(OBJEXT)
-rm -f ldap/servers/slapd/tools/mmldif_bin-mmldif.$(OBJEXT)
@@ -4988,6 +4994,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/back-ldbm/$(DEPDIR)/libback_ldbm_la-vlv_key.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/back-ldbm/$(DEPDIR)/libback_ldbm_la-vlv_srch.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/tools/$(DEPDIR)/dbscan_bin-dbscan.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/tools/$(DEPDIR)/ldif_bin-ldif.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/tools/$(DEPDIR)/migratecred_bin-migratecred.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/tools/$(DEPDIR)/mmldif_bin-mmldif.Po@am__quote@
@@ -7672,6 +7679,20 @@ ldap/servers/slapd/ldap_agent_bin-agtmmap.obj: ldap/servers/slapd/agtmmap.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldap_agent_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ldap_agent_bin-agtmmap.obj `if test -f 'ldap/servers/slapd/agtmmap.c'; then $(CYGPATH_W) 'ldap/servers/slapd/agtmmap.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/agtmmap.c'; fi`
+ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.o: ldap/servers/slapd/tools/ldaptool-sasl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldclt_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.o -MD -MP -MF "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo" -c -o ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.o `test -f 'ldap/servers/slapd/tools/ldaptool-sasl.c' || echo '$(srcdir)/'`ldap/servers/slapd/tools/ldaptool-sasl.c; \
+@am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo" "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Po"; else rm -f "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/tools/ldaptool-sasl.c' object='ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldclt_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.o `test -f 'ldap/servers/slapd/tools/ldaptool-sasl.c' || echo '$(srcdir)/'`ldap/servers/slapd/tools/ldaptool-sasl.c
+
+ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.obj: ldap/servers/slapd/tools/ldaptool-sasl.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldclt_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.obj -MD -MP -MF "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo" -c -o ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.obj `if test -f 'ldap/servers/slapd/tools/ldaptool-sasl.c'; then $(CYGPATH_W) 'ldap/servers/slapd/tools/ldaptool-sasl.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/tools/ldaptool-sasl.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo" "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Po"; else rm -f "ldap/servers/slapd/tools/$(DEPDIR)/ldclt_bin-ldaptool-sasl.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/tools/ldaptool-sasl.c' object='ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldclt_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/tools/ldclt_bin-ldaptool-sasl.obj `if test -f 'ldap/servers/slapd/tools/ldaptool-sasl.c'; then $(CYGPATH_W) 'ldap/servers/slapd/tools/ldaptool-sasl.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/tools/ldaptool-sasl.c'; fi`
+
ldap/servers/slapd/tools/ldclt/ldclt_bin-data.o: ldap/servers/slapd/tools/ldclt/data.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ldclt_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/tools/ldclt/ldclt_bin-data.o -MD -MP -MF "ldap/servers/slapd/tools/ldclt/$(DEPDIR)/ldclt_bin-data.Tpo" -c -o ldap/servers/slapd/tools/ldclt/ldclt_bin-data.o `test -f 'ldap/servers/slapd/tools/ldclt/data.c' || echo '$(srcdir)/'`ldap/servers/slapd/tools/ldclt/data.c; \
@am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/tools/ldclt/$(DEPDIR)/ldclt_bin-data.Tpo" "ldap/servers/slapd/tools/ldclt/$(DEPDIR)/ldclt_bin-data.Po"; else rm -f "ldap/servers/slapd/tools/ldclt/$(DEPDIR)/ldclt_bin-data.Tpo"; exit 1; fi
diff --git a/aclocal.m4 b/aclocal.m4
index c7c1c6fb..9064efa9 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1578,27 +1578,10 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '[#]line __oline__ "configure"' > conftest.$ac_ext
- if AC_TRY_EVAL(ac_compile); then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -4305,9 +4288,6 @@ CC=$lt_[]_LT_AC_TAGVAR(compiler, $1)
# Is the compiler the GNU C compiler?
with_gcc=$_LT_AC_TAGVAR(GCC, $1)
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -4441,11 +4421,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1)
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1)
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -4457,7 +4437,7 @@ postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1)
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1)
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -4537,7 +4517,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1)
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -6373,7 +6353,6 @@ do
done
done
done
-IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -6406,7 +6385,6 @@ for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
done
])
SED=$lt_cv_path_SED
-AC_SUBST([SED])
AC_MSG_RESULT([$SED])
])
diff --git a/configure b/configure
index 55ffadf3..b8c40d75 100755
--- a/configure
+++ b/configure
@@ -465,7 +465,7 @@ ac_includes_default="\
#endif"
ac_default_prefix=/opt/$PACKAGE_NAME
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE SED EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_bitwise_TRUE enable_bitwise_FALSE configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir shared_lib_suffix HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT build build_cpu build_vendor build_os host host_cpu host_vendor host_os CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CC CFLAGS ac_ct_CC CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBOBJS debug_defs BUNDLE_TRUE BUNDLE_FALSE enable_pam_passthru_TRUE enable_pam_passthru_FALSE enable_dna_TRUE enable_dna_FALSE enable_ldapi_TRUE enable_ldapi_FALSE enable_bitwise_TRUE enable_bitwise_FALSE configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir perldir instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL LIBCSTD LIBCRUN initdir shared_lib_suffix HPUX_TRUE HPUX_FALSE SOLARIS_TRUE SOLARIS_FALSE PKG_CONFIG ICU_CONFIG NETSNMP_CONFIG nspr_inc nspr_lib nspr_libdir nss_inc nss_lib nss_libdir ldapsdk_inc ldapsdk_lib ldapsdk_libdir ldapsdk_bindir db_inc db_incdir db_lib db_libdir db_bindir db_libver sasl_inc sasl_lib sasl_libdir svrcore_inc svrcore_lib icu_lib icu_inc icu_bin netsnmp_inc netsnmp_lib netsnmp_libdir netsnmp_link brand capbrand vendor LTLIBOBJS'
ac_subst_files=''
# Initialize some variables set by options.
@@ -3835,7 +3835,6 @@ do
done
done
done
-IFS=$as_save_IFS
lt_ac_max=0
lt_ac_count=0
# Add /usr/xpg4/bin/sed as it is typically found on Solaris
@@ -3870,7 +3869,6 @@ done
fi
SED=$lt_cv_path_SED
-
echo "$as_me:$LINENO: result: $SED" >&5
echo "${ECHO_T}$SED" >&6
@@ -4311,7 +4309,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 4314 "configure"' > conftest.$ac_ext
+ echo '#line 4312 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -5446,7 +5444,7 @@ fi
# Provide some information about the compiler.
-echo "$as_me:5449:" \
+echo "$as_me:5447:" \
"checking for Fortran 77 compiler version" >&5
ac_compiler=`set X $ac_compile; echo $2`
{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -6509,11 +6507,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6512: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6510: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6516: \$? = $ac_status" >&5
+ echo "$as_me:6514: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6777,11 +6775,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6780: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6778: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:6784: \$? = $ac_status" >&5
+ echo "$as_me:6782: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -6881,11 +6879,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:6884: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:6882: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:6888: \$? = $ac_status" >&5
+ echo "$as_me:6886: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -8346,31 +8344,10 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 8353 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -9247,7 +9224,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9250 "configure"
+#line 9227 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9347,7 +9324,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF
-#line 9350 "configure"
+#line 9327 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -9678,9 +9655,6 @@ CC=$lt_compiler
# Is the compiler the GNU C compiler?
with_gcc=$GCC
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -9814,11 +9788,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -9830,7 +9804,7 @@ postdeps=$lt_postdeps
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -9910,7 +9884,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -11690,11 +11664,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11693: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11667: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:11697: \$? = $ac_status" >&5
+ echo "$as_me:11671: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -11794,11 +11768,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:11797: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:11771: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:11801: \$? = $ac_status" >&5
+ echo "$as_me:11775: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -12326,31 +12300,10 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 12333 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -12734,9 +12687,6 @@ CC=$lt_compiler_CXX
# Is the compiler the GNU C compiler?
with_gcc=$GCC_CXX
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -12870,11 +12820,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_CXX
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_CXX
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -12886,7 +12836,7 @@ postdeps=$lt_postdeps_CXX
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -12966,7 +12916,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_CXX
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -13388,11 +13338,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13391: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13341: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:13395: \$? = $ac_status" >&5
+ echo "$as_me:13345: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -13492,11 +13442,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:13495: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:13445: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:13499: \$? = $ac_status" >&5
+ echo "$as_me:13449: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -14937,31 +14887,10 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 14944 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -15345,9 +15274,6 @@ CC=$lt_compiler_F77
# Is the compiler the GNU C compiler?
with_gcc=$GCC_F77
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -15481,11 +15407,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_F77
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_F77
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -15497,7 +15423,7 @@ postdeps=$lt_postdeps_F77
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_F77
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -15577,7 +15503,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_F77
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -15719,11 +15645,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15722: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15648: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15726: \$? = $ac_status" >&5
+ echo "$as_me:15652: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -15987,11 +15913,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:15990: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15916: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15994: \$? = $ac_status" >&5
+ echo "$as_me:15920: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output.
@@ -16091,11 +16017,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'`
- (eval echo "\"\$as_me:16094: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16020: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16098: \$? = $ac_status" >&5
+ echo "$as_me:16024: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext
then
# The compiler can only warn and ignore the option if not recognized
@@ -17556,31 +17482,10 @@ linux*)
# before this can be enabled.
hardcode_into_libs=yes
- # find out which ABI we are using
- libsuff=
- case "$host_cpu" in
- x86_64*|s390x*|powerpc64*)
- echo '#line 17563 "configure"' > conftest.$ac_ext
- if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
- (eval $ac_compile) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; then
- case `/usr/bin/file conftest.$ac_objext` in
- *64-bit*)
- libsuff=64
- sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}"
- ;;
- esac
- fi
- rm -rf conftest*
- ;;
- esac
-
# Append ld.so.conf contents to the search path
if test -f /etc/ld.so.conf; then
- lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
- sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra"
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
fi
# We used to test for /lib/ld.so.1 and disable shared libraries on
@@ -17964,9 +17869,6 @@ CC=$lt_compiler_GCJ
# Is the compiler the GNU C compiler?
with_gcc=$GCC_GCJ
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18100,11 +18002,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_GCJ
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_GCJ
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18116,7 +18018,7 @@ postdeps=$lt_postdeps_GCJ
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18196,7 +18098,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_GCJ
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -18448,9 +18350,6 @@ CC=$lt_compiler_RC
# Is the compiler the GNU C compiler?
with_gcc=$GCC_RC
-gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\`
-gcc_ver=\`gcc -dumpversion\`
-
# An ERE matcher.
EGREP=$lt_EGREP
@@ -18584,11 +18483,11 @@ striplib=$lt_striplib
# Dependencies to place before the objects being linked to create a
# shared library.
-predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+predep_objects=$lt_predep_objects_RC
# Dependencies to place after the objects being linked to create a
# shared library.
-postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+postdep_objects=$lt_postdep_objects_RC
# Dependencies to place before the objects being linked to create a
# shared library.
@@ -18600,7 +18499,7 @@ postdeps=$lt_postdeps_RC
# The library search path used internally by the compiler when linking
# a shared library.
-compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+compiler_lib_search_path=$lt_compiler_lib_search_path_RC
# Method to check whether dependent libraries are shared objects.
deplibs_check_method=$lt_deplibs_check_method
@@ -18680,7 +18579,7 @@ variables_saved_for_relink="$variables_saved_for_relink"
link_all_deplibs=$link_all_deplibs_RC
# Compile-time system search path for libraries
-sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\`
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
# Run-time system search path for libraries
sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
@@ -25959,7 +25858,6 @@ s,@ac_ct_CC@,$ac_ct_CC,;t t
s,@CCDEPMODE@,$CCDEPMODE,;t t
s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t
s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t
-s,@SED@,$SED,;t t
s,@EGREP@,$EGREP,;t t
s,@LN_S@,$LN_S,;t t
s,@ECHO@,$ECHO,;t t
diff --git a/ldap/servers/slapd/saslbind.c b/ldap/servers/slapd/saslbind.c
index d91cd69b..f7435ce4 100644
--- a/ldap/servers/slapd/saslbind.c
+++ b/ldap/servers/slapd/saslbind.c
@@ -54,38 +54,33 @@ static char *serverfqdn;
/*
* utility functions needed by the sasl library
*/
-
-int sasl_os_gethost(char *buf, int len)
-{
- int rc;
-
- rc = gethostname(buf, len);
- LDAPDebug(LDAP_DEBUG_TRACE, "sasl_os_gethost %s\n", buf, 0, 0);
- return ( rc == 0 ? SASL_OK : SASL_FAIL );
-}
-
-void *sasl_mutex_alloc(void)
+void *nssasl_mutex_alloc(void)
{
return PR_NewLock();
}
-int sasl_mutex_lock(void *mutex)
+int nssasl_mutex_lock(void *mutex)
{
PR_Lock(mutex);
return SASL_OK;
}
-int sasl_mutex_unlock(void *mutex)
+int nssasl_mutex_unlock(void *mutex)
{
if (PR_Unlock(mutex) == PR_SUCCESS) return SASL_OK;
return SASL_FAIL;
}
-void sasl_mutex_free(void *mutex)
+void nssasl_mutex_free(void *mutex)
{
PR_DestroyLock(mutex);
}
+void nssasl_free(void *ptr)
+{
+ slapi_ch_free(&ptr);
+}
+
/*
* sasl library callbacks
*/
@@ -603,6 +598,20 @@ int ids_sasl_init(void)
LDAPDebug(LDAP_DEBUG_TRACE, "sasl service fqdn is: %s\n",
serverfqdn, 0, 0);
+ /* Set SASL memory allocation callbacks */
+ sasl_set_alloc(
+ (sasl_malloc_t *)slapi_ch_malloc,
+ (sasl_calloc_t *)slapi_ch_calloc,
+ (sasl_realloc_t *)slapi_ch_realloc,
+ (sasl_free_t *)nssasl_free );
+
+ /* Set SASL mutex callbacks */
+ sasl_set_mutex(
+ (sasl_mutex_alloc_t *)nssasl_mutex_alloc,
+ (sasl_mutex_lock_t *)nssasl_mutex_lock,
+ (sasl_mutex_unlock_t *)nssasl_mutex_unlock,
+ (sasl_mutex_free_t *)nssasl_mutex_free);
+
result = sasl_server_init(ids_sasl_callbacks, "iDS");
if (result != SASL_OK) {
diff --git a/ldap/servers/slapd/tools/ldaptool-sasl.c b/ldap/servers/slapd/tools/ldaptool-sasl.c
new file mode 100755
index 00000000..3658bda9
--- /dev/null
+++ b/ldap/servers/slapd/tools/ldaptool-sasl.c
@@ -0,0 +1,371 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Sun LDAP C SDK.
+ *
+ * The Initial Developer of the Original Code is Sun Microsystems, Inc.
+ *
+ * Portions created by Sun Microsystems, Inc are Copyright (C) 2005
+ * Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ * File for ldaptool routines for SASL
+ */
+
+#include <ldap.h>
+#include "ldaptool.h"
+#include "ldaptool-sasl.h"
+#include <sasl.h>
+#include <stdio.h>
+
+#if defined(HPUX)
+#include <sys/termios.h> /* for tcgetattr and tcsetattr */
+#endif /* HPUX */
+
+#define SASL_PROMPT "Interact"
+
+typedef struct {
+ char *mech;
+ char *authid;
+ char *username;
+ char *passwd;
+ char *realm;
+} ldaptoolSASLdefaults;
+
+static int get_default(ldaptoolSASLdefaults *defaults, sasl_interact_t *interact, unsigned flags);
+static int get_new_value(sasl_interact_t *interact, unsigned flags);
+
+/* WIN32 does not have getlogin() so roll our own */
+#if defined( _WINDOWS ) || defined( _WIN32 )
+#include "LMCons.h"
+static char *getlogin()
+{
+ LPTSTR lpszSystemInfo; /* pointer to system information string */
+ DWORD cchBuff = UNLEN; /* size of user name */
+ static TCHAR tchBuffer[UNLEN + 1]; /* buffer for expanded string */
+
+ lpszSystemInfo = tchBuffer;
+ GetUserName(lpszSystemInfo, &cchBuff);
+
+ return lpszSystemInfo;
+}
+#endif /* _WINDOWS || _WIN32 */
+
+/*
+ Note that it is important to use "" (the empty string, length 0) as the default
+ username value for non-interactive cases. This allows the sasl library to find the best
+ possible default. For example, if using GSSAPI, you want the default value for
+ the username to be extracted from the Kerberos tgt. The sasl library will do
+ that for you if you set the default username to "".
+*/
+void *
+ldaptool_set_sasl_defaults ( LDAP *ld, unsigned flags, char *mech, char *authid, char *username,
+ char *passwd, char *realm )
+{
+ ldaptoolSASLdefaults *defaults;
+ char *login = NULL;
+
+ if ((defaults = calloc(sizeof(ldaptoolSASLdefaults), 1)) == NULL) {
+ return NULL;
+ }
+
+ /* Try to get the login name */
+ if ((login = getlogin()) == NULL) {
+ login = "";
+ }
+
+ if (mech) {
+ defaults->mech = strdup(mech);
+ } else {
+ ldap_get_option(ld, LDAP_OPT_X_SASL_MECH, &defaults->mech);
+ }
+
+ if (authid) { /* use explicit passed in value */
+ defaults->authid = strdup(authid);
+ } else { /* use option value if any */
+ ldap_get_option(ld, LDAP_OPT_X_SASL_AUTHCID, &defaults->authid);
+ if (!defaults->authid) {
+ /* Default to the login name that is running the command */
+ defaults->authid = strdup( login );
+ }
+ }
+
+ if (username) { /* use explicit passed in value */
+ defaults->username = strdup(username);
+ } else { /* use option value if any */
+ ldap_get_option(ld, LDAP_OPT_X_SASL_AUTHZID, &defaults->username);
+ if (!defaults->username && (flags == LDAP_SASL_INTERACTIVE)) {
+ /* Default to the login name that is running the command */
+ defaults->username = strdup( login );
+ } else if (!defaults->username) { /* not interactive - use default sasl value */
+ defaults->username = strdup( "" );
+ }
+ }
+
+ if (passwd)
+ defaults->passwd = strdup (passwd);
+ else
+ defaults->passwd = strdup ("");
+
+ if (realm) {
+ defaults->realm = realm;
+ } else {
+ ldap_get_option(ld, LDAP_OPT_X_SASL_REALM, &defaults->realm);
+ }
+
+ return defaults;
+}
+
+void
+ldaptool_free_defaults( void *defaults ) {
+ ldaptoolSASLdefaults *sasl_defaults = defaults;
+
+ if (sasl_defaults) {
+ if (sasl_defaults->mech)
+ free (sasl_defaults->mech);
+
+ if (sasl_defaults->authid)
+ free (sasl_defaults->authid);
+
+ if (sasl_defaults->username)
+ free (sasl_defaults->username);
+
+ if (sasl_defaults->passwd)
+ free (sasl_defaults->passwd);
+
+ free (sasl_defaults);
+ sasl_defaults = NULL;
+ }
+}
+
+int
+ldaptool_sasl_interact( LDAP *ld, unsigned flags, void *defaults, void *prompts ) {
+ sasl_interact_t *interact = NULL;
+ ldaptoolSASLdefaults *sasldefaults = defaults;
+ int rc;
+
+ if (prompts == NULL) {
+ return (LDAP_PARAM_ERROR);
+ }
+
+ for (interact = prompts; interact->id != SASL_CB_LIST_END; interact++) {
+ /* Obtain the default value */
+ if ((rc = get_default(sasldefaults, interact, flags)) != LDAP_SUCCESS) {
+ return (rc);
+ }
+ /* always prompt in interactive mode - only prompt in automatic mode
+ if there is no default - never prompt in quiet mode */
+ if ( (flags == LDAP_SASL_INTERACTIVE) ||
+ ((interact->result == NULL) && (flags == LDAP_SASL_AUTOMATIC)) ) {
+ if ((rc = get_new_value(interact, flags)) != LDAP_SUCCESS)
+ return (rc);
+ }
+
+ }
+ return (LDAP_SUCCESS);
+}
+
+static int
+get_default(ldaptoolSASLdefaults *defaults, sasl_interact_t *interact, unsigned flags) {
+ const char *defvalue = interact->defresult;
+
+ if (defaults != NULL) {
+ switch( interact->id ) {
+ case SASL_CB_AUTHNAME:
+ defvalue = defaults->authid;
+ break;
+ case SASL_CB_USER:
+ defvalue = defaults->username;
+ break;
+ case SASL_CB_PASS:
+ defvalue = defaults->passwd;
+ break;
+ case SASL_CB_GETREALM:
+ defvalue = defaults->realm;
+ break;
+ }
+ }
+
+ if (defvalue != NULL) {
+ interact->result = defvalue;
+ if ((char *)interact->result == NULL)
+ return (LDAP_NO_MEMORY);
+ interact->len = strlen((char *)(interact->result));
+ }
+ return (LDAP_SUCCESS);
+}
+
+/*
+ * This function should always be called in LDAP_SASL_INTERACTIVE mode, or
+ * in LDAP_SASL_AUTOMATIC mode when there is no default value. This function
+ * will print out the challenge, default value, and prompt to get the value.
+ * If there is a default value, the user can just press Return/Enter at the
+ * prompt to use the default value. If there is no default, and the user
+ * didn't enter anything, this will return "" (the empty string) as the
+ * value.
+ */
+static int
+get_new_value(sasl_interact_t *interact, unsigned flags) {
+ char *newvalue = NULL, str[1024];
+ int len = 0;
+
+ if ((interact->id == SASL_CB_ECHOPROMPT) || (interact->id == SASL_CB_NOECHOPROMPT)) {
+ if (interact->challenge) {
+ fprintf(stderr, "Challenge: %s\n", interact->challenge);
+ }
+ }
+
+ if (interact->result) {
+ fprintf(stderr, "Default: %s\n", (char *)interact->result);
+ }
+
+ snprintf(str, sizeof(str), "%s:", interact->prompt?interact->prompt:SASL_PROMPT);
+ str[sizeof(str)-1] = '\0';
+
+ /* Get the new value */
+ if ((interact->id == SASL_CB_PASS) || (interact->id == SASL_CB_NOECHOPROMPT)) {
+ if ((newvalue = ldaptool_getpass( str )) == NULL) {
+ return (LDAP_UNAVAILABLE);
+ }
+ len = strlen(newvalue);
+ } else {
+ fputs(str, stderr);
+ if ((newvalue = fgets(str, sizeof(str), stdin)) == NULL) {
+ return (LDAP_UNAVAILABLE);
+ }
+ len = strlen(str);
+ if ((len > 0) && (str[len - 1] == '\n')) {
+ str[len - 1] = '\0';
+ len--;
+ }
+ }
+
+ if (len > 0) { /* user typed in something - use it */
+ if (interact->result) {
+ free((void *)interact->result);
+ }
+ interact->result = strdup(newvalue);
+ memset(newvalue, '\0', len);
+
+ if (interact->result == NULL) {
+ return (LDAP_NO_MEMORY);
+ }
+ interact->len = len;
+ } else { /* use default or "" */
+ if (!interact->result) {
+ interact->result = "";
+ }
+ interact->len = strlen(interact->result);
+ }
+ return (LDAP_SUCCESS);
+}
+
+/*
+ * Implements getpass like functionality for supported platforms.
+ *
+ * It is the callers responsibility to zero out the memory used
+ * to store the password and to free it when it's finished with
+ * it.
+ */
+char *
+ldaptool_getpass ( const char *prompt )
+{
+ char *pass;
+
+#if defined(_WIN32)
+ char pbuf[257];
+ fputs(prompt,stdout);
+ fflush(stdout);
+ if (fgets(pbuf,256,stdin) == NULL) {
+ pass = NULL;
+ } else {
+ char *tmp;
+
+ tmp = strchr(pbuf,'\n');
+ if (tmp) *tmp = '\0';
+ tmp = strchr(pbuf,'\r');
+ if (tmp) *tmp = '\0';
+ pass = strdup(pbuf);
+ }
+#else
+#if defined(SOLARIS)
+ /* 256 characters on Solaris */
+ pass = (char *)getpassphrase(prompt);
+#else
+#if defined(HPUX)
+ /* HP-UX has deprecated their password asking function, so we have
+ * to resort to doing it the hard way . . . */
+ char pbuf[257];
+ struct termios termstat;
+ tcflag_t savestat;
+ /* Only perform terminal manipulation if stdin is a terminal */
+ int havetty = isatty(fileno(stdin));
+
+ fputs(prompt, stdout);
+ fflush(stdout);
+
+ if(havetty) {
+ if(tcgetattr(fileno(stdin), &termstat) < 0) {
+ perror( "tcgetattr" );
+ exit( LDAP_LOCAL_ERROR );
+ }
+ savestat = termstat.c_lflag;
+ termstat.c_lflag &= ~(ECHO | ECHOE | ECHOK);
+ termstat.c_lflag |= (ICANON | ECHONL);
+ if(tcsetattr(fileno(stdin), TCSANOW, &termstat) < 0) {
+ perror( "tcsetattr" );
+ exit( LDAP_LOCAL_ERROR );
+ }
+ }
+ if (fgets(pbuf,256,stdin) == NULL) {
+ pass = NULL;
+ } else {
+ char *tmp;
+ pass = NULL;
+ tmp = strchr(pbuf,'\n');
+ if (tmp)
+ *tmp = '\0';
+ pass = strdup(pbuf);
+ }
+ if(havetty) {
+ termstat.c_lflag = savestat;
+ if(tcsetattr(fileno(stdin), TCSANOW, &termstat) < 0) {
+ perror( "tcgetattr" );
+ exit( LDAP_LOCAL_ERROR );
+ }
+ }
+#else
+ /* limited to 16 chars on Tru64, 32 on AIX */
+ pass = (char *)getpass(prompt);
+#endif
+#endif
+#endif
+
+ return pass;
+}
diff --git a/ldap/servers/slapd/tools/ldaptool-sasl.h b/ldap/servers/slapd/tools/ldaptool-sasl.h
new file mode 100644
index 00000000..03556152
--- /dev/null
+++ b/ldap/servers/slapd/tools/ldaptool-sasl.h
@@ -0,0 +1,45 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Sun LDAP C SDK.
+ *
+ * The Initial Developer of the Original Code is Sun Microsystems, Inc.
+ *
+ * Portions created by Sun Microsystems, Inc are Copyright (C) 2005
+ * Sun Microsystems, Inc. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+ * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+/*
+ * Include file for ldaptool routines for SASL
+ */
+
+void *ldaptool_set_sasl_defaults ( LDAP *ld, unsigned flags, char *mech, char *authid, char *username, char *passwd, char *realm );
+void ldaptool_free_defaults( void *defaults );
+int ldaptool_sasl_interact ( LDAP *ld, unsigned flags, void *defaults, void *p );
+char *
+ldaptool_getpass ( const char *prompt );
diff --git a/ldap/servers/slapd/tools/ldaptool.h b/ldap/servers/slapd/tools/ldaptool.h
new file mode 100644
index 00000000..e85c4d0f
--- /dev/null
+++ b/ldap/servers/slapd/tools/ldaptool.h
@@ -0,0 +1,208 @@
+/* ***** BEGIN LICENSE BLOCK *****
+ * Version: MPL 1.1/GPL 2.0/LGPL 2.1
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ * http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * The Original Code is Mozilla Communicator client code, released
+ * March 31, 1998.
+ *
+ * The Initial Developer of the Original Code is
+ * Netscape Communications Corporation.
+ * Portions created by the Initial Developer are Copyright (C) 1998-1999
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either of the GNU General Public License Version 2 or later (the "GPL"),
+ * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+ * in which case the provisions of the GPL or the LGPL are applicable instead
+ * of those above. If you wish to allow use of your version of this file only
+ * under the terms of either the GPL or the LGPL, and not to allow others to
+ * use your version of this file under the terms of the MPL, indicate your
+ * decision by deleting the provisions above and replace them with the notice
+ * and other provisions required by the GPL or the LGPL. If you do not delete
+ * the provisions above, a recipient may use your version of this file under
+ * the terms of any one of the MPL, the GPL or the LGPL.
+ *
+ * ***** END LICENSE BLOCK ***** */
+
+#ifndef _LDAPTOOL_H
+#define _LDAPTOOL_H
+
+/* XXX:mhein The following is a workaround for the redefinition of */
+/* const problem on OSF. Fix to be provided by NSS */
+/* This is a pretty benign workaround for us which */
+/* should not cause problems in the future even if */
+/* we forget to take it out :-) */
+
+#ifdef OSF1V4D
+#ifndef __STDC__
+# define __STDC__
+#endif /* __STDC__ */
+#endif /* OSF1V4D */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#ifdef AIX
+#include <strings.h>
+#endif
+
+
+#ifdef SCOOS
+#include <sys/types.h>
+#endif
+
+#ifdef _WINDOWS
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+extern int getopt (int argc, char *const *argv, const char *optstring);
+#include <io.h> /* for _mktemp() */
+#define LDAPTOOL_MKTEMP( p ) _mktemp( p )
+#else
+#include <sys/file.h>
+#include <sys/stat.h>
+#include <unistd.h>
+
+#define LDAPTOOL_MKTEMP( p ) mktemp( p )
+#endif
+
+#ifdef LINUX
+#include <getopt.h> /* not always included from unistd.h */
+#endif
+
+#include <ctype.h>
+
+#ifndef SCOOS
+#include <sys/types.h>
+#endif
+
+#include <sys/stat.h>
+#include <fcntl.h>
+
+#if defined(NET_SSL)
+#include <ssl.h>
+#endif
+
+#include <portable.h>
+#include <ldap.h>
+#include <ldaplog.h>
+#include <ldif.h>
+
+#if defined(NET_SSL)
+#include <ldap_ssl.h>
+#endif
+
+#include <ldappr.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * shared macros, structures, etc.
+ */
+#define LDAPTOOL_RESULT_IS_AN_ERROR( rc ) \
+ ( (rc) != LDAP_SUCCESS && (rc) != LDAP_COMPARE_TRUE \
+ && (rc) != LDAP_COMPARE_FALSE )
+
+#define LDAPTOOL_DEFSEP "=" /* used by ldapcmp and ldapsearch */
+#define LDAPTOOL_DEFHOST "localhost"
+#define LDAPTOOL_DEFSSLSTRENGTH LDAPSSL_AUTH_CERT
+#define LDAPTOOL_DEFCERTDBPATH "."
+#define LDAPTOOL_DEFKEYDBPATH "."
+#define LDAPTOOL_DEFREFHOPLIMIT 5
+
+#define LDAPTOOL_SAFEREALLOC( ptr, size ) ( ptr == NULL ? malloc( size ) : \
+ realloc( ptr, size ))
+/* this defines the max number of control requests for the tools */
+#define CONTROL_REQUESTS 50
+
+/*
+ * globals (defined in common.c)
+ */
+extern char *ldaptool_host;
+extern char *ldaptool_host2;
+extern int ldaptool_port;
+extern int ldaptool_port2;
+extern int ldaptool_verbose;
+extern int ldaptool_not;
+extern int ldaptool_nobind;
+extern int ldaptool_noconv_passwd;
+extern char *ldaptool_progname;
+extern FILE *ldaptool_fp;
+extern char *ldaptool_charset;
+extern LDAPControl *ldaptool_request_ctrls[];
+#ifdef LDAP_DEBUG
+extern int ldaptool_dbg_lvl;
+#define LDAPToolDebug(lvl,fmt,arg1,arg2,arg3) if (lvl & ldaptool_dbg_lvl) { fprintf(stderr,fmt,arg1,arg2,arg3); }
+#else
+#define LDAPToolDebug(lvl,fmt,arg1,arg2,arg3)
+#endif /* LDAP_DEBUG */
+
+
+/*
+ * function prototypes
+ */
+void ldaptool_common_usage( int two_hosts );
+int ldaptool_process_args( int argc, char **argv, char *extra_opts,
+ int two_hosts, void (*extra_opt_callback)( int option, char *optarg ));
+LDAP *ldaptool_ldap_init( int second_host );
+void ldaptool_bind( LDAP *ld );
+void ldaptool_cleanup( LDAP *ld );
+int ldaptool_print_lderror( LDAP *ld, char *msg, int check4ssl );
+#define LDAPTOOL_CHECK4SSL_NEVER 0
+#define LDAPTOOL_CHECK4SSL_ALWAYS 1
+#define LDAPTOOL_CHECK4SSL_IF_APPROP 2 /* if appropriate */
+LDAPControl *ldaptool_create_manage_dsait_control( void );
+void ldaptool_print_referrals( char **refs );
+int ldaptool_print_extended_response( LDAP *ld, LDAPMessage *res, char *msg );
+LDAPControl *ldaptool_create_proxyauth_control( LDAP *ld );
+LDAPControl *ldaptool_create_geteffectiveRights_control ( LDAP *ld,
+ const char *authzid, const char **attrlist );
+void ldaptool_add_control_to_array( LDAPControl *ctrl, LDAPControl **array);
+void ldaptool_reset_control_array( LDAPControl **array );
+char *ldaptool_get_tmp_dir( void );
+char *ldaptool_local2UTF8( const char *s, const char *desc );
+char *ldaptool_getpass( const char *prompt );
+char *ldaptool_read_password( FILE *mod_password_fp );
+int ldaptool_berval_is_ascii( const struct berval *bvp );
+int ldaptool_sasl_bind_s( LDAP *ld, const char *dn, const char *mechanism,
+ const struct berval *cred, LDAPControl **serverctrls,
+ LDAPControl **clientctrls, struct berval **servercredp, char *msg );
+int ldaptool_simple_bind_s( LDAP *ld, const char *dn, const char *passwd,
+ LDAPControl **serverctrls, LDAPControl **clientctrls, char *msg );
+int ldaptool_add_ext_s( LDAP *ld, const char *dn, LDAPMod **attrs,
+ LDAPControl **serverctrls, LDAPControl **clientctrls, char *msg );
+int ldaptool_modify_ext_s( LDAP *ld, const char *dn, LDAPMod **mods,
+ LDAPControl **serverctrls, LDAPControl **clientctrls, char *msg );
+int ldaptool_delete_ext_s( LDAP *ld, const char *dn, LDAPControl **serverctrls,
+ LDAPControl **clientctrls, char *msg );
+int ldaptool_rename_s( LDAP *ld, const char *dn, const char *newrdn,
+ const char *newparent, int deleteoldrdn, LDAPControl **serverctrls,
+ LDAPControl **clientctrls, char *msg );
+int ldaptool_compare_ext_s( LDAP *ld, const char *dn, const char *attrtype,
+ const struct berval *bvalue, LDAPControl **serverctrls,
+ LDAPControl **clientctrls, char *msg );
+int ldaptool_boolean_str2value ( const char *s, int strict );
+int ldaptool_parse_ctrl_arg ( char *ctrl_arg, char sep, char **ctrl_oid,
+ int *ctrl_criticality, char **ctrl_value, int *vlen);
+FILE *ldaptool_open_file ( const char *filename, const char * mode);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* LDAPTOOL_H */
diff --git a/ldap/servers/slapd/tools/ldclt/ldapfct.c b/ldap/servers/slapd/tools/ldclt/ldapfct.c
index c9078e66..4ba5965d 100644
--- a/ldap/servers/slapd/tools/ldclt/ldapfct.c
+++ b/ldap/servers/slapd/tools/ldclt/ldapfct.c
@@ -254,6 +254,9 @@ dd/mm/yy | Author | Comments
#include "ldclt.h" /* This tool's include file */
#include "utils.h" /* Utilities functions */ /*JLS 14-11-00*/
+#include <sasl.h>
+#include "ldaptool-sasl.h"
+
@@ -656,7 +659,6 @@ connectToServer (
*/
if (tttctx->ldapCtx == NULL)
{
-#ifdef LDCLTSSL
/*
* SSL is enabled ?
*/
@@ -703,7 +705,6 @@ connectToServer (
}
}
} else {
-#endif
/*
* connection initialization in normal, unencrypted mode
*/
@@ -719,9 +720,7 @@ connectToServer (
fflush (stdout);
return (-1);
}
-#ifdef LDCLTSSL
}
-#endif
if (mctx.mode & LDAP_V2)
v2v3 = LDAP_VERSION2;
@@ -752,7 +751,8 @@ connectToServer (
* below in this function ?
* 03-05-01 : no cleanup I think, cf M2_RNDBINDFILE
*/
- if ((mctx.bindDN == NULL) && (!(mctx.mod2 & M2_RNDBINDFILE))) /*JLS 03-05-01*/
+ if ((mctx.bindDN == NULL) && ((!(mctx.mod2 & M2_RNDBINDFILE))
+ && (!(mctx.mod2 & M2_SASLAUTH))))
{ /*JLS 05-03-01*/
tttctx->binded = 1; /*JLS 05-03-01*/
return (0); /*JLS 05-03-01*/
@@ -761,7 +761,6 @@ connectToServer (
/*
* Maybe we should bind ?
*/
-#ifdef LDCLTSSL
/*
* for SSL client authentication, SASL BIND is used
*/
@@ -804,10 +803,50 @@ connectToServer (
return (-1); /*JLS 18-12-00*/
} /*JLS 18-12-00*/
}
- }
- else
- {
-#endif /* LDCLTSSL */
+ } else if ((mctx.mod2 & M2_SASLAUTH) && ((!(tttctx->binded)) ||
+ (mctx.mode & BIND_EACH_OPER))) {
+ void *defaults;
+ LDAPControl **rctrls = NULL;
+
+ if ( mctx.sasl_mech == NULL) {
+ fprintf( stderr, "Please specify the SASL mechanism name when "
+ "using SASL options\n");
+ return (-1);
+ }
+
+ if ( mctx.sasl_secprops != NULL) {
+ ret = ldap_set_option( tttctx->ldapCtx, LDAP_OPT_X_SASL_SECPROPS,
+ (void *) mctx.sasl_secprops );
+
+ if ( ret != LDAP_SUCCESS ) {
+ fprintf( stderr, "Unable to set LDAP_OPT_X_SASL_SECPROPS: %s\n",
+ mctx.sasl_secprops );
+ return (-1);
+ }
+ }
+
+ defaults = ldaptool_set_sasl_defaults( tttctx->ldapCtx, mctx.sasl_flags, mctx.sasl_mech,
+ mctx.sasl_authid, mctx.sasl_username, mctx.passwd, mctx.sasl_realm );
+ if (defaults == NULL) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+
+ ret = ldap_sasl_interactive_bind_ext_s( tttctx->ldapCtx, mctx.bindDN, mctx.sasl_mech,
+ NULL, NULL, mctx.sasl_flags,
+ ldaptool_sasl_interact, defaults, NULL );
+ if (ret != LDAP_SUCCESS ) {
+ tttctx->binded = 0;
+ if (!(mctx.mode & QUIET))
+ ldap_perror( tttctx->ldapCtx, "Bind Error" );
+ if (addErrorStat (ret) < 0)
+ return (-1);
+ } else {
+ tttctx->binded = 1;
+ }
+
+ ldaptool_free_defaults( defaults );
+ } else {
if (((mctx.bindDN != NULL) || (mctx.mod2 & M2_RNDBINDFILE)) && /*03-05-01*/
((!(tttctx->binded)) || (mctx.mode & BIND_EACH_OPER)))
{
@@ -857,9 +896,7 @@ connectToServer (
} /*JLS 18-12-00*/
}
}
-#ifdef LDCLTSSL
}
-#endif
/*
* Normal end
@@ -1769,7 +1806,6 @@ createMissingNodes (
if (mctx.mode & VERY_VERBOSE) /*JLS 14-12-00*/
printf ("ldclt[%d]: T%03d: must connect to the server.\n",
mctx.pid, tttctx->thrdNum);
-#ifdef LDCLTSSL
/*
* SSL is enabled ?
*/
@@ -1815,7 +1851,6 @@ createMissingNodes (
}
}
} else {
-#endif
/*
* connection initialization in normal, unencrypted mode
*/
@@ -1827,9 +1862,7 @@ createMissingNodes (
fflush (stdout);
return (-1);
}
-#ifdef LDCLTSSL
}
-#endif
if (mctx.mode & LDAP_V2)
v2v3 = LDAP_VERSION2;
@@ -1848,7 +1881,6 @@ createMissingNodes (
/*
* Bind to the server
*/
-#ifdef LDCLTSSL
/*
* for SSL client authentication, SASL BIND is used
*/
@@ -1867,7 +1899,6 @@ createMissingNodes (
return (-1);
}
} else {
-#endif
ret = ldap_simple_bind_s (cnx, tttctx->bufBindDN, tttctx->bufPasswd);
if (ret != LDAP_SUCCESS)
{
@@ -1882,9 +1913,7 @@ createMissingNodes (
return (-1);
}
}
-#ifdef LDCLTSSL
}
-#endif
/*
* Create the entry
@@ -3276,7 +3305,9 @@ doBindOnly (
*/
if (connectToServer (tttctx) < 0)
return (-1);
- if (!(tttctx->binded))
+
+ /* don't count failed binds unless counteach option is used */
+ if (!(tttctx->binded) && !(mctx.mode & COUNT_EACH))
return (0);
if (incrementNbOpers (tttctx) < 0)
diff --git a/ldap/servers/slapd/tools/ldclt/ldclt.c b/ldap/servers/slapd/tools/ldclt/ldclt.c
index 2c7048a0..c4292467 100644
--- a/ldap/servers/slapd/tools/ldclt/ldclt.c
+++ b/ldap/servers/slapd/tools/ldclt/ldclt.c
@@ -1644,7 +1644,6 @@ basicInit (void)
}
}
-#ifdef LDCLTSSL
/*
* SSL is enabled ?
*/
@@ -1677,7 +1676,6 @@ basicInit (void)
}
}
}
-#endif /* LDCLTSSL */
/*
* Specific scenarios initialization...
@@ -1753,6 +1751,8 @@ dumpModeValues (void)
printf (" ssl");
if (mctx.mode & CLTAUTH)
printf (" ssl_with_client_authentication"); /* BK 23-11-00*/
+ if (mctx.mod2 & M2_SASLAUTH)
+ printf (" saslauth");
if (mctx.mode & SMOOTHSHUTDOWN) /*JLS 17-11-00*/
printf (" smoothshutdown"); /*JLS 17-11-00*/
if (mctx.mode & DONT_SLEEP_DOWN) /*JLS 14-03-01*/
@@ -1857,6 +1857,104 @@ decodeScopeParams (
+/* ****************************************************************************
+ FUNCTION : saslSetParam
+ PURPOSE : Sets SASL parameters
+ INPUT : saslarg = value to decode
+ OUTPUT : None.
+ RETURN : -1 if error, 0 otherwise.
+ DESCRIPTION : Copied from Mozilla LDAP C SDK (common.c)
+ *****************************************************************************/
+int
+saslSetParam (
+ char *saslarg)
+{
+ char *attr = NULL;
+ int argnamelen;
+
+ if (saslarg == NULL) {
+ fprintf (stderr, "Error: missing SASL argument\n");
+ return (-1);
+ }
+
+ attr = strchr(saslarg, '=');
+ if (attr == NULL) {
+ fprintf( stderr, "Didn't find \"=\" character in %s\n", saslarg);
+ return (-1);
+ }
+
+ argnamelen = attr - saslarg;
+ attr++;
+
+ if (!strncasecmp(saslarg, "secProp", argnamelen)) {
+ if ( mctx.sasl_secprops != NULL ) {
+ fprintf( stderr, "secProp previously specified\n");
+ return (-1);
+ }
+ if (( mctx.sasl_secprops = strdup(attr)) == NULL ) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+ } else if (!strncasecmp(saslarg, "realm", argnamelen)) {
+ if ( mctx.sasl_realm != NULL ) {
+ fprintf( stderr, "Realm previously specified\n");
+ return (-1);
+ }
+ if (( mctx.sasl_realm = strdup(attr)) == NULL ) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+ } else if (!strncasecmp(saslarg, "authzid", argnamelen)) {
+ if (mctx.sasl_username != NULL) {
+ fprintf( stderr, "Authorization name previously specified\n");
+ return (-1);
+ }
+ if (( mctx.sasl_username = strdup(attr)) == NULL ) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+ } else if (!strncasecmp(saslarg, "authid", argnamelen)) {
+ if ( mctx.sasl_authid != NULL ) {
+ fprintf( stderr, "Authentication name previously specified\n");
+ return (-1);
+ }
+ if (( mctx.sasl_authid = strdup(attr)) == NULL) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+ } else if (!strncasecmp(saslarg, "mech", argnamelen)) {
+ if ( mctx.sasl_mech != NULL ) {
+ fprintf( stderr, "Mech previously specified\n");
+ return (-1);
+ }
+ if (( mctx.sasl_mech = strdup(attr)) == NULL) {
+ perror ("malloc");
+ exit (LDAP_NO_MEMORY);
+ }
+ } else if (!strncasecmp(saslarg, "flags", argnamelen)) {
+ int len = strlen(attr);
+ if (len && !strncasecmp(attr, "automatic", len)) {
+ mctx.sasl_flags = LDAP_SASL_AUTOMATIC;
+ } else if (len && !strncasecmp(attr, "interactive", len)) {
+ mctx.sasl_flags = LDAP_SASL_INTERACTIVE;
+ } else if (len && !strncasecmp(attr, "quiet", len)) {
+ mctx.sasl_flags = LDAP_SASL_QUIET;
+ } else {
+ fprintf(stderr, "Invalid SASL flags value [%s]: must be one of "
+ "automatic, interactive, or quiet\n", attr);
+ return (-1);
+ }
+ } else {
+ fprintf (stderr, "Invalid SASL attribute name %s\n", saslarg);
+ return (-1);
+ }
+ return 0;
+}
+
+
+
+
+
/* New function */ /*JLS 08-03-01*/
/* ****************************************************************************
FUNCTION : decodeReferralParams
@@ -2480,46 +2578,52 @@ main (
/*
* Initialization
*/
- mctx.attrlistNb = 0; /*JLS 15-03-01*/
- mctx.attrsonly = DEF_ATTRSONLY; /*JLS 03-01-01*/
- mctx.baseDN = "o=sun,c=us";
- mctx.baseDNLow = -1; /*JLS 13-11-00*/
- mctx.baseDNHigh = -1; /*JLS 13-11-00*/
- mctx.bindDN = NULL;
- mctx.bindDNLow = -1; /*JLS 05-01-01*/
- mctx.bindDNHigh = -1; /*JLS 05-01-01*/
- mctx.dlf = NULL; /*JLS 23-03-01*/
- mctx.exitStatus = EXIT_OK; /*JLS 25-08-00*/
- mctx.filter = NULL;
- mctx.globStatsCnt = DEF_GLOBAL_NB; /*JLS 08-08-00*/
- mctx.hostname = "localhost";
- mctx.ignErrNb = 0;
- mctx.images = NULL; /*JLS 17-11-00*/
- mctx.imagesDir = DEF_IMAGES_PATH; /*JLS 16-11-00*/
- mctx.inactivMax = DEF_INACTIV_MAX;
- mctx.maxErrors = DEF_MAX_ERRORS;
- mctx.mode = NOTHING;
- mctx.mod2 = NOTHING;
- mctx.nbNoActivity = 0;
- mctx.nbSamples = -1;
- mctx.nbThreads = DEF_NB_THREADS;
- mctx.opListTail = NULL;
- mctx.passwd = NULL;
- mctx.pid = getpid();
- mctx.port = DEF_PORT;
- mctx.randomLow = -1;
- mctx.randomHigh = -1;
- mctx.referral = DEF_REFERRAL; /*JLS 08-03-01*/
- mctx.sampling = DEF_SAMPLING;
- mctx.scope = DEF_SCOPE;
- mctx.slaveConn = 0;
- mctx.slavesNb = 0;
- mctx.timeout = DEF_TIMEOUT;
- mctx.totalReq = -1;
- mctx.waitSec = 0;
- s1ctx.cnxduration = SCALAB01_DEF_CNX_DURATION; /*JLS 12-01-01*/
- s1ctx.maxcnxnb = SCALAB01_DEF_MAX_CNX; /*JLS 12-01-01*/
- s1ctx.wait = SCALAB01_DEF_WAIT_TIME; /*JLS 12-01-01*/
+ mctx.attrlistNb = 0; /*JLS 15-03-01*/
+ mctx.attrsonly = DEF_ATTRSONLY; /*JLS 03-01-01*/
+ mctx.baseDN = "dc=example,dc=com";
+ mctx.baseDNLow = -1; /*JLS 13-11-00*/
+ mctx.baseDNHigh = -1; /*JLS 13-11-00*/
+ mctx.bindDN = NULL;
+ mctx.bindDNLow = -1; /*JLS 05-01-01*/
+ mctx.bindDNHigh = -1; /*JLS 05-01-01*/
+ mctx.dlf = NULL; /*JLS 23-03-01*/
+ mctx.exitStatus = EXIT_OK; /*JLS 25-08-00*/
+ mctx.filter = NULL;
+ mctx.globStatsCnt = DEF_GLOBAL_NB; /*JLS 08-08-00*/
+ mctx.hostname = "localhost";
+ mctx.ignErrNb = 0;
+ mctx.images = NULL; /*JLS 17-11-00*/
+ mctx.imagesDir = DEF_IMAGES_PATH; /*JLS 16-11-00*/
+ mctx.inactivMax = DEF_INACTIV_MAX;
+ mctx.maxErrors = DEF_MAX_ERRORS;
+ mctx.mode = NOTHING;
+ mctx.mod2 = NOTHING;
+ mctx.nbNoActivity = 0;
+ mctx.nbSamples = -1;
+ mctx.nbThreads = DEF_NB_THREADS;
+ mctx.opListTail = NULL;
+ mctx.passwd = NULL;
+ mctx.pid = getpid();
+ mctx.port = DEF_PORT;
+ mctx.randomLow = -1;
+ mctx.randomHigh = -1;
+ mctx.referral = DEF_REFERRAL; /*JLS 08-03-01*/
+ mctx.sampling = DEF_SAMPLING;
+ mctx.sasl_authid = NULL;
+ mctx.sasl_flags = LDAP_SASL_QUIET;
+ mctx.sasl_mech = NULL;
+ mctx.sasl_realm = NULL;
+ mctx.sasl_secprops = NULL;
+ mctx.sasl_username = NULL;
+ mctx.scope = DEF_SCOPE;
+ mctx.slaveConn = 0;
+ mctx.slavesNb = 0;
+ mctx.timeout = DEF_TIMEOUT;
+ mctx.totalReq = -1;
+ mctx.waitSec = 0;
+ s1ctx.cnxduration = SCALAB01_DEF_CNX_DURATION; /*JLS 12-01-01*/
+ s1ctx.maxcnxnb = SCALAB01_DEF_MAX_CNX; /*JLS 12-01-01*/
+ s1ctx.wait = SCALAB01_DEF_WAIT_TIME; /*JLS 12-01-01*/
/*
* Initiates the object *NOW*
@@ -2534,7 +2638,7 @@ main (
* Get options
*/
while ((opt_ret = getopt (argc, argv,
- "a:b:D:e:E:f:h:i:I:n:N:p:qQr:R:s:S:t:T:vVw:W:Z:H")) != EOF)
+ "a:b:D:e:E:f:h:i:I:n:N:o:p:qQr:R:s:S:t:T:vVw:W:Z:H")) != EOF)
switch (opt_ret)
{
case 'a':
@@ -2584,6 +2688,11 @@ main (
case 'N':
mctx.nbSamples = atoi (optarg);
break;
+ case 'o':
+ if (saslSetParam (optarg) < 0)
+ ldcltExit (EXIT_PARAMS);
+ mctx.mod2 |= M2_SASLAUTH;
+ break;
case 'p':
mctx.port = atoi (optarg);
break;
diff --git a/ldap/servers/slapd/tools/ldclt/ldclt.h b/ldap/servers/slapd/tools/ldclt/ldclt.h
index 6413b39d..3b7a05cb 100644
--- a/ldap/servers/slapd/tools/ldclt/ldclt.h
+++ b/ldap/servers/slapd/tools/ldclt/ldclt.h
@@ -282,6 +282,7 @@ dd/mm/yy | Author | Comments
#define M2_APPEND 0x00000008 /* -e append */ /*JLS 05-04-01*/
#define M2_RNDBINDFILE 0x00000010 /* -e randombinddnfromfile *//*JLS 03-05-01*/
#define M2_BINDONLY 0x00000020 /* -e bindonly */ /*JLS 04-05-01*/
+#define M2_SASLAUTH 0x00000040 /* -o : SASL authentication */
/*
* Combinatory defines
@@ -536,6 +537,7 @@ typedef struct main_context {
char *keydbpin; /* key DB password */ /* BK 23-11-00*/
int lastVal; /* To build filters */ /*JLS 14-03-01*/
ldclt_mutex_t lastVal_mutex; /* Protect lastVal */ /*JLS 14-03-01*/
+ int ldapauth; /* Used to indicate auth type */
int maxErrors; /* Max allowed errors */
unsigned int mode; /* Running mode */
unsigned int mod2; /* Running mode - 2 */ /*JLS 19-03-01*/
@@ -560,6 +562,12 @@ typedef struct main_context {
char *rndBindFname; /* Rnd bind file name *//*JLS 03-05-01*/
int referral; /* Referral followed */ /*JLS 08-03-01*/
int sampling; /* Sampling frequency */
+ char *sasl_authid;
+ unsigned sasl_flags;
+ char *sasl_mech;
+ char *sasl_realm;
+ char *sasl_secprops;
+ char *sasl_username;
int scope; /* Searches scope */
int slaveConn; /* Slave has connected */
char *slaves[MAX_SLAVES]; /* Slaves list */
diff --git a/ldap/servers/slapd/tools/ldclt/ldclt.use b/ldap/servers/slapd/tools/ldclt/ldclt.use
index 37ebe05e..4f388e64 100644
--- a/ldap/servers/slapd/tools/ldclt/ldclt.use
+++ b/ldap/servers/slapd/tools/ldclt/ldclt.use
@@ -1,6 +1,6 @@
usage: ldclt [-qQvV] [-E <max errors>]
[-b <base DN>] [-h <host>] [-p <port>] [-t <timeout>]
- [-D <bind DN>] [-w <passwd>]
+ [-D <bind DN>] [-w <passwd>] [-o <SASL options>]
[-e <execParams>] [-a <max pending>]
[-n <nb threads>] [-i <nb times>] [-N <nb samples>]
[-I <err number>] [-T <total>]
@@ -14,7 +14,7 @@ usage: ldclt [-qQvV] [-E <max errors>]
The valid options are:
-a Asynchronous mode, with max pending operations.
- -b Give the base DN to use. Default "o=sun,c=us".
+ -b Give the base DN to use. Default "dc=example,dc=com".
-D Bind DN. See -w
-E Max errors allowed. Default 1000.
-e Execution parameters:
@@ -68,6 +68,7 @@ usage: ldclt [-qQvV] [-E <max errors>]
-I Ignore errors (cf. -E). Default none.
-n Number of threads. Default 10.
-N Number of samples (10 seconds each). Default infinite.
+ -o SASL Options.
-p Server port. Default 389.
-P Master port (to check replication). Default 16000.
-q Quiet mode. See option -I.
diff --git a/ldap/servers/slapd/tools/ldclt/ldcltU.c b/ldap/servers/slapd/tools/ldclt/ldcltU.c
index 6f23dd1f..a91c74a5 100644
--- a/ldap/servers/slapd/tools/ldclt/ldcltU.c
+++ b/ldap/servers/slapd/tools/ldclt/ldcltU.c
@@ -32,7 +32,7 @@
*
*
* Copyright (C) 2001 Sun Microsystems, Inc. Used by permission.
- * Copyright (C) 2006 Red Hat, Inc.
+ * Copyright (C) 2007 Red Hat, Inc.
* All rights reserved.
* END COPYRIGHT BLOCK **/
@@ -47,7 +47,7 @@
/*
* usage: ldclt [-qQvV] [-E <max errors>]
* [-b <base DN>] [-h <host>] [-p <port>] [-t <timeout>]
- * [-D <bind DN>] [-w <passwd>]
+ * [-D <bind DN>] [-w <passwd>] [-o <SASL option>]
* [-e <execParams>] [-a <max pending>]
* [-n <nb threads>] [-i <nb times>] [-N <nb samples>]
* [-I <err number>] [-T <total>]
@@ -61,7 +61,7 @@
*
* The valid options are:
* -a Asynchronous mode, with max pending operations.
- * -b Give the base DN to use. Default "o=sun,c=us".
+ * -b Give the base DN to use. Default "dc=example,dc=com".
* -D Bind DN. See -w
* -E Max errors allowed. Default 1000.
* -e Execution parameters:
@@ -116,6 +116,7 @@
* -I Ignore errors (cf. -E). Default none.
* -n Number of threads. Default 10.
* -N Number of samples (10 seconds each). Default infinite.
+ * -o SASL Option.
* -p Server port. Default 389.
* -P Master port (to check replication). Default 16000.
* -q Quiet mode. See option -I.
@@ -137,7 +138,7 @@ void usage ()
(void) printf ("\n");
(void) printf ("usage: ldclt [-qQvV] [-E <max errors>]\n");
(void) printf (" [-b <base DN>] [-h <host>] [-p <port>] [-t <timeout>]\n");
- (void) printf (" [-D <bind DN>] [-w <passwd>]\n");
+ (void) printf (" [-D <bind DN>] [-w <passwd>] [-o <SASL option>]\n");
(void) printf (" [-e <execParams>] [-a <max pending>]\n");
(void) printf (" [-n <nb threads>] [-i <nb times>] [-N <nb samples>]\n");
(void) printf (" [-I <err number>] [-T <total>]\n");
@@ -206,6 +207,7 @@ void usage ()
(void) printf (" -I Ignore errors (cf. -E). Default none.\n");
(void) printf (" -n Number of threads. Default 10.\n");
(void) printf (" -N Number of samples (10 seconds each). Default infinite.\n");
+ (void) printf (" -o SASL Option.\n");
(void) printf (" -p Server port. Default 389.\n");
(void) printf (" -P Master port (to check replication). Default 16000.\n");
(void) printf (" -q Quiet mode. See option -I.\n");
diff --git a/ldap/servers/slapd/tools/ldclt/scalab01.c b/ldap/servers/slapd/tools/ldclt/scalab01.c
index 7a8ed5c4..b4decae8 100644
--- a/ldap/servers/slapd/tools/ldclt/scalab01.c
+++ b/ldap/servers/slapd/tools/ldclt/scalab01.c
@@ -513,7 +513,6 @@ scalab01_connectSuperuser (void)
/*
* Create the LDAP context
*/
-#ifdef LDCLTSSL
/*
* SSL is enabled ?
*/
@@ -558,7 +557,6 @@ scalab01_connectSuperuser (void)
}
else
{
-#endif
/*
* Connection initialization in normal, unencrypted mode
*/
@@ -573,9 +571,7 @@ scalab01_connectSuperuser (void)
fflush (stdout);
return (-1);
}
-#ifdef LDCLTSSL
}
-#endif
/*
* Set the LDAP version and other options...
@@ -598,7 +594,6 @@ scalab01_connectSuperuser (void)
/*
* Now we could bind
*/
-#ifdef LDCLTSSL
/*
* for SSL client authentication, SASL BIND is used
*/
@@ -620,7 +615,6 @@ scalab01_connectSuperuser (void)
}
else
{
-#endif /* LDCLTSSL */
strcpy (bindDN, SCALAB01_SUPER_USER_RDN);
strcat (bindDN, ",");
strcat (bindDN, mctx.baseDN);
@@ -640,9 +634,7 @@ scalab01_connectSuperuser (void)
fflush (stdout);
return (-1);
}
-#ifdef LDCLTSSL
}
-#endif
/*
* Normal end...
diff --git a/ltmain.sh b/ltmain.sh
index 0223495a..06823e05 100644
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -46,16 +46,10 @@ PACKAGE=libtool
VERSION=1.5.22
TIMESTAMP=" (1.1220.2.365 2005/12/18 22:14:06)"
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '${1+"$@"}'='"$@"'
+# See if we are running on zsh, and set the options which allow our
+# commands through without removal of \ escapes.
+if test -n "${ZSH_VERSION+set}" ; then
setopt NO_GLOB_SUBST
-else
- case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
fi
# Check that we have a working $echo.
@@ -111,14 +105,12 @@ esac
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode.
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
- eval "if test \"\${$lt_var+set}\" = set; then
- save_$lt_var=\$$lt_var
- $lt_var=C
- export $lt_var
- fi"
-done
+if test "${LC_ALL+set}" = set; then
+ save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
+fi
+if test "${LANG+set}" = set; then
+ save_LANG="$LANG"; LANG=C; export LANG
+fi
# Make sure IFS has a sensible default
lt_nl='
@@ -144,8 +136,6 @@ duplicate_deps=no
preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
#####################################
# Shell function definitions:
@@ -337,17 +327,7 @@ func_extract_archives ()
*) my_xabs=`pwd`"/$my_xlib" ;;
esac
my_xlib=`$echo "X$my_xlib" | $Xsed -e 's%^.*/%%'`
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- extracted_serial=`expr $extracted_serial + 1`
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib"
$show "${rm}r $my_xdir"
$run ${rm}r "$my_xdir"
@@ -778,7 +758,6 @@ if test -z "$show_help"; then
*.f90) xform=f90 ;;
*.for) xform=for ;;
*.java) xform=java ;;
- *.obj) xform=obj ;;
esac
libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -1159,9 +1138,8 @@ EOF
for arg
do
case $arg in
- -all-static | -static | -static-libtool-libs)
- case $arg in
- -all-static)
+ -all-static | -static)
+ if test "X$arg" = "X-all-static"; then
if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
$echo "$modename: warning: complete static linking is impossible in this configuration" 1>&2
fi
@@ -1169,20 +1147,12 @@ EOF
dlopen_self=$dlopen_self_static
fi
prefer_static_libs=yes
- ;;
- -static)
+ else
if test -z "$pic_flag" && test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static
fi
prefer_static_libs=built
- ;;
- -static-libtool-libs)
- if test -z "$pic_flag" && test -n "$link_static_flag"; then
- dlopen_self=$dlopen_self_static
- fi
- prefer_static_libs=yes
- ;;
- esac
+ fi
build_libtool_libs=no
build_old_libs=yes
break
@@ -1742,7 +1712,7 @@ EOF
continue
;;
- -static | -static-libtool-libs)
+ -static)
# The effects of -static are defined in a previous loop.
# We used to do the same as -all-static on platforms that
# didn't have a PIC flag, but the assumption that the effects
@@ -2520,9 +2490,7 @@ EOF
if test "$linkmode,$pass" = "prog,link"; then
if test -n "$library_names" &&
- { { test "$prefer_static_libs" = no ||
- test "$prefer_static_libs,$installed" = "built,yes"; } ||
- test -z "$old_library"; }; then
+ { test "$prefer_static_libs" = no || test -z "$old_library"; }; then
# We need to hardcode the library path
if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
# Make sure the rpath contains only unique directories.
@@ -3218,7 +3186,7 @@ EOF
# which has an extra 1 added just for fun
#
case $version_type in
- darwin|linux|osf|windows|none)
+ darwin|linux|osf|windows)
current=`expr $number_major + $number_minor`
age="$number_minor"
revision="$number_revision"
@@ -3442,11 +3410,11 @@ EOF
fi
# Eliminate all temporary directories.
-# for path in $notinst_path; do
-# lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
-# deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
-# dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
-# done
+ for path in $notinst_path; do
+ lib_search_path=`$echo "$lib_search_path " | ${SED} -e "s% $path % %g"`
+ deplibs=`$echo "$deplibs " | ${SED} -e "s% -L$path % %g"`
+ dependency_libs=`$echo "$dependency_libs " | ${SED} -e "s% -L$path % %g"`
+ done
if test -n "$xrpath"; then
# If the user specified any rpath flags, then add them.
@@ -3547,12 +3515,13 @@ EOF
int main() { return 0; }
EOF
$rm conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ $LTCC $LTCFLAGS -o conftest conftest.c $deplibs
+ if test "$?" -eq 0 ; then
ldd_output=`ldd conftest`
for i in $deplibs; do
name=`expr $i : '-l\(.*\)'`
# If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
+ if test "$name" != "" && test "$name" -ne "0"; then
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
*" $i "*)
@@ -3591,7 +3560,9 @@ EOF
# If $name is empty we are operating on a -L argument.
if test "$name" != "" && test "$name" != "0"; then
$rm conftest
- if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ $LTCC $LTCFLAGS -o conftest conftest.c $i
+ # Did it work?
+ if test "$?" -eq 0 ; then
ldd_output=`ldd conftest`
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
@@ -3623,7 +3594,7 @@ EOF
droppeddeps=yes
$echo
$echo "*** Warning! Library $i is needed by this library but I was not able to"
- $echo "*** make it link in! You will probably need to install it or some"
+ $echo "*** make it link in! You will probably need to install it or some"
$echo "*** library that it depends on before this library will be fully"
$echo "*** functional. Installing it before continuing would be even better."
fi
@@ -4268,14 +4239,12 @@ EOF
reload_conv_objs=
gentop=
# reload_cmds runs $LD directly, so let us get rid of
- # -Wl from whole_archive_flag_spec and hope we can get by with
- # turning comma into space..
+ # -Wl from whole_archive_flag_spec
wl=
if test -n "$convenience"; then
if test -n "$whole_archive_flag_spec"; then
- eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
- reload_conv_objs=$reload_objs\ `$echo "X$tmp_whole_archive_flags" | $Xsed -e 's|,| |g'`
+ eval reload_conv_objs=\"\$reload_objs $whole_archive_flag_spec\"
else
gentop="$output_objdir/${obj}x"
generated="$generated $gentop"
@@ -4723,16 +4692,16 @@ static const void *lt_preloaded_setup() {
case $host in
*cygwin* | *mingw* )
if test -f "$output_objdir/${outputname}.def" ; then
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}.def $output_objdir/${outputname}S.${objext}%"`
else
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
fi
;;
* )
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/${outputname}S.${objext}%"`
;;
esac
;;
@@ -4747,13 +4716,13 @@ static const void *lt_preloaded_setup() {
# really was required.
# Nullify the symbol file.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
- finalize_command=`$echo "X$finalize_command" | $SP2NL | $Xsed -e "s% @SYMFILE@%%" | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e "s% @SYMFILE@%%"`
+ finalize_command=`$echo "X$finalize_command" | $Xsed -e "s% @SYMFILE@%%"`
fi
if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
# Replace the output file specification.
- compile_command=`$echo "X$compile_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$output"'%g' | $NL2SP`
+ compile_command=`$echo "X$compile_command" | $Xsed -e 's%@OUTPUT@%'"$output"'%g'`
link_command="$compile_command$compile_rpath"
# We have no uninstalled library dependencies, so finalize right now.
@@ -4840,7 +4809,7 @@ static const void *lt_preloaded_setup() {
if test "$fast_install" != no; then
link_command="$finalize_var$compile_command$finalize_rpath"
if test "$fast_install" = yes; then
- relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $SP2NL | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g' | $NL2SP`
+ relink_command=`$echo "X$compile_var$compile_command$compile_rpath" | $Xsed -e 's%@OUTPUT@%\$progdir/\$file%g'`
else
# fast_install is set to needless
relink_command=
@@ -4877,7 +4846,7 @@ static const void *lt_preloaded_setup() {
fi
done
relink_command="(cd `pwd`; $relink_command)"
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
fi
# Quote $echo for shipping.
@@ -5284,18 +5253,6 @@ EOF
Xsed='${SED} -e 1s/^X//'
sed_quote_subst='$sed_quote_subst'
-# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
- emulate sh
- NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
- # is contrary to our usage. Disable this feature.
- alias -g '\${1+\"\$@\"}'='\"\$@\"'
- setopt NO_GLOB_SUBST
-else
- case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-
# The HP-UX ksh and POSIX shell print the target directory to stdout
# if CDPATH is set.
(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
@@ -5438,7 +5395,7 @@ else
;;
esac
$echo >> $output "\
- \$echo \"\$0: cannot exec \$program \$*\"
+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\"
exit $EXIT_FAILURE
fi
else
@@ -5624,7 +5581,7 @@ fi\
done
# Quote the link command for shipping.
relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e "$sed_quote_subst" | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e "$sed_quote_subst"`
if test "$hardcode_automatic" = yes ; then
relink_command=
fi
@@ -5969,9 +5926,9 @@ relink_command=\"$relink_command\""
if test -n "$inst_prefix_dir"; then
# Stick the inst_prefix_dir data into the link command.
- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%" | $NL2SP`
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
else
- relink_command=`$echo "$relink_command" | $SP2NL | $SED "s%@inst_prefix_dir@%%" | $NL2SP`
+ relink_command=`$echo "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
fi
$echo "$modename: warning: relinking \`$file'" 1>&2
@@ -6180,7 +6137,7 @@ relink_command=\"$relink_command\""
file=`$echo "X$file$stripped_ext" | $Xsed -e 's%^.*/%%'`
outputname="$tmpdir/$file"
# Replace the output file specification.
- relink_command=`$echo "X$relink_command" | $SP2NL | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g' | $NL2SP`
+ relink_command=`$echo "X$relink_command" | $Xsed -e 's%@OUTPUT@%'"$outputname"'%g'`
$show "$relink_command"
if $run eval "$relink_command"; then :
@@ -6456,15 +6413,12 @@ relink_command=\"$relink_command\""
fi
# Restore saved environment variables
- for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
- do
- eval "if test \"\${save_$lt_var+set}\" = set; then
- $lt_var=\$save_$lt_var; export $lt_var
- else
- $lt_unset $lt_var
- fi"
- done
-
+ if test "${save_LC_ALL+set}" = set; then
+ LC_ALL="$save_LC_ALL"; export LC_ALL
+ fi
+ if test "${save_LANG+set}" = set; then
+ LANG="$save_LANG"; export LANG
+ fi
# Now prepare to actually exec the command.
exec_cmd="\$cmd$args"
@@ -6821,9 +6775,9 @@ The following components of LINK-COMMAND are treated specially:
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
+ try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX
- try to export only the symbols matching REGEX
+ try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened
@@ -6837,11 +6791,9 @@ The following components of LINK-COMMAND are treated specially:
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
+ -static do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
+ specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.