Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 148370 Details for
Bug 229280
Add LDAPI (LDAP over unix domain sockets)
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
[patch]
Diff to add ldapi
ldapi.diff (text/plain), 151.25 KB, created by
Pete Rowley
on 2007-02-19 21:56:35 UTC
(
hide
)
Description:
Diff to add ldapi
Filename:
MIME Type:
Creator:
Pete Rowley
Created:
2007-02-19 21:56:35 UTC
Size:
151.25 KB
patch
obsolete
>? autom4te.cache >? config.log >? ldap/servers/slapd/1 >? ldap/servers/slapd/c_dn >? ldap/servers/slapd/getsocketpeer.c >? ldap/servers/slapd/getsocketpeer.h >Index: Makefile.am >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.am,v >retrieving revision 1.25 >diff -u -8 -r1.25 Makefile.am >--- Makefile.am 12 Feb 2007 19:39:03 -0000 1.25 >+++ Makefile.am 19 Feb 2007 20:31:58 -0000 >@@ -891,17 +891,18 @@ > ldap/servers/slapd/rootdse.c \ > ldap/servers/slapd/sasl_io.c \ > ldap/servers/slapd/saslbind.c \ > ldap/servers/slapd/search.c \ > ldap/servers/slapd/start_tls_extop.c \ > ldap/servers/slapd/strdup.c \ > ldap/servers/slapd/stubs.c \ > ldap/servers/slapd/tempnam.c \ >- ldap/servers/slapd/unbind.c >+ ldap/servers/slapd/unbind.c \ >+ ldap/servers/slapd/getsocketpeer.c > > ns_slapd_CPPFLAGS = $(AM_CPPFLAGS) @sasl_inc@ @ldapsdk_inc@ @nss_inc@ \ > @nspr_inc@ @svrcore_inc@ > ns_slapd_LDADD = libslapd.la libldaputil.a $(LDAPSDK_LINK) $(NSS_LINK) \ > $(NSPR_LINK) $(SASL_LINK) $(SVRCORE_LINK) $(LIBNSL) $(LIBSOCKET) > > #------------------------ > # pwdhash >Index: Makefile.in >=================================================================== >RCS file: /cvs/dirsec/ldapserver/Makefile.in,v >retrieving revision 1.29 >diff -u -8 -r1.29 Makefile.in >--- Makefile.in 13 Feb 2007 19:00:11 -0000 1.29 >+++ Makefile.in 19 Feb 2007 20:32:07 -0000 >@@ -650,17 +650,18 @@ > ldap/servers/slapd/ns_slapd-rootdse.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-sasl_io.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-saslbind.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-search.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-start_tls_extop.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-strdup.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-stubs.$(OBJEXT) \ > ldap/servers/slapd/ns_slapd-tempnam.$(OBJEXT) \ >- ldap/servers/slapd/ns_slapd-unbind.$(OBJEXT) >+ ldap/servers/slapd/ns_slapd-unbind.$(OBJEXT) \ >+ ldap/servers/slapd/ns_slapd-getsocketpeer.$(OBJEXT) > ns_slapd_OBJECTS = $(am_ns_slapd_OBJECTS) > ns_slapd_DEPENDENCIES = libslapd.la libldaputil.a \ > $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ > $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ > $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ > $(am__DEPENDENCIES_1) > am_pwdhash_bin_OBJECTS = \ > ldap/servers/slapd/tools/pwdhash_bin-pwenc.$(OBJEXT) >@@ -823,17 +824,16 @@ > PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ > PACKAGE_NAME = @PACKAGE_NAME@ > PACKAGE_STRING = @PACKAGE_STRING@ > PACKAGE_TARNAME = @PACKAGE_TARNAME@ > 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@ > SOLARIS_TRUE = @SOLARIS_TRUE@ > STRIP = @STRIP@ > VERSION = @VERSION@ > WINNT_FALSE = @WINNT_FALSE@ > WINNT_TRUE = @WINNT_TRUE@ >@@ -1755,17 +1755,18 @@ > ldap/servers/slapd/rootdse.c \ > ldap/servers/slapd/sasl_io.c \ > ldap/servers/slapd/saslbind.c \ > ldap/servers/slapd/search.c \ > ldap/servers/slapd/start_tls_extop.c \ > ldap/servers/slapd/strdup.c \ > ldap/servers/slapd/stubs.c \ > ldap/servers/slapd/tempnam.c \ >- ldap/servers/slapd/unbind.c >+ ldap/servers/slapd/unbind.c \ >+ ldap/servers/slapd/getsocketpeer.c > > ns_slapd_CPPFLAGS = $(AM_CPPFLAGS) @sasl_inc@ @ldapsdk_inc@ @nss_inc@ \ > @nspr_inc@ @svrcore_inc@ > > ns_slapd_LDADD = libslapd.la libldaputil.a $(LDAPSDK_LINK) $(NSS_LINK) \ > $(NSPR_LINK) $(SASL_LINK) $(SVRCORE_LINK) $(LIBNSL) $(LIBSOCKET) > > >@@ -3598,16 +3599,19 @@ > ldap/servers/slapd/$(am__dirstamp) \ > ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp) > ldap/servers/slapd/ns_slapd-tempnam.$(OBJEXT): \ > ldap/servers/slapd/$(am__dirstamp) \ > ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp) > ldap/servers/slapd/ns_slapd-unbind.$(OBJEXT): \ > ldap/servers/slapd/$(am__dirstamp) \ > ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp) >+ldap/servers/slapd/ns_slapd-getsocketpeer.$(OBJEXT): \ >+ ldap/servers/slapd/$(am__dirstamp) \ >+ ldap/servers/slapd/$(DEPDIR)/$(am__dirstamp) > ns-slapd$(EXEEXT): $(ns_slapd_OBJECTS) $(ns_slapd_DEPENDENCIES) > @rm -f ns-slapd$(EXEEXT) > $(LINK) $(ns_slapd_LDFLAGS) $(ns_slapd_OBJECTS) $(ns_slapd_LDADD) $(LIBS) > ldap/servers/slapd/tools/pwdhash_bin-pwenc.$(OBJEXT): \ > ldap/servers/slapd/tools/$(am__dirstamp) \ > ldap/servers/slapd/tools/$(DEPDIR)/$(am__dirstamp) > pwdhash-bin$(EXEEXT): $(pwdhash_bin_OBJECTS) $(pwdhash_bin_DEPENDENCIES) > @rm -f pwdhash-bin$(EXEEXT) >@@ -4312,16 +4316,17 @@ > -rm -f ldap/servers/slapd/ns_slapd-connection.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-conntable.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-daemon.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-detach.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-extendop.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-fedse.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-fileio.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-getopt_ext.$(OBJEXT) >+ -rm -f ldap/servers/slapd/ns_slapd-getsocketpeer.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-globals.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-house.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-init.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-lite_entries.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-main.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-monitor.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-passwd_extop.$(OBJEXT) > -rm -f ldap/servers/slapd/ns_slapd-protect_db.$(OBJEXT) >@@ -4762,16 +4767,17 @@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-connection.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-conntable.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-daemon.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-detach.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-extendop.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-fedse.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-fileio.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-getopt_ext.Po@am__quote@ >+@AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-globals.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-house.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-init.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-lite_entries.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-main.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-monitor.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-passwd_extop.Po@am__quote@ > @AMDEP_TRUE@@am__include@ @am__quote@ldap/servers/slapd/$(DEPDIR)/ns_slapd-protect_db.Po@am__quote@ >@@ -8211,16 +8217,30 @@ > > ldap/servers/slapd/ns_slapd-unbind.obj: ldap/servers/slapd/unbind.c > @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-unbind.obj -MD -MP -MF "ldap/servers/slapd/$(DEPDIR)/ns_slapd-unbind.Tpo" -c -o ldap/servers/slapd/ns_slapd-unbind.obj `if test -f 'ldap/servers/slapd/unbind.c'; then $(CYGPATH_W) 'ldap/servers/slapd/unbind.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/unbind.c'; fi`; \ > @am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-unbind.Tpo" "ldap/servers/slapd/$(DEPDIR)/ns_slapd-unbind.Po"; else rm -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-unbind.Tpo"; exit 1; fi > @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/unbind.c' object='ldap/servers/slapd/ns_slapd-unbind.obj' libtool=no @AMDEPBACKSLASH@ > @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ > @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-unbind.obj `if test -f 'ldap/servers/slapd/unbind.c'; then $(CYGPATH_W) 'ldap/servers/slapd/unbind.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/unbind.c'; fi` > >+ldap/servers/slapd/ns_slapd-getsocketpeer.o: ldap/servers/slapd/getsocketpeer.c >+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-getsocketpeer.o -MD -MP -MF "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo" -c -o ldap/servers/slapd/ns_slapd-getsocketpeer.o `test -f 'ldap/servers/slapd/getsocketpeer.c' || echo '$(srcdir)/'`ldap/servers/slapd/getsocketpeer.c; \ >+@am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo" "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Po"; else rm -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo"; exit 1; fi >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/getsocketpeer.c' object='ldap/servers/slapd/ns_slapd-getsocketpeer.o' libtool=no @AMDEPBACKSLASH@ >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ >+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-getsocketpeer.o `test -f 'ldap/servers/slapd/getsocketpeer.c' || echo '$(srcdir)/'`ldap/servers/slapd/getsocketpeer.c >+ >+ldap/servers/slapd/ns_slapd-getsocketpeer.obj: ldap/servers/slapd/getsocketpeer.c >+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/ns_slapd-getsocketpeer.obj -MD -MP -MF "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo" -c -o ldap/servers/slapd/ns_slapd-getsocketpeer.obj `if test -f 'ldap/servers/slapd/getsocketpeer.c'; then $(CYGPATH_W) 'ldap/servers/slapd/getsocketpeer.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/getsocketpeer.c'; fi`; \ >+@am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo" "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Po"; else rm -f "ldap/servers/slapd/$(DEPDIR)/ns_slapd-getsocketpeer.Tpo"; exit 1; fi >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/getsocketpeer.c' object='ldap/servers/slapd/ns_slapd-getsocketpeer.obj' libtool=no @AMDEPBACKSLASH@ >+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ >+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ns_slapd_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/ns_slapd-getsocketpeer.obj `if test -f 'ldap/servers/slapd/getsocketpeer.c'; then $(CYGPATH_W) 'ldap/servers/slapd/getsocketpeer.c'; else $(CYGPATH_W) '$(srcdir)/ldap/servers/slapd/getsocketpeer.c'; fi` >+ > ldap/servers/slapd/tools/pwdhash_bin-pwenc.o: ldap/servers/slapd/tools/pwenc.c > @am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwdhash_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ldap/servers/slapd/tools/pwdhash_bin-pwenc.o -MD -MP -MF "ldap/servers/slapd/tools/$(DEPDIR)/pwdhash_bin-pwenc.Tpo" -c -o ldap/servers/slapd/tools/pwdhash_bin-pwenc.o `test -f 'ldap/servers/slapd/tools/pwenc.c' || echo '$(srcdir)/'`ldap/servers/slapd/tools/pwenc.c; \ > @am__fastdepCC_TRUE@ then mv -f "ldap/servers/slapd/tools/$(DEPDIR)/pwdhash_bin-pwenc.Tpo" "ldap/servers/slapd/tools/$(DEPDIR)/pwdhash_bin-pwenc.Po"; else rm -f "ldap/servers/slapd/tools/$(DEPDIR)/pwdhash_bin-pwenc.Tpo"; exit 1; fi > @AMDEP_TRUE@@am__fastdepCC_FALSE@ source='ldap/servers/slapd/tools/pwenc.c' object='ldap/servers/slapd/tools/pwdhash_bin-pwenc.o' libtool=no @AMDEPBACKSLASH@ > @AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ > @am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(pwdhash_bin_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ldap/servers/slapd/tools/pwdhash_bin-pwenc.o `test -f 'ldap/servers/slapd/tools/pwenc.c' || echo '$(srcdir)/'`ldap/servers/slapd/tools/pwenc.c > > ldap/servers/slapd/tools/pwdhash_bin-pwenc.obj: ldap/servers/slapd/tools/pwenc.c >Index: aclocal.m4 >=================================================================== >RCS file: /cvs/dirsec/ldapserver/aclocal.m4,v >retrieving revision 1.19 >diff -u -8 -r1.19 aclocal.m4 >--- aclocal.m4 13 Feb 2007 19:00:11 -0000 1.19 >+++ aclocal.m4 19 Feb 2007 20:32:09 -0000 >@@ -1592,17 +1592,17 @@ > 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' ' '` >+ 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${libsuff} /usr/lib${libsuff} $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the > # GNU dynamic linker. Since this was broken with cross compilers, > # most powerpc-linux boxes support dynamic linking these days and > # people can always --disable-shared, the test was removed, and we >@@ -4300,19 +4300,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_[]_LT_AC_TAGVAR(LD, $1) > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -4436,33 +4433,33 @@ > module_expsym_cmds=$lt_[]_LT_AC_TAGVAR(module_expsym_cmds, $1) > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_[]_LT_AC_TAGVAR(predeps, $1) > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -4532,17 +4529,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" > > # Set to yes if exported symbols are required. >@@ -6368,17 +6365,16 @@ > for lt_ac_prog in sed gsed; do > for ac_exec_ext in '' $ac_executable_extensions; do > if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then > lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" > fi > 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 > # along with /bin/sed that truncates output. > for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do > test ! -f $lt_ac_sed && continue > cat /dev/null > conftest.in > lt_ac_count=0 >@@ -6401,17 +6397,16 @@ > if test $lt_ac_count -gt $lt_ac_max; then > lt_ac_max=$lt_ac_count > lt_cv_path_SED=$lt_ac_sed > fi > done > done > ]) > SED=$lt_cv_path_SED >-AC_SUBST([SED]) > AC_MSG_RESULT([$SED]) > ]) > > # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc. > # > # This file is free software; the Free Software Foundation > # gives unlimited permission to copy and/or distribute it, > # with or without modifications, as long as this notice is preserved. >Index: configure >=================================================================== >RCS file: /cvs/dirsec/ldapserver/configure,v >retrieving revision 1.28 >diff -u -8 -r1.28 configure >--- configure 13 Feb 2007 19:00:11 -0000 1.28 >+++ configure 19 Feb 2007 20:32:17 -0000 >@@ -460,17 +460,17 @@ > # include <stdint.h> > # endif > #endif > #if HAVE_UNISTD_H > # include <unistd.h> > #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 configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL initdir 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 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 configdir sampledatadir propertydir schemadir serverdir serverplugindir scripttemplatedir instconfigdir WINNT_TRUE WINNT_FALSE LIBSOCKET LIBNSL LIBDL initdir 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 LTLIBOBJS' > ac_subst_files='' > > # Initialize some variables set by options. > ac_init_help= > ac_init_version=false > # The variables have the same names as the options, with > # dashes changed to underlines. > cache_file=/dev/null >@@ -3816,17 +3816,16 @@ > for lt_ac_prog in sed gsed; do > for ac_exec_ext in '' $ac_executable_extensions; do > if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then > lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" > fi > 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 > # along with /bin/sed that truncates output. > for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do > test ! -f $lt_ac_sed && continue > cat /dev/null > conftest.in > lt_ac_count=0 >@@ -3851,17 +3850,16 @@ > lt_cv_path_SED=$lt_ac_sed > fi > done > done > > fi > > SED=$lt_cv_path_SED >- > echo "$as_me:$LINENO: result: $SED" >&5 > echo "${ECHO_T}$SED" >&6 > > echo "$as_me:$LINENO: checking for egrep" >&5 > echo $ECHO_N "checking for egrep... $ECHO_C" >&6 > if test "${ac_cv_prog_egrep+set}" = set; then > echo $ECHO_N "(cached) $ECHO_C" >&6 > else >@@ -4292,17 +4290,17 @@ > HPUX_IA64_MODE="64" > ;; > esac > fi > rm -rf conftest* > ;; > *-*-irix6*) > # Find out which ABI we are using. >- echo '#line 4300 "configure"' > conftest.$ac_ext >+ echo '#line 4298 "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 > if test "$lt_cv_prog_gnu_ld" = yes; then > case `/usr/bin/file conftest.$ac_objext` in > *32-bit*) >@@ -5427,17 +5425,17 @@ > test -n "$ac_ct_F77" && break > done > > F77=$ac_ct_F77 > fi > > > # Provide some information about the compiler. >-echo "$as_me:5435:" \ >+echo "$as_me:5433:" \ > "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 > (eval $ac_compiler --version </dev/null >&5) 2>&5 > ac_status=$? > echo "$as_me:$LINENO: \$? = $ac_status" >&5 > (exit $ac_status); } > { (eval echo "$as_me:$LINENO: \"$ac_compiler -v </dev/null >&5\"") >&5 >@@ -6490,21 +6488,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:6498: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6496: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:6502: \$? = $ac_status" >&5 >+ echo "$as_me:6500: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_cv_prog_compiler_rtti_exceptions=yes > fi >@@ -6758,21 +6756,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:6766: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6764: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:6770: \$? = $ac_status" >&5 >+ echo "$as_me:6768: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_prog_compiler_pic_works=yes > fi >@@ -6862,21 +6860,21 @@ > # Insert the option either (1) after the last *FLAGS variable, or > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > lt_compile=`echo "$ac_compile" | $SED \ > -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:6870: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:6868: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:6874: \$? = $ac_status" >&5 >+ echo "$as_me:6872: \$? = $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 > # So say no if there are warnings > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp > $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 > if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then > lt_cv_prog_compiler_c_o=yes >@@ -8331,17 +8329,17 @@ > # Some rework will be needed to allow for fast_install > # 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 8339 "configure"' > conftest.$ac_ext >+ echo '#line 8337 "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 >@@ -8350,17 +8348,17 @@ > 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' ' '` >+ 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${libsuff} /usr/lib${libsuff} $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the > # GNU dynamic linker. Since this was broken with cross compilers, > # most powerpc-linux boxes support dynamic linking these days and > # people can always --disable-shared, the test was removed, and we >@@ -9228,17 +9226,17 @@ > echo $ECHO_N "(cached) $ECHO_C" >&6 > else > if test "$cross_compiling" = yes; then : > lt_cv_dlopen_self=cross > else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF >-#line 9236 "configure" >+#line 9234 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > #include <dlfcn.h> > #endif > > #include <stdio.h> > >@@ -9328,17 +9326,17 @@ > echo $ECHO_N "(cached) $ECHO_C" >&6 > else > if test "$cross_compiling" = yes; then : > lt_cv_dlopen_self_static=cross > else > lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 > lt_status=$lt_dlunknown > cat > conftest.$ac_ext <<EOF >-#line 9336 "configure" >+#line 9334 "configure" > #include "confdefs.h" > > #if HAVE_DLFCN_H > #include <dlfcn.h> > #endif > > #include <stdio.h> > >@@ -9659,19 +9657,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_LD > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -9795,33 +9790,33 @@ > module_expsym_cmds=$lt_module_expsym_cmds > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_predeps > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -9891,17 +9886,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$fix_srcfile_path" > > # Set to yes if exported symbols are required. >@@ -11671,21 +11666,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:11679: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:11674: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:11683: \$? = $ac_status" >&5 >+ echo "$as_me:11678: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_prog_compiler_pic_works_CXX=yes > fi >@@ -11775,21 +11770,21 @@ > # Insert the option either (1) after the last *FLAGS variable, or > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > lt_compile=`echo "$ac_compile" | $SED \ > -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:11783: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:11778: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:11787: \$? = $ac_status" >&5 >+ echo "$as_me:11782: \$? = $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 > # So say no if there are warnings > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp > $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 > if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then > lt_cv_prog_compiler_c_o_CXX=yes >@@ -12311,17 +12306,17 @@ > # Some rework will be needed to allow for fast_install > # 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 12319 "configure"' > conftest.$ac_ext >+ echo '#line 12314 "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 >@@ -12330,17 +12325,17 @@ > 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' ' '` >+ 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${libsuff} /usr/lib${libsuff} $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the > # GNU dynamic linker. Since this was broken with cross compilers, > # most powerpc-linux boxes support dynamic linking these days and > # people can always --disable-shared, the test was removed, and we >@@ -12715,19 +12710,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_LD_CXX > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -12851,33 +12843,33 @@ > module_expsym_cmds=$lt_module_expsym_cmds_CXX > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_predeps_CXX > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -12947,17 +12939,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$fix_srcfile_path_CXX" > > # Set to yes if exported symbols are required. >@@ -13369,21 +13361,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:13377: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:13369: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:13381: \$? = $ac_status" >&5 >+ echo "$as_me:13373: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_prog_compiler_pic_works_F77=yes > fi >@@ -13473,21 +13465,21 @@ > # Insert the option either (1) after the last *FLAGS variable, or > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > lt_compile=`echo "$ac_compile" | $SED \ > -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:13481: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:13473: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:13485: \$? = $ac_status" >&5 >+ echo "$as_me:13477: \$? = $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 > # So say no if there are warnings > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp > $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 > if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then > lt_cv_prog_compiler_c_o_F77=yes >@@ -14922,17 +14914,17 @@ > # Some rework will be needed to allow for fast_install > # 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 14930 "configure"' > conftest.$ac_ext >+ echo '#line 14922 "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 >@@ -14941,17 +14933,17 @@ > 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' ' '` >+ 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${libsuff} /usr/lib${libsuff} $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the > # GNU dynamic linker. Since this was broken with cross compilers, > # most powerpc-linux boxes support dynamic linking these days and > # people can always --disable-shared, the test was removed, and we >@@ -15326,19 +15318,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_LD_F77 > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -15462,33 +15451,33 @@ > module_expsym_cmds=$lt_module_expsym_cmds_F77 > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_predeps_F77 > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -15558,17 +15547,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$fix_srcfile_path_F77" > > # Set to yes if exported symbols are required. >@@ -15700,21 +15689,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:15708: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:15697: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:15712: \$? = $ac_status" >&5 >+ echo "$as_me:15701: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_cv_prog_compiler_rtti_exceptions=yes > fi >@@ -15968,21 +15957,21 @@ > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > # The option is referenced via a variable to avoid confusing sed. > lt_compile=`echo "$ac_compile" | $SED \ > -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:15976: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:15965: $lt_compile\"" >&5) > (eval "$lt_compile" 2>conftest.err) > ac_status=$? > cat conftest.err >&5 >- echo "$as_me:15980: \$? = $ac_status" >&5 >+ echo "$as_me:15969: \$? = $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. > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp > $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 > if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then > lt_prog_compiler_pic_works_GCJ=yes > fi >@@ -16072,21 +16061,21 @@ > # Insert the option either (1) after the last *FLAGS variable, or > # (2) before a word containing "conftest.", or (3) at the end. > # Note that $ac_compile itself does not contain backslashes and begins > # with a dollar sign (not a hyphen), so the echo should work correctly. > lt_compile=`echo "$ac_compile" | $SED \ > -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:16080: $lt_compile\"" >&5) >+ (eval echo "\"\$as_me:16069: $lt_compile\"" >&5) > (eval "$lt_compile" 2>out/conftest.err) > ac_status=$? > cat out/conftest.err >&5 >- echo "$as_me:16084: \$? = $ac_status" >&5 >+ echo "$as_me:16073: \$? = $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 > # So say no if there are warnings > $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp > $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 > if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then > lt_cv_prog_compiler_c_o_GCJ=yes >@@ -17541,17 +17530,17 @@ > # Some rework will be needed to allow for fast_install > # 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 17549 "configure"' > conftest.$ac_ext >+ echo '#line 17538 "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 >@@ -17560,17 +17549,17 @@ > 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' ' '` >+ 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${libsuff} /usr/lib${libsuff} $lt_ld_extra" > fi > > # We used to test for /lib/ld.so.1 and disable shared libraries on > # powerpc, because MkLinux only supported shared libraries with the > # GNU dynamic linker. Since this was broken with cross compilers, > # most powerpc-linux boxes support dynamic linking these days and > # people can always --disable-shared, the test was removed, and we >@@ -17945,19 +17934,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_LD_GCJ > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -18081,33 +18067,33 @@ > module_expsym_cmds=$lt_module_expsym_cmds_GCJ > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_predeps_GCJ > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -18177,17 +18163,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$fix_srcfile_path_GCJ" > > # Set to yes if exported symbols are required. >@@ -18429,19 +18415,16 @@ > LTCFLAGS=$lt_LTCFLAGS > > # A language-specific compiler. > 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 > > # The linker used to build libraries. > LD=$lt_LD_RC > > # Whether we need hard or soft links. > LN_S=$lt_LN_S >@@ -18565,33 +18548,33 @@ > module_expsym_cmds=$lt_module_expsym_cmds_RC > > # Commands to strip libraries. > old_striplib=$lt_old_striplib > 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. > predeps=$lt_predeps_RC > > # Dependencies to place after the objects being linked to create a > # shared library. > 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 > > # Command to use when deplibs_check_method == file_magic. > file_magic_cmd=$lt_file_magic_cmd > > # Flag that allows shared libraries with undefined symbols to be built. >@@ -18661,17 +18644,17 @@ > # Variables whose values should be saved in libtool wrapper scripts and > # restored at relink time. > variables_saved_for_relink="$variables_saved_for_relink" > > # Whether libtool must link a program against all its dependency libraries. > 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 > > # Fix the shell variable \$srcfile for the compiler. > fix_srcfile_path="$fix_srcfile_path_RC" > > # Set to yes if exported symbols are required. >@@ -25642,17 +25625,16 @@ > s,@am__fastdepCXX_TRUE@,$am__fastdepCXX_TRUE,;t t > s,@am__fastdepCXX_FALSE@,$am__fastdepCXX_FALSE,;t t > s,@CC@,$CC,;t t > s,@CFLAGS@,$CFLAGS,;t t > 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 > s,@AR@,$AR,;t t > s,@ac_ct_AR@,$ac_ct_AR,;t t > s,@RANLIB@,$RANLIB,;t t > s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t > s,@CPP@,$CPP,;t t >Index: ltmain.sh >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ltmain.sh,v >retrieving revision 1.9 >diff -u -8 -r1.9 ltmain.sh >--- ltmain.sh 12 Feb 2007 19:39:03 -0000 1.9 >+++ ltmain.sh 19 Feb 2007 20:32:18 -0000 >@@ -41,26 +41,20 @@ > EXIT_SUCCESS=0 > EXIT_FAILURE=1 > > PROGRAM=ltmain.sh > 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. > if test "X$1" = X--no-reexec; then > # Discard the --no-reexec flag, and continue. > shift > elif test "X$1" = X--fallback-echo; then > # Avoid inline document here, it may be left over >@@ -106,24 +100,22 @@ > ;; > esac > > # NLS nuisances. > # Only set LANG and LC_ALL to C if already set. > # 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=' > ' > IFS=" $lt_nl" > > if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then > $echo "$modename: not configured to build any kind of library" 1>&2 >@@ -139,18 +131,16 @@ > run= > show="$echo" > show_help= > execute_dlfiles= > duplicate_deps=no > preserve_args= > lo2o="s/\\.lo\$/.${objext}/" > o2lo="s/\\.${objext}\$/.lo/" >-extracted_archives= >-extracted_serial=0 > > ##################################### > # Shell function definitions: > # This seems to be the best place for them > > # func_mktempdir [string] > # Make a temporary directory that won't clash with other running > # libtool processes, and avoids race conditions if possible. If >@@ -332,27 +322,17 @@ > > for my_xlib in $my_oldlibs; do > # Extract the objects. > case $my_xlib in > [\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;; > *) 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" > $show "$mkdir $my_xdir" > $run $mkdir "$my_xdir" > exit_status=$? > if test "$exit_status" -ne 0 && test ! -d "$my_xdir"; then > exit $exit_status >@@ -773,17 +753,16 @@ > *.cc) xform=cc ;; > *.ii) xform=ii ;; > *.class) xform=class ;; > *.cpp) xform=cpp ;; > *.cxx) xform=cxx ;; > *.f90) xform=f90 ;; > *.for) xform=for ;; > *.java) xform=java ;; >- *.obj) xform=obj ;; > esac > > libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"` > > case $libobj in > *.lo) obj=`$echo "X$libobj" | $Xsed -e "$lo2o"` ;; > *) > $echo "$modename: cannot determine name of library object from \`$libobj'" 1>&2 >@@ -1154,40 +1133,31 @@ > vinfo_number=no > > func_infer_tag $base_compile > > # We need to know -static, to get the right output filenames. > 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 > if test -n "$link_static_flag"; then > 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 > ;; > esac > done > > # See if our shared archives depend on static archives. >@@ -1737,17 +1707,17 @@ > esac > case "$xrpath " in > *" $dir "*) ;; > *) xrpath="$xrpath $dir" ;; > esac > 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 > # would be equivalent was wrong. It would break on at least > # Digital Unix and AIX. > continue > ;; > >@@ -2515,19 +2485,17 @@ > fi > tmp_libs="$tmp_libs $deplib" > done # for deplib > continue > fi # $linkmode = prog... > > 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. > case "$temp_rpath " in > *" $dir "*) ;; > *" $absdir "*) ;; > *) temp_rpath="$temp_rpath $absdir" ;; > esac >@@ -3213,17 +3181,17 @@ > # > # There are really only two kinds -- those that > # use the current revision as the major version > # and those that subtract age and use age as > # a minor version. But, then there is irix > # 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" > ;; > freebsd-aout|freebsd-elf|sunos) > current="$number_major" > revision="$number_minor" > age="0" >@@ -3437,21 +3405,21 @@ > if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then > oldlibs="$oldlibs $output_objdir/$libname.$libext" > > # Transform .lo files to .o files. > oldobjs="$objs "`$echo "X$libobjs" | $SP2NL | $Xsed -e '/\.'${libext}'$/d' -e "$lo2o" | $NL2SP` > 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. > temp_xrpath= > for libdir in $xrpath; do > temp_xrpath="$temp_xrpath -R$libdir" > case "$finalize_rpath " in > *" $libdir "*) ;; >@@ -3542,22 +3510,23 @@ > # limits. Maybe even breaks it. We compile a program, linking it > # against the deplibs as a proxy for the library. Then we can check > # whether they linked in statically or dynamically with ldd. > $rm conftest.c > cat > conftest.c <<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 "*) > newdeplibs="$newdeplibs $i" > i="" > ;; > esac > fi >@@ -3586,17 +3555,19 @@ > else > # Error occurred in the first compile. Let's try to salvage > # the situation: Compile a separate program for each library. > 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 > $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 > *" $i "*) > newdeplibs="$newdeplibs $i" > i="" > ;; > esac >@@ -3618,17 +3589,17 @@ > $echo "*** because a test_compile did reveal that the linker did not use this one" > $echo "*** as a dynamic dependency that programs can get resolved with at runtime." > fi > fi > else > 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 > else > newdeplibs="$newdeplibs $i" > fi > done > fi >@@ -4263,24 +4234,22 @@ > > # Objects from convenience libraries. This assumes > # single-version convenience libraries. Whenever we create > # different ones for PIC/non-PIC, this we'll have to duplicate > # the extraction. > 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" > > func_extract_archives $gentop $convenience > reload_conv_objs="$reload_objs $func_extract_archives_result" > fi > fi >@@ -4718,47 +4687,47 @@ > # Clean up the generated files. > $show "$rm $output_objdir/$dlsyms $nlist ${nlist}S ${nlist}T" > $run $rm "$output_objdir/$dlsyms" "$nlist" "${nlist}S" "${nlist}T" > > # Transform the symbol file into the correct name. > 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 > ;; > *) > $echo "$modename: unknown suffix for \`$dlsyms'" 1>&2 > exit $EXIT_FAILURE > ;; > esac > else > # We keep going just in case the user didn't refer to > # lt_preloaded_symbols. The linker will fail if global_symbol_pipe > # 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. > $show "$link_command" > $run eval "$link_command" > exit_status=$? > > # Delete the generated files. >@@ -4835,17 +4804,17 @@ > relink_command="$finalize_var$finalize_command$finalize_rpath" > > $echo "$modename: warning: this platform does not like uninstalled shared libraries" 1>&2 > $echo "$modename: \`$output' will be relinked during installation" 1>&2 > else > 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= > fi > else > link_command="$compile_var$compile_command$compile_rpath" > relink_command="$finalize_var$finalize_command$finalize_rpath" > fi >@@ -4872,17 +4841,17 @@ > elif eval var_value=\$$var; test -z "$var_value"; then > relink_command="$var=; export $var; $relink_command" > else > var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` > relink_command="$var=\"$var_value\"; export $var; $relink_command" > 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. > if test "X$echo" = "X$SHELL $progpath --fallback-echo"; then > case $progpath in > [\\/]* | [A-Za-z]:[\\/]*) qecho="$SHELL $progpath --fallback-echo";; > *) qecho="$SHELL `pwd`/$progpath --fallback-echo";; > esac >@@ -5279,28 +5248,16 @@ > # This wrapper script should never be moved out of the build directory. > # If it is, it will not operate correctly. > > # Sed substitution that helps us do robust quoting. It backslashifies > # metacharacters that are still active within double-quoted strings. > 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 > > relink_command=\"$relink_command\" > > # This environment variable determines our operation mode. > if test \"\$libtool_install_magic\" = \"$magic\"; then >@@ -5433,17 +5390,17 @@ > > *) > $echo >> $output "\ > exec \"\$progdir/\$program\" \${1+\"\$@\"} > " > ;; > esac > $echo >> $output "\ >- \$echo \"\$0: cannot exec \$program \$*\" >+ \$echo \"\$0: cannot exec \$program \${1+\"\$@\"}\" > exit $EXIT_FAILURE > fi > else > # The program doesn't exist. > \$echo \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2 > \$echo \"This script is just a wrapper for \$program.\" 1>&2 > $echo \"See the $PACKAGE documentation for more information.\" 1>&2 > exit $EXIT_FAILURE >@@ -5619,17 +5576,17 @@ > relink_command="$var=; export $var; $relink_command" > else > var_value=`$echo "X$var_value" | $Xsed -e "$sed_quote_subst"` > relink_command="$var=\"$var_value\"; export $var; $relink_command" > 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 > > > # Only create the output if not a dry run. > if test -z "$run"; then > for installed in no yes; do >@@ -5964,19 +5921,19 @@ > # but it's something to keep an eye on. > if test "$inst_prefix_dir" = "$destdir"; then > $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2 > exit $EXIT_FAILURE > fi > > 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 > $show "$relink_command" > if $run eval "$relink_command"; then : > else > $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 > exit $EXIT_FAILURE >@@ -6175,17 +6132,17 @@ > > outputname= > if test "$fast_install" = no && test -n "$relink_command"; then > if test "$finalize" = yes && test -z "$run"; then > tmpdir=`func_mktempdir` > 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 : > else > $echo "$modename: error: relink \`$file' with the above command before installing it" 1>&2 > ${rm}r "$tmpdir" > continue > fi >@@ -6451,25 +6408,22 @@ > > if test -z "$run"; then > if test -n "$shlibpath_var"; then > # Export the shlibpath_var. > eval "export $shlibpath_var" > 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" > else > # Display what would be done. > if test -n "$shlibpath_var"; then > eval "\$echo \"\$shlibpath_var=\$$shlibpath_var\"" > $echo "export $shlibpath_var" >@@ -6816,37 +6770,35 @@ > The following components of LINK-COMMAND are treated specially: > > -all-static do not do any dynamic linking at all > -avoid-version do not add a version suffix if possible > -dlopen FILE \`-dlpreopen' FILE if it cannot be dlopened at runtime > -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 > -no-fast-install disable the fast-install mode > -no-install link a not-installable executable > -no-undefined declare that a library does not refer to external symbols > -o OUTPUT-FILE create OUTPUT-FILE from the specified objects > -objectlist FILE Use a list of object files found in FILE to specify objects > -precious-files-regex REGEX > don't remove output files matching REGEX > -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. > > Every other argument is treated as a filename. Files ending in \`.la' are > treated as uninstalled libtool libraries, other files are standard or library > object files. > > If the OUTPUT-FILE ends in \`.la', then a libtool library is created, >Index: ldap/admin/src/create_instance.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/admin/src/create_instance.c,v >retrieving revision 1.44 >diff -u -8 -r1.44 create_instance.c >--- ldap/admin/src/create_instance.c 9 Feb 2007 22:33:58 -0000 1.44 >+++ ldap/admin/src/create_instance.c 19 Feb 2007 20:32:20 -0000 >@@ -2670,16 +2670,26 @@ > fprintf(f, "nsslapd-enquote-sup-oc: off\n"); > fprintf(f, "nsslapd-localhost: %s\n", cf->servname); > fprintf(f, "nsslapd-schemacheck: %s\n", > (cf->disable_schema_checking && !strcmp(cf->disable_schema_checking, "1")) ? "off" : "on"); > fprintf(f, "nsslapd-rewrite-rfc1274: off\n"); > fprintf(f, "nsslapd-return-exact-case: on\n"); > fprintf(f, "nsslapd-ssl-check-hostname: on\n"); > fprintf(f, "nsslapd-port: %s\n", cf->servport); >+ fprintf(f, "nsslapd-ldapifilepath: %s/%s-%s.socket\n", cf->run_dir, PRODUCT_NAME, cf->servid); >+ fprintf(f, "nsslapd-ldapilisten: on\n"); >+ fprintf(f, "nsslapd-ldapiautobind: on\n"); >+ fprintf(f, "nsslapd-ldapimaprootdn: cn=Directory Manager\n"); >+ fprintf(f, "nsslapd-ldapimaptoentries: off\n"); >+ fprintf(f, "nsslapd-ldapiuidnumbertype: uidNumber\n"); >+ fprintf(f, "nsslapd-ldapigidnumbertype: gidNumber\n"); >+ fprintf(f, "nsslapd-ldapientrysearchbase: dc=example, dc=com\n"); >+ fprintf(f, "nsslapd-ldapiautodnsuffix: cn=peercred,cn=external,cn=auth\n"); >+ > #if !defined( XP_WIN32 ) > if (cf->servuser && *(cf->servuser)) { > fprintf(f, "nsslapd-localuser: %s\n", cf->servuser); > } > #endif > fprintf(f, "nsslapd-errorlog-logging-enabled: on\n"); > fprintf(f, "nsslapd-errorlog-mode: 600\n"); > fprintf(f, "nsslapd-errorlog-maxlogsperdir: 2\n"); >Index: ldap/servers/slapd/bind.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/bind.c,v >retrieving revision 1.9 >diff -u -8 -r1.9 bind.c >--- ldap/servers/slapd/bind.c 10 Nov 2006 23:45:40 -0000 1.9 >+++ ldap/servers/slapd/bind.c 19 Feb 2007 20:32:21 -0000 >@@ -121,16 +121,17 @@ > Slapi_Backend *be = NULL; > ber_tag_t rc; > Slapi_DN sdn; > Slapi_Entry *referral; > char errorbuf[BUFSIZ]; > char **supported, **pmech; > char authtypebuf[256]; /* >26 (strlen(SLAPD_AUTH_SASL)+SASL_MECHNAMEMAX+1) */ > Slapi_Entry *bind_target_entry = NULL; >+ int auto_bind = 0; > > LDAPDebug( LDAP_DEBUG_TRACE, "do_bind\n", 0, 0, 0 ); > > /* > * Parse the bind request. It looks like this: > * > * BindRequest ::= SEQUENCE { > * version INTEGER, -- version >@@ -245,24 +246,41 @@ > goto free_and_return; > } > > auth_response_requested = slapi_control_present( reqctrls, > LDAP_CONTROL_AUTH_REQUEST, NULL, NULL ); > slapi_pblock_get (pb, SLAPI_PWPOLICY, &pw_response_requested); > } > >- log_bind_access(pb, dn, method, version, saslmech, NULL); >- > /* According to RFC2251, > * "if the bind fails, the connection will be treated as anonymous". > */ >- PR_Lock( pb->pb_conn->c_mutex ); >- bind_credentials_clear( pb->pb_conn, PR_FALSE, /* conn is already locked */ >+ bind_credentials_clear( pb->pb_conn, PR_TRUE, /* lock conn */ > PR_FALSE /* do not clear external creds. */ ); >+ >+ /* LDAPI might have auto bind on, binding as anon should >+ mean bind as self in this case >+ */ >+ >+ if((0 == dn || 0 == dn[0]) && pb->pb_conn->c_unix_local) >+ { >+ slapd_bind_local_user(pb->pb_conn); >+ >+ if(pb->pb_conn->c_dn) >+ { >+ auto_bind = 1; /* flag the bind method */ >+ dn = slapi_ch_strdup(pb->pb_conn->c_dn); >+ slapi_sdn_init_dn_passin(&sdn,dn); >+ } >+ } >+ >+ log_bind_access(pb, dn, method, version, saslmech, NULL); >+ >+ PR_Lock( pb->pb_conn->c_mutex ); > /* Clear the password policy flag that forbid operation > * other than Bind, Modify, Unbind : > * With a new bind, the flag should be reset so that the new > * bound user can work properly > */ > pb->pb_conn->c_needpw = 0; > PR_Unlock( pb->pb_conn->c_mutex ); > >@@ -497,60 +515,68 @@ > * rc!=0 and rc!=1: error. Result was not sent, lets be_bind > * deal with it. > * > */ > > /* get the entry now, so that we can give it to check_account_lock and reslimit_update_from_dn */ > if (! slapi_be_is_flag_set(be, SLAPI_BE_FLAG_REMOTE_DATA)) { > bind_target_entry = get_entry(pb, slapi_sdn_get_ndn(&sdn)); >- rc = check_account_lock ( pb, bind_target_entry, pw_response_requested); >+ rc = check_account_lock ( pb, bind_target_entry, pw_response_requested,0); > } > > slapi_pblock_set( pb, SLAPI_PLUGIN, be->be_database ); > set_db_default_result_handlers(pb); >- if ( (rc != 1) && (((rc = (*be->be_bind)( pb )) >+ if ( (rc != 1) && (auto_bind || (((rc = (*be->be_bind)( pb )) > == SLAPI_BIND_SUCCESS ) || rc >- == SLAPI_BIND_ANONYMOUS )) { >+ == SLAPI_BIND_ANONYMOUS ))) { > long t; > { > char* authtype = NULL; >+ >+ if(auto_bind) >+ rc = SLAPI_BIND_SUCCESS; >+ > switch ( method ) { > case LDAP_AUTH_SIMPLE: > if (cred.bv_len != 0) { > authtype = SLAPD_AUTH_SIMPLE; > } >+ else if(auto_bind) { >+ authtype = SLAPD_AUTH_OS; >+ } > break; > case LDAP_AUTH_SASL: > /* authtype = SLAPD_AUTH_SASL && saslmech: */ > PR_snprintf(authtypebuf, sizeof(authtypebuf), "%s%s", SLAPD_AUTH_SASL, saslmech); > authtype = authtypebuf; > break; > default: /* ??? */ > break; > } > > if ( rc == SLAPI_BIND_SUCCESS ) { >- bind_credentials_set( pb->pb_conn, >+ if(!auto_bind) >+ bind_credentials_set( pb->pb_conn, > authtype, slapi_ch_strdup( > slapi_sdn_get_ndn(&sdn)), > NULL, NULL, NULL, bind_target_entry ); > if ( auth_response_requested ) { > slapi_add_auth_response_control( pb, > slapi_sdn_get_ndn(&sdn)); > } > } else { /* anonymous */ > if ( auth_response_requested ) { > slapi_add_auth_response_control( pb, > "" ); > } > } > } > >- if ( rc != SLAPI_BIND_ANONYMOUS && >+ if ( 0 == auto_bind && rc != SLAPI_BIND_ANONYMOUS && > ! slapi_be_is_flag_set(be, > SLAPI_BE_FLAG_REMOTE_DATA)) { > /* check if need new password before sending > the bind success result */ > switch ( need_new_pw (pb, &t, bind_target_entry, pw_response_requested )) { > > case 1: > (void)slapi_add_pwd_control ( pb, >Index: ldap/servers/slapd/configdse.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/configdse.c,v >retrieving revision 1.6 >diff -u -8 -r1.6 configdse.c >--- ldap/servers/slapd/configdse.c 10 Nov 2006 23:45:40 -0000 1.6 >+++ ldap/servers/slapd/configdse.c 19 Feb 2007 20:32:21 -0000 >@@ -60,16 +60,18 @@ > char *mlogsize_str, > int *maxdiskspace, > int *mlogsize); > > /* List of attributes which require server restart to take effect */ > static const char *requires_restart[] = { > "cn=config:nsslapd-port", > "cn=config:nsslapd-secureport", >+ "cn=config:" CONFIG_LDAPI_FILENAME_ATTRIBUTE, >+ "cn=config:" CONFIG_LDAPI_SWITCH_ATTRIBUTE, > "cn=config:nsslapd-workingdir", > "cn=config:nsslapd-plugin", > "cn=config:nsslapd-sslclientauth", > "cn=config:nsslapd-changelogdir", > "cn=config:nsslapd-changelogsuffix", > "cn=config:nsslapd-changelogmaxentries", > "cn=config:nsslapd-changelogmaxage", > "cn=config:nsslapd-db-locks", >Index: ldap/servers/slapd/connection.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/connection.c,v >retrieving revision 1.13 >diff -u -8 -r1.13 connection.c >--- ldap/servers/slapd/connection.c 10 Nov 2006 23:45:40 -0000 1.13 >+++ ldap/servers/slapd/connection.c 19 Feb 2007 20:32:21 -0000 >@@ -506,31 +506,37 @@ > > > /* On Linux we can use TCP_CORK to get us 5-10% speed benefit when one entry is returned */ > /* Nagle needs to be turned _off_, the default is off on linux, in daemon.c */ > #if defined(LINUX) > { > int i = 1; > int ret = 0; >- /* Set TCP_CORK here */ >- ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i)); >- if (ret < 0) { >- LDAPDebug(LDAP_DEBUG_ANY, "Failed to set TCP_CORK on connection %d\n",conn->c_connid, 0, 0); >+ /* Set TCP_CORK here but only if this is not LDAPI */ >+ if(!conn->c_unix_local) >+ { >+ ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i)); >+ if (ret < 0) { >+ LDAPDebug(LDAP_DEBUG_ANY, "Failed to set TCP_CORK on connection %d\n",conn->c_connid, 0, 0); >+ } > } > #endif > > do_search( pb ); > > #if defined(LINUX) >- /* Clear TCP_CORK to flush any unsent data */ >+ /* Clear TCP_CORK to flush any unsent data but only if not LDAPI*/ > i = 0; >- ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i)); >- if (ret < 0) { >- LDAPDebug(LDAP_DEBUG_ANY, "Failed to clear TCP_CORK on connection %d\n",conn->c_connid, 0, 0); >+ if(!conn->c_unix_local) >+ { >+ ret = setsockopt(conn->c_sd,IPPROTO_TCP,TCP_CORK,&i,sizeof(i)); >+ if (ret < 0) { >+ LDAPDebug(LDAP_DEBUG_ANY, "Failed to clear TCP_CORK on connection %d\n",conn->c_connid, 0, 0); >+ } > } > } > #endif > break; > > /* for some strange reason, the console is using this old obsolete > * value for ABANDON so we have to support it until the console > * get fixed >Index: ldap/servers/slapd/daemon.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/daemon.c,v >retrieving revision 1.11 >diff -u -8 -r1.11 daemon.c >--- ldap/servers/slapd/daemon.c 10 Nov 2006 23:45:40 -0000 1.11 >+++ ldap/servers/slapd/daemon.c 19 Feb 2007 20:32:22 -0000 >@@ -87,16 +87,18 @@ > > #include "snmp_collator.h" > #include <private/pprio.h> > > #include <ssl.h> > > #include "fe.h" > >+#include "getsocketpeer.h" >+ > /* > * Define the backlog number for use in listen() call. > * We use the same definition as in ldapserver/include/base/systems.h > */ > #ifndef DAEMON_LISTEN_SIZE > #define DAEMON_LISTEN_SIZE 128 > #endif > >@@ -120,31 +122,32 @@ > > PRFileDesc* signalpipe[2]; > static int writesignalpipe = SLAPD_INVALID_SOCKET; > static int readsignalpipe = SLAPD_INVALID_SOCKET; > > #define FDS_SIGNAL_PIPE 0 > #define FDS_N_TCPS 1 > #define FDS_S_TCPS 2 >+#define FDS_I_UNIX 3 > > static int get_configured_connection_table_size(); > #ifdef RESOLVER_NEEDS_LOW_FILE_DESCRIPTORS > static void get_loopback_by_addr( void ); > #endif > > #ifdef XP_WIN32 > static int createlistensocket(unsigned short port, const PRNetAddr *listenaddr); > #endif > static PRFileDesc *createprlistensocket(unsigned short port, >- const PRNetAddr *listenaddr, int secure); >+ const PRNetAddr *listenaddr, int secure, int local); > static const char *netaddr2string(const PRNetAddr *addr, char *addrbuf, > size_t addrbuflen); > static void set_shutdown (int); >-static void setup_pr_read_pds(Connection_Table *ct, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRIntn *num_to_read); >+static void setup_pr_read_pds(Connection_Table *ct, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRFileDesc *i_unix, PRIntn *num_to_read); > > #ifdef HPUX10 > static void* catch_signals(); > #endif > > #if defined( _WIN32 ) > HANDLE hServDoneEvent = NULL; > #endif >@@ -269,33 +272,33 @@ > else > return 0; > } > > #endif > > static int > accept_and_configure(int s, PRFileDesc *pr_acceptfd, PRNetAddr *pr_netaddr, >- int addrlen, int secure, PRFileDesc **pr_clonefd) >+ int addrlen, int secure, int local, PRFileDesc **pr_clonefd) > { > int ns = 0; > > PRIntervalTime pr_timeout = PR_MillisecondsToInterval(slapd_wakeup_timer); > > #if !defined( XP_WIN32 ) /* UNIX */ > (*pr_clonefd) = PR_Accept(pr_acceptfd, pr_netaddr, pr_timeout); > if( !(*pr_clonefd) ) { > PRErrorCode prerr = PR_GetError(); > LDAPDebug( LDAP_DEBUG_ANY, "PR_Accept() failed, " > SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n", > prerr, slapd_pr_strerror(prerr), 0 ); > return(SLAPD_INVALID_SOCKET); > } > >- ns = configure_pr_socket( pr_clonefd, secure ); >+ ns = configure_pr_socket( pr_clonefd, secure, local ); > > #else /* Windows */ > if( secure ) { > (*pr_clonefd) = PR_Accept(pr_acceptfd, pr_netaddr, pr_timeout); > if( !(*pr_clonefd) ) { > PRErrorCode prerr = PR_GetError(); > LDAPDebug( LDAP_DEBUG_ANY, "PR_Accept() failed, " > SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n", >@@ -311,17 +314,17 @@ > SLAPI_COMPONENT_NAME_NSPR > " error %d (%s)\n", > prerr, slapd_pr_strerror(prerr), 0 ); > } > } > return(SLAPD_INVALID_SOCKET); > } > >- ns = configure_pr_socket( pr_clonefd, secure ); >+ ns = configure_pr_socket( pr_clonefd, secure, local ); > > } else { /* !secure */ > struct sockaddr *addr; /* NOT IPv6 enabled */ > > addr = (struct sockaddr *) slapi_ch_malloc( sizeof(struct sockaddr) ); > ns = accept (s, addr, (TCPLEN_T *)&addrlen); > > if (ns == SLAPD_INVALID_SOCKET) { >@@ -359,21 +362,21 @@ > */ > #ifdef _WIN32 > static void setup_read_fds(Connection_Table *ct, fd_set *readfds, int n_tcps, int s_tcps ); > static void handle_read_ready(Connection_Table *ct, fd_set *readfds); > static void set_timeval_ms(struct timeval *t, int ms); > #endif > /* GGOODREPL static void handle_timeout( void ); */ > static void handle_pr_read_ready(Connection_Table *ct, PRIntn num_poll); >-static int handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, int secure ); >+static int handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, int secure, int local ); > #ifdef _WIN32 > static void unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, int n_tcps, PRFileDesc *s_tcps); > #else >-static void unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, PRFileDesc *n_tcps, PRFileDesc *s_tcps); >+static void unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRFileDesc *i_unix); > #endif > static int write_pid_file(); > static int init_shutdown_detect(); > #ifdef _WIN32 > static int clear_signal(fd_set *readfdset); > #else > static int clear_signal(struct POLL_STRUCT *fds); > #endif >@@ -387,33 +390,40 @@ > int rc = 0; > > if (0 != ports->n_port) { > #if defined( XP_WIN32 ) > ports->n_socket = createlistensocket((unsigned short)ports->n_port, > &ports->n_listenaddr); > #else > ports->n_socket = createprlistensocket(ports->n_port, >- &ports->n_listenaddr, 0); >+ &ports->n_listenaddr, 0, 0); > #endif > } > > if ( config_get_security() && (0 != ports->s_port) ) { > ports->s_socket = createprlistensocket((unsigned short)ports->s_port, >- &ports->s_listenaddr, 1); >+ &ports->s_listenaddr, 1, 0); > #ifdef XP_WIN32 > ports->s_socket_native = PR_FileDesc2NativeHandle(ports->s_socket); > #endif > } else { > ports->s_socket = SLAPD_INVALID_SOCKET; > #ifdef XP_WIN32 > ports->s_socket_native = SLAPD_INVALID_SOCKET; > #endif > } > >+#ifndef XP_WIN32 >+ /* ldapi */ >+ if(0 != ports->i_port) { >+ ports->i_socket = createprlistensocket(1, &ports->i_listenaddr, 0, 1); >+ } >+#endif >+ > return( rc ); > } > > > /* Decide whether we're running on a platform which supports send with timeouts */ > static void detect_timeout_support() > { > /* Currently we know that NT4.0 or higher DOES support timeouts */ >@@ -455,31 +465,32 @@ > > /*NOTREACHED*/ > return(NULL); > } > > > void slapd_daemon( daemon_ports_t *ports ) > { >- /* We are passed a pair of ports---one for regular connections, the >- * other for SSL connections. >+ /* We are passed some ports---one for regular connections, one >+ * for SSL connections, one for ldapi connections. > */ > /* Previously there was a ton of code #defined on NET_SSL. > * This looked horrible, so now I'm doing it this way: > * If you want me to do SSL, pass me something in the ssl port number. > * If you don't, pass me zero. > */ > > #if defined( XP_WIN32 ) > int n_tcps = 0; > int s_tcps_native = 0; > #else > PRFileDesc *n_tcps = NULL; > PRFileDesc *tcps = 0; >+ PRFileDesc *i_unix = 0; > #endif > PRFileDesc *s_tcps = NULL; > PRIntn num_poll = 0; > PRIntervalTime pr_timeout = PR_MillisecondsToInterval(slapd_wakeup_timer); > PRThread *time_thread_p; > int threads; > int in_referral_mode = config_check_referral_mode(); > >@@ -499,34 +510,37 @@ > get_loopback_by_addr(); > #endif > > /* Retrieve the sockets from their hiding place */ > n_tcps = ports->n_socket; > s_tcps = ports->s_socket; > #ifdef XP_WIN32 > s_tcps_native = ports->s_socket_native; >+#else >+ i_unix = ports->i_socket; > #endif > > createsignalpipe(); > > init_shutdown_detect(); > >+ if ( > #if defined( XP_WIN32 ) >- if ( (n_tcps == SLAPD_INVALID_SOCKET) && >+ (n_tcps == SLAPD_INVALID_SOCKET) && > #else >- if ( (n_tcps == NULL) && >+ (n_tcps == NULL) && (i_unix == NULL) && > #endif > (s_tcps == NULL) ) { /* nothing to do */ > LDAPDebug( LDAP_DEBUG_ANY, > "no port to listen on\n", 0, 0, 0 ); > exit( 1 ); > } > >- unfurl_banners(the_connection_table,ports,n_tcps,s_tcps); >+ unfurl_banners(the_connection_table,ports,n_tcps,s_tcps,i_unix); > init_op_threads (); > detect_timeout_support(); > > /* Start the time thread */ > time_thread_p = PR_CreateThread(PR_SYSTEM_THREAD, > (VFP) (void *) time_thread, NULL, > PR_PRIORITY_NORMAL, PR_GLOBAL_THREAD, > PR_JOINABLE_THREAD, >@@ -575,40 +589,55 @@ > slapi_log_error(SLAPI_LOG_FATAL, "slapd_daemon", > "PR_Listen() on %s port %d failed: %s error %d (%s)\n", > netaddr2string(&ports->s_listenaddr, addrbuf, sizeof(addrbuf)), > ports->s_port, SLAPI_COMPONENT_NAME_NSPR, prerr, > slapd_pr_strerror( prerr )); > g_set_shutdown( SLAPI_SHUTDOWN_EXIT ); > } > >+#if !defined( XP_WIN32 ) >+ if( i_unix != NULL && >+ PR_Listen(i_unix, DAEMON_LISTEN_SIZE) == PR_FAILURE) { >+ PRErrorCode prerr = PR_GetError(); >+ slapi_log_error(SLAPI_LOG_FATAL, "slapd_daemon", >+ "listen() on %s failed: error %d (%s)\n", >+ ports->i_listenaddr.local.path, >+ prerr, >+ slapd_pr_strerror( prerr )); >+ g_set_shutdown( SLAPI_SHUTDOWN_EXIT ); >+ } >+#endif >+ > /* Now we write the pid file, indicating that the server is finally and listening for connections */ > write_pid_file(); > > /* The meat of the operation is in a loop on a call to select */ > while(!g_get_shutdown()) > { > #ifdef _WIN32 > fd_set readfds; > struct timeval wakeup_timer; > int oserr; > #endif > int select_return = 0; > int secure = 0; /* is a new connection an SSL one ? */ >+ int local = 0; /* is new connection an ldapi one? */ >+ > #ifndef _WIN32 > PRErrorCode prerr; > #endif > > #ifdef _WIN32 > set_timeval_ms(&wakeup_timer, slapd_wakeup_timer); > setup_read_fds(the_connection_table,&readfds,n_tcps, s_tcps_native); > /* This select needs to timeout to give the server a chance to test for shutdown */ > select_return = select(connection_table_size, &readfds, NULL, 0, &wakeup_timer); > #else >- setup_pr_read_pds(the_connection_table,n_tcps,s_tcps,&num_poll); >+ setup_pr_read_pds(the_connection_table,n_tcps,s_tcps,i_unix,&num_poll); > select_return = POLL_FN(the_connection_table->fd, num_poll, pr_timeout); > #endif > switch (select_return) { > case 0: /* Timeout */ > /* GGOODREPL handle_timeout(); */ > break; > case -1: /* Error */ > #ifdef _WIN32 >@@ -624,40 +653,46 @@ > prerr, slapd_system_strerror(prerr), 0 ); > #endif > break; > default: /* either a new connection or some new data ready */ > /* Figure out if we are dealing with one of the listen sockets */ > #ifdef _WIN32 > /* If so, then handle a new connection */ > if ( n_tcps != SLAPD_INVALID_SOCKET && FD_ISSET( n_tcps,&readfds ) ) { >- handle_new_connection(the_connection_table,n_tcps,NULL,0); >+ handle_new_connection(the_connection_table,n_tcps,NULL,0,0); > } > /* If so, then handle a new connection */ > if ( s_tcps != SLAPD_INVALID_SOCKET && FD_ISSET( s_tcps_native,&readfds ) ) { >- handle_new_connection(the_connection_table,SLAPD_INVALID_SOCKET,s_tcps,1); >+ handle_new_connection(the_connection_table,SLAPD_INVALID_SOCKET,s_tcps,1,0); > } > /* handle new data ready */ > handle_read_ready(the_connection_table,&readfds); > clear_signal(&readfds); > #else > tcps = NULL; > /* info for n_tcps is always in fd[FDS_N_TCPS] and info for s_tcps is always > * in fd[FDS_S_TCPS] */ > if( n_tcps != NULL && > the_connection_table->fd[FDS_N_TCPS].out_flags & SLAPD_POLL_FLAGS ) { > tcps = n_tcps; > } else if ( s_tcps != NULL && > the_connection_table->fd[FDS_S_TCPS].out_flags & SLAPD_POLL_FLAGS ) { > tcps = s_tcps; > secure = 1; > } >+ else if ( i_unix != 0 && >+ the_connection_table->fd[FDS_I_UNIX].out_flags & SLAPD_POLL_FLAGS ) { >+ tcps = i_unix; >+ local = 1; >+ } >+ > /* If so, then handle a new connection */ > if ( tcps != NULL ) { >- handle_new_connection(the_connection_table,SLAPD_INVALID_SOCKET,tcps,secure); >+ handle_new_connection(the_connection_table,SLAPD_INVALID_SOCKET,tcps,secure,local); > } > /* handle new data ready */ > handle_pr_read_ready(the_connection_table, connection_table_size); > clear_signal(the_connection_table->fd); > #endif > break; > } > >@@ -669,21 +704,28 @@ > > if ( ! in_referral_mode ) { > ps_stop_psearch_system(); /* stop any persistent searches */ > } > > #ifdef _WIN32 > if ( n_tcps != SLAPD_INVALID_SOCKET ) { > closesocket( n_tcps ); >+ } > #else > if ( n_tcps != NULL ) { > PR_Close( n_tcps ); >-#endif > } >+ >+ if ( i_unix != NULL ) { >+ PR_Close( i_unix ); >+ } >+ >+#endif >+ > if ( s_tcps != NULL ) { > PR_Close( s_tcps ); > } > > /* Might compete with housecleaning thread, but so far so good */ > be_flushall(); > op_thread_cleanup(); > housekeeping_stop(); /* Run this after op_thread_cleanup() logged sth */ >@@ -929,17 +971,17 @@ > } > c = next; > } > } > #endif /* _WIN32 */ > > static int first_time_setup_pr_read_pds = 1; > static void >-setup_pr_read_pds(Connection_Table *ct, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRIntn *num_to_read) >+setup_pr_read_pds(Connection_Table *ct, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRFileDesc *i_unix, PRIntn *num_to_read) > { > Connection *c= NULL; > Connection *next= NULL; > LBER_SOCKET socketdesc = SLAPD_INVALID_SOCKET; > int accept_new_connections; > static int last_accept_new_connections = -1; > PRIntn count = 0; > slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >@@ -994,32 +1036,45 @@ > ct->fd[FDS_S_TCPS].in_flags = SLAPD_POLL_FLAGS; > ct->fd[FDS_S_TCPS].out_flags = 0; > LDAPDebug( LDAP_DEBUG_HOUSE, > "listening for SSL connections on %d\n", socketdesc, 0, 0 ); > } else { > ct->fd[FDS_S_TCPS].fd = NULL; > } > >-#if !defined(_WIN32) >+#if !defined(_WIN32) >+ /* The fds entry for i_unix is always FDS_I_UNIX */ >+ if (i_unix != NULL && accept_new_connections) >+ { >+ ct->fd[FDS_I_UNIX].fd = i_unix; >+ ct->fd[FDS_I_UNIX].in_flags = SLAPD_POLL_FLAGS; >+ ct->fd[FDS_I_UNIX].out_flags = 0; >+ LDAPDebug( LDAP_DEBUG_HOUSE, >+ "listening for LDAPI connections on %d\n", socketdesc, 0, 0 ); >+ } else { >+ ct->fd[FDS_S_TCPS].fd = NULL; >+ } >+ > /* The fds entry for the signalpipe is always FDS_SIGNAL_PIPE */ > ct->fd[FDS_SIGNAL_PIPE].fd = signalpipe[0]; > ct->fd[FDS_SIGNAL_PIPE].in_flags = SLAPD_POLL_FLAGS; > ct->fd[FDS_SIGNAL_PIPE].out_flags = 0; > #else > ct->fd[FDS_SIGNAL_PIPE].fd = NULL; > #endif > first_time_setup_pr_read_pds = 0; > } > > /* count is the number of entries we've place in the fds array. > * we always put n_tcps in slot FDS_N_TCPS, s_tcps in slot > * FDS_S_TCPS and the signal pipe in slot FDS_SIGNAL_PIPE >- * so we now set count to 3 */ >- count = 3; >+ * and i_unix in FDS_I_UNIX >+ * so we now set count to 4 */ >+ count = 4; > > /* Walk down the list of active connections to find > * out which connections we should poll over. If a connection > * is no longer in use, we should remove it from the linked > * list. */ > c = connection_table_get_first_active_connection (ct); > while (c) > { >@@ -1793,29 +1848,277 @@ > * return for a type handle. Whenever the object is created > * or destroyed the factory is called with the handle so > * that it may call the constructors or destructors registered > * with it. > */ > connection_type= factory_register_type(SLAPI_EXT_CONNECTION,offsetof(Connection,c_extension)); > } > } >- >+ >+int >+slapd_bind_local_user(Connection *conn) >+{ >+ int ret = -1; >+ uid_t uid = 0; >+ gid_t gid = 0; >+ >+ /* observe configuration for auto binding */ >+ /* bind at all? */ >+ if( config_get_ldapi_bind_switch() && >+ 0 == slapd_get_socket_peer(conn->c_prfd, &uid, &gid)) >+ { >+ /* map users to a dn >+ root may also map to an entry >+ */ >+ >+ /* require real entry? */ >+ if(config_get_ldapi_map_entries()) >+ { >+ /* get uid type to map to (e.g. uidNumber) */ >+ char *utype = config_get_ldapi_uidnumber_type(); >+ /* get gid type to map to (e.g. gidNumber) */ >+ char *gtype = config_get_ldapi_gidnumber_type(); >+ /* get base dn for search */ >+ char *base_dn = config_get_ldapi_search_base_dn(); >+ >+ /* search vars */ >+ Slapi_PBlock *search_pb = 0; >+ Slapi_Entry **entries = 0; >+ int result; >+ >+ /* filter manipulation vars */ >+ char *one_type = 0; >+ char *filter_tpl = 0; >+ char *filter = 0; >+ int len = 0; >+ >+ /* create filter, matching whatever is given */ >+ if(utype && gtype) >+ { >+ filter_tpl = "(&(%s=%u)(%s=%u))"; >+ } >+ else >+ { >+ if(utype || gtype) >+ { >+ filter_tpl = "(%s=%u)"; >+ if(utype) >+ one_type = utype; >+ else >+ one_type = gtype; >+ } >+ else >+ { >+ goto entry_map_free; >+ } >+ } >+ >+ len = strlen(filter_tpl) + >+ (SLAPD_TYPICAL_ATTRIBUTE_NAME_MAX_LENGTH * 2) + >+ 51; /* uid, gid, padding */ >+ >+ filter = (char*)slapi_ch_malloc(len); >+ >+ if(one_type) >+ { >+ if(one_type == utype) >+ sprintf(filter, filter_tpl, >+ utype, uid); >+ else >+ sprintf(filter, filter_tpl, >+ gtype, gid); >+ } >+ else >+ { >+ sprintf(filter, filter_tpl, >+ utype, uid, gtype, gid); >+ } >+ >+ /* search for single entry matching types */ >+ search_pb = slapi_pblock_new(); >+ >+ slapi_search_internal_set_pb( >+ search_pb, >+ base_dn, >+ LDAP_SCOPE_SUBTREE, >+ filter, >+ NULL, 0, NULL, NULL, >+ (void*)plugin_get_default_component_id(), >+ 0); >+ >+ slapi_search_internal_pb(search_pb); >+ slapi_pblock_get( >+ search_pb, >+ SLAPI_PLUGIN_INTOP_RESULT, >+ &result); >+ if(LDAP_SUCCESS == result) >+ slapi_pblock_get( >+ search_pb, >+ SLAPI_PLUGIN_INTOP_SEARCH_ENTRIES, >+ &entries); >+ >+ if(entries) >+ { >+ /* zero or multiple entries fail */ >+ if(entries[0] && 0 == entries[1]) >+ { >+ /* observe account locking */ >+ ret = check_account_lock( >+ 0, /* pb not req */ >+ entries[0], >+ 0, /* no response control */ >+ 1 /* inactivation only */ >+ ); >+ >+ if(0 == ret) >+ { >+ char *auth_dn = strdup( >+ slapi_entry_get_ndn( >+ entries[0])); >+ >+ auth_dn = slapi_dn_normalize( >+ auth_dn); >+ >+ bind_credentials_set( >+ conn, >+ SLAPD_AUTH_OS, >+ auth_dn, >+ NULL, NULL, >+ NULL , entries[0]); >+ >+ ret = 0; >+ } >+ } >+ } >+ >+entry_map_free: >+ /* auth_dn consumed by bind creds set */ >+ slapi_free_search_results_internal(search_pb); >+ slapi_pblock_destroy(search_pb); >+ slapi_ch_free_string(&filter); >+ slapi_ch_free_string(&utype); >+ slapi_ch_free_string(>ype); >+ slapi_ch_free_string(&base_dn); >+ } >+ >+ if(ret && 0 == uid) >+ { >+ /* map unix root (uidNumber:0)? */ >+ char *root_dn = config_get_ldapi_root_dn(); >+ >+ if(root_dn) >+ { >+ Slapi_DN *edn = slapi_sdn_new_dn_byref( >+ slapi_dn_normalize(root_dn)); >+ Slapi_Entry *e = 0; >+ >+ /* root might be locked too! :) */ >+ ret = slapi_search_internal_get_entry( >+ edn, 0, >+ &e, >+ (void*)plugin_get_default_component_id() >+ >+ ); >+ >+ if(0 == ret && e) >+ { >+ ret = check_account_lock( >+ 0, /* pb not req */ >+ e, >+ 0, /* no response control */ >+ 1 /* inactivation only */ >+ ); >+ >+ if(1 == ret) >+ /* sorry root, >+ * just not cool enough >+ */ >+ goto root_map_free; >+ } >+ >+ /* it's ok not to find the entry, >+ * dn doesn't have to have an entry >+ * e.g. cn=Directory Manager >+ */ >+ bind_credentials_set( >+ conn, SLAPD_AUTH_OS, root_dn, >+ NULL, NULL, NULL , e); >+ >+root_map_free: >+ /* root_dn consumed by bind creds set */ >+ slapi_sdn_free(&edn); >+ slapi_entry_free(e); >+ ret = 0; >+ } >+ } >+ >+ if(ret) >+ { >+ /* create phony auth dn? */ >+ char *base = config_get_ldapi_auto_dn_suffix(); >+ if(base) >+ { >+ char *tpl = "gidNumber=%u+uidNumber=%u,"; >+ int len = >+ strlen(tpl) + >+ strlen(base) + >+ 51 /* uid,gid,null,w/padding */ >+ ; >+ char *dn_str = (char*)slapi_ch_malloc( >+ len); >+ char *auth_dn = (char*)slapi_ch_malloc( >+ len); >+ >+ dn_str[0] = 0; >+ strcpy(dn_str, tpl); >+ strcat(dn_str, base); >+ >+ sprintf(auth_dn, dn_str, gid, uid); >+ >+ auth_dn = slapi_dn_normalize(auth_dn); >+ >+ bind_credentials_set( >+ conn, >+ SLAPD_AUTH_OS, >+ auth_dn, >+ NULL, NULL, NULL , NULL); >+ >+ /* auth_dn consumed by bind creds set */ >+ slapi_ch_free_string(&dn_str); >+ slapi_ch_free_string(&base); >+ ret = 0; >+ } >+ } >+ } >+ >+bail: >+ /* if all fails, the peer is anonymous */ >+ if(conn->c_dn) >+ { >+ /* log the auto bind */ >+ slapi_log_access(LDAP_DEBUG_STATS, "conn=%d AUTOBIND dn=\"%s\"\n", conn->c_connid, conn->c_dn); >+ } >+ >+ return ret; >+} >+ >+ > /* NOTE: this routine is not reentrant */ > static int >-handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, int secure) >+handle_new_connection(Connection_Table *ct, int tcps, PRFileDesc *pr_acceptfd, int secure, int local) > { > int ns = 0; > Connection *conn = NULL; > /* struct sockaddr_in from;*/ > PRNetAddr from; > PRFileDesc *pr_clonefd = NULL; > > if ( (ns = accept_and_configure( tcps, pr_acceptfd, &from, >- sizeof(from), secure, &pr_clonefd)) == SLAPD_INVALID_SOCKET ) { >+ sizeof(from), secure, local, &pr_clonefd)) == SLAPD_INVALID_SOCKET ) { > return -1; > } > > /* get a new Connection from the Connection Table */ > conn= connection_table_get_connection(ct,ns); > if(conn==NULL) > { > PR_Close(pr_acceptfd); >@@ -1932,16 +2235,25 @@ > if ( conn != NULL && conn->c_next == NULL && conn->c_prev == NULL ) > { > /* Now give the new connection to the connection code */ > connection_table_move_connection_on_to_active_list(the_connection_table,conn); > } > > PR_Unlock( conn->c_mutex ); > >+#if !defined( XP_WIN32 ) >+ /* ldapi */ >+ if( local ) >+ { >+ conn->c_unix_local = 1; >+ slapd_bind_local_user(conn); >+ } >+#endif >+ > connection_new_private(conn); > > g_increment_current_conn_count(); > > return 0; > } > > static int init_shutdown_detect() >@@ -2014,17 +2326,17 @@ > return 0; > } > > #if defined( XP_WIN32 ) > static void > unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, int n_tcps, PRFileDesc *s_tcps) > #else > static void >-unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, PRFileDesc *n_tcps, PRFileDesc *s_tcps) >+unfurl_banners(Connection_Table *ct,daemon_ports_t *ports, PRFileDesc *n_tcps, PRFileDesc *s_tcps, PRFileDesc *i_unix) > #endif > { > slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); > char addrbuf[ 256 ]; > > if ( ct->size <= slapdFrontendConfig->reservedescriptors ) { > #ifdef _WIN32 > LDAPDebug( LDAP_DEBUG_ANY, >@@ -2074,16 +2386,26 @@ > } > > if ( s_tcps != NULL ) { /* LDAP over SSL; separate port */ > LDAPDebug( LDAP_DEBUG_ANY, > "Listening on %s port %d for LDAPS requests\n", > netaddr2string(&ports->s_listenaddr, addrbuf, sizeof(addrbuf)), > ports->s_port, 0 ); > } >+ >+#if !defined( XP_WIN32 ) >+ if ( i_unix != NULL ) { /* LDAPI */ >+ LDAPDebug( LDAP_DEBUG_ANY, >+ "Listening on %s for LDAPI requests\n", >+ ports->i_listenaddr.local.path, >+ 0, 0 ); >+ } >+#endif >+ > } > > #if defined( _WIN32 ) > /* On Windows, we signal the SCM when we're ready to accept connections */ > static int > write_pid_file() > { > if( SlapdIsAService() ) >@@ -2268,61 +2590,92 @@ > suppressed: > return -1; > } /* createlistensocket */ > #endif /* XP_WIN32 */ > > > static PRFileDesc * > createprlistensocket(PRUint16 port, const PRNetAddr *listenaddr, >- int secure) >+ int secure, int local) > { > PRFileDesc *sock; > PRNetAddr sa_server; > PRErrorCode prerr = 0; > PRSocketOptionData pr_socketoption; > char addrbuf[ 256 ]; > char *logname = "createprlistensocket"; >+ int socktype = PR_AF_INET6; >+ char *socktype_s = "PR_AF_INET"; > > if (!port) goto suppressed; > > PR_ASSERT( listenaddr != NULL ); > >+ if(local) { /* ldapi */ >+ socktype = PR_AF_LOCAL; >+ socktype_s = "PR_AF_LOCAL"; >+ } >+ > /* create TCP socket */ >- if ((sock = PR_OpenTCPSocket(PR_AF_INET6)) == SLAPD_INVALID_SOCKET) { >+ if ((sock = PR_OpenTCPSocket(socktype)) == SLAPD_INVALID_SOCKET) { > prerr = PR_GetError(); > slapi_log_error(SLAPI_LOG_FATAL, logname, >- "PR_OpenTCPSocket(PR_AF_INET6) failed: %s error %d (%s)\n", >+ "PR_OpenTCPSocket(%s) failed: %s error %d (%s)\n", >+ socktype_s, > SLAPI_COMPONENT_NAME_NSPR, prerr, slapd_pr_strerror(prerr)); > goto failed; > } > > pr_socketoption.option = PR_SockOpt_Reuseaddr; > pr_socketoption.value.reuse_addr = 1; > if ( PR_SetSocketOption(sock, &pr_socketoption ) == PR_FAILURE) { > prerr = PR_GetError(); > slapi_log_error(SLAPI_LOG_FATAL, logname, > "PR_SetSocketOption(PR_SockOpt_Reuseaddr) failed: %s error %d (%s)\n", > SLAPI_COMPONENT_NAME_NSPR, prerr, slapd_pr_strerror( prerr )); > goto failed; > } > > /* set up listener address, including port */ > memcpy(&sa_server, listenaddr, sizeof(sa_server)); >- PRLDAP_SET_PORT( &sa_server, port ); >+ >+ if(!local) >+ PRLDAP_SET_PORT( &sa_server, port ); > > if ( PR_Bind(sock, &sa_server) == PR_FAILURE) { > prerr = PR_GetError(); >- slapi_log_error(SLAPI_LOG_FATAL, logname, >+ if(!local) >+ { >+ slapi_log_error(SLAPI_LOG_FATAL, logname, > "PR_Bind() on %s port %d failed: %s error %d (%s)\n", > netaddr2string(&sa_server, addrbuf, sizeof(addrbuf)), port, > SLAPI_COMPONENT_NAME_NSPR, prerr, slapd_pr_strerror(prerr)); >+ } >+ else >+ { >+ slapi_log_error(SLAPI_LOG_FATAL, logname, >+ "PR_Bind() on %s file %s failed: %s error %d (%s)\n", >+ netaddr2string(&sa_server, addrbuf, sizeof(addrbuf)), >+ sa_server.local.path, >+ SLAPI_COMPONENT_NAME_NSPR, prerr, slapd_pr_strerror(prerr)); >+ } >+ > goto failed; > } > >+ if(local) >+ { >+ if(chmod(listenaddr->local.path, >+ S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)) >+ { >+ slapi_log_error(SLAPI_LOG_FATAL, logname, "err: %d", errno); >+ } >+ } >+ > return( sock ); > > failed: > #ifdef XP_WIN32 > WSACleanup(); > #endif /* XP_WIN32 */ > exit( 1 ); > >@@ -2531,17 +2884,17 @@ > > listener = the_connection_table->fd[FDS_S_TCPS].fd; > > return listener; > } > > > >-int configure_pr_socket( PRFileDesc **pr_socket, int secure ) >+int configure_pr_socket( PRFileDesc **pr_socket, int secure, int local ) > { > int ns = 0; > int reservedescriptors = config_get_reservedescriptors(); > int enable_nagle = config_get_nagle(); > > PRSocketOptionData pr_socketoption; > > #if defined(LINUX) >@@ -2612,28 +2965,28 @@ > > if ( have_send_timeouts ) { > daemon_configure_send_timeout(ns,config_get_ioblocktimeout()); > } > > } /* else (secure) */ > > >- if ( !enable_nagle ) { >+ if ( !enable_nagle && !local ) { > > pr_socketoption.option = PR_SockOpt_NoDelay; > pr_socketoption.value.no_delay = 1; > if ( PR_SetSocketOption( *pr_socket, &pr_socketoption ) == PR_FAILURE) { > PRErrorCode prerr = PR_GetError(); > LDAPDebug( LDAP_DEBUG_ANY, > "PR_SetSocketOption(PR_SockOpt_NoDelay) failed, " > SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n", > prerr, slapd_pr_strerror( prerr ), 0 ); > } >- } else { >+ } else if( !local) { > pr_socketoption.option = PR_SockOpt_NoDelay; > pr_socketoption.value.no_delay = 0; > if ( PR_SetSocketOption( *pr_socket, &pr_socketoption ) == PR_FAILURE) { > PRErrorCode prerr = PR_GetError(); > LDAPDebug( LDAP_DEBUG_ANY, > "PR_SetSocketOption(PR_SockOpt_NoDelay) failed, " > SLAPI_COMPONENT_NAME_NSPR " error %d (%s)\n", > prerr, slapd_pr_strerror( prerr ), 0 ); >Index: ldap/servers/slapd/fe.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/fe.h,v >retrieving revision 1.5 >diff -u -8 -r1.5 fe.h >--- ldap/servers/slapd/fe.h 10 Nov 2006 23:45:40 -0000 1.5 >+++ ldap/servers/slapd/fe.h 19 Feb 2007 20:32:22 -0000 >@@ -168,17 +168,17 @@ > void daemon_register_connection(); > int slapd_listenhost2addr( const char *listenhost, PRNetAddr *addr ); > int daemon_register_reslimits( void ); > int secure_read_function( int ignore , void *buffer, int count, struct lextiof_socket_private *handle ); > int secure_write_function( int ignore, const void *buffer, int count, struct lextiof_socket_private *handle ); > int read_function(int ignore, void *buffer, int count, struct lextiof_socket_private *handle ); > int write_function(int ignore, const void *buffer, int count, struct lextiof_socket_private *handle ); > PRFileDesc * get_ssl_listener_fd(); >-int configure_pr_socket( PRFileDesc **pr_socket, int secure ); >+int configure_pr_socket( PRFileDesc **pr_socket, int secure, int local ); > void configure_ns_socket( int * ns ); > > /* > * sasl_io.c > */ > int sasl_read_function(int ignore, void *buffer, int count, struct lextiof_socket_private *handle ); > int sasl_write_function(int ignore, const void *buffer, int count, struct lextiof_socket_private *handle ); > int sasl_io_enable(Connection *c); >Index: ldap/servers/slapd/libglobs.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/libglobs.c,v >retrieving revision 1.14 >diff -u -8 -r1.14 libglobs.c >--- ldap/servers/slapd/libglobs.c 10 Nov 2006 23:45:40 -0000 1.14 >+++ ldap/servers/slapd/libglobs.c 19 Feb 2007 20:32:23 -0000 >@@ -454,16 +454,43 @@ > (void**)&global_slapdFrontendConfig.auditlog_exptimeunit, > CONFIG_STRING_OR_UNKNOWN, NULL}, > {CONFIG_PW_SYNTAX_ATTRIBUTE, config_set_pw_syntax, > NULL, 0, > (void**)&global_slapdFrontendConfig.pw_policy.pw_syntax, CONFIG_ON_OFF, NULL}, > {CONFIG_LISTENHOST_ATTRIBUTE, config_set_listenhost, > NULL, 0, > (void**)&global_slapdFrontendConfig.listenhost, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_FILENAME_ATTRIBUTE, config_set_ldapi_filename, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_filename, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_SWITCH_ATTRIBUTE, config_set_ldapi_switch, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_switch, CONFIG_ON_OFF, NULL}, >+ {CONFIG_LDAPI_BIND_SWITCH_ATTRIBUTE, config_set_ldapi_bind_switch, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_bind_switch, CONFIG_ON_OFF, NULL}, >+ {CONFIG_LDAPI_ROOT_DN_ATTRIBUTE, config_set_ldapi_root_dn, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_root_dn, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_MAP_ENTRIES_ATTRIBUTE, config_set_ldapi_map_entries, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_map_entries, CONFIG_ON_OFF, NULL}, >+ {CONFIG_LDAPI_UIDNUMBER_TYPE_ATTRIBUTE, config_set_ldapi_uidnumber_type, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_uidnumber_type, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_GIDNUMBER_TYPE_ATTRIBUTE, config_set_ldapi_gidnumber_type, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_gidnumber_type, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_SEARCH_BASE_DN_ATTRIBUTE, config_set_ldapi_search_base_dn, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_search_base_dn, CONFIG_STRING, NULL}, >+ {CONFIG_LDAPI_AUTO_DN_SUFFIX_ATTRIBUTE, config_set_ldapi_auto_dn_suffix, >+ NULL, 0, >+ (void**)&global_slapdFrontendConfig.ldapi_auto_dn_suffix, CONFIG_STRING, NULL}, > {CONFIG_ACCESSLOG_MINFREEDISKSPACE_ATTRIBUTE, NULL, > log_set_mindiskspace, SLAPD_ACCESS_LOG, > (void**)&global_slapdFrontendConfig.accesslog_minfreespace, CONFIG_INT, NULL}, > {CONFIG_ERRORLOG_MAXNUMOFLOGSPERDIR_ATTRIBUTE, NULL, > log_set_numlogsperdir, SLAPD_ERROR_LOG, > (void**)&global_slapdFrontendConfig.errorlog_maxnumlogs, CONFIG_INT, NULL}, > {CONFIG_SECURELISTENHOST_ATTRIBUTE, config_set_securelistenhost, > NULL, 0, >@@ -745,16 +772,25 @@ > LDAPDebug ( LDAP_DEBUG_ANY, > "FrontendConfig_init: failed to initialize cfg_rwlock. Exiting now.", > 0,0,0 ); > exit(-1); > } > > cfg->port = LDAP_PORT; > cfg->secureport = LDAPS_PORT; >+ cfg->ldapi_filename = slapi_ch_strdup(SLAPD_LDAPI_DEFAULT_FILENAME); >+ cfg->ldapi_switch = LDAP_ON; >+ cfg->ldapi_bind_switch = LDAP_OFF; >+ cfg->ldapi_root_dn = slapi_ch_strdup("cn=Directory Manager"); >+ cfg->ldapi_map_entries = LDAP_OFF; >+ cfg->ldapi_uidnumber_type = slapi_ch_strdup("uidNumber"); >+ cfg->ldapi_gidnumber_type = slapi_ch_strdup("gidNumber"); >+ cfg->ldapi_search_base_dn = slapi_ch_strdup("dc=example, dc=com"); >+ cfg->ldapi_auto_dn_suffix = slapi_ch_strdup("cn=peercred,cn=external,cn=auth"); > cfg->threadnumber = SLAPD_DEFAULT_MAX_THREADS; > cfg->maxthreadsperconn = SLAPD_DEFAULT_MAX_THREADS_PER_CONN; > cfg->reservedescriptors = SLAPD_DEFAULT_RESERVE_FDS; > cfg->idletimeout = SLAPD_DEFAULT_IDLE_TIMEOUT; > cfg->ioblocktimeout = SLAPD_DEFAULT_IOBLOCK_TIMEOUT; > cfg->outbound_ldap_io_timeout = SLAPD_DEFAULT_OUTBOUND_LDAP_IO_TIMEOUT; > cfg->max_filter_nest_level = SLAPD_DEFAULT_MAX_FILTER_NEST_LEVEL; > >@@ -1137,16 +1173,173 @@ > slapdFrontendConfig->listenhost = slapi_ch_strdup ( value ); > > CFG_UNLOCK_WRITE(slapdFrontendConfig); > } > return retVal; > } > > int >+config_set_ldapi_filename( const char *attrname, char *value, char *errorbuf, int apply ) { >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_filename) ); >+ slapdFrontendConfig->ldapi_filename = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+int >+config_set_ldapi_switch( const char *attrname, char *value, char *errorbuf, int apply ) { >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ retVal = config_set_onoff(attrname, >+ value, >+ &(slapdFrontendConfig->ldapi_switch), >+ errorbuf, >+ apply); >+ >+ return retVal; >+} >+ >+int config_set_ldapi_bind_switch( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ retVal = config_set_onoff(attrname, >+ value, >+ &(slapdFrontendConfig->ldapi_bind_switch), >+ errorbuf, >+ apply); >+ >+ return retVal; >+} >+ >+int config_set_ldapi_root_dn( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_root_dn) ); >+ slapdFrontendConfig->ldapi_root_dn = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+int config_set_ldapi_map_entries( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ retVal = config_set_onoff(attrname, >+ value, >+ &(slapdFrontendConfig->ldapi_map_entries), >+ errorbuf, >+ apply); >+ >+ return retVal; >+} >+ >+int config_set_ldapi_uidnumber_type( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_uidnumber_type) ); >+ slapdFrontendConfig->ldapi_uidnumber_type = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+int config_set_ldapi_gidnumber_type( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_gidnumber_type) ); >+ slapdFrontendConfig->ldapi_gidnumber_type = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+int config_set_ldapi_search_base_dn( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_search_base_dn) ); >+ slapdFrontendConfig->ldapi_search_base_dn = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+int config_set_ldapi_auto_dn_suffix( const char *attrname, char *value, char *errorbuf, int apply ) >+{ >+ int retVal = LDAP_SUCCESS; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) { >+ return LDAP_OPERATIONS_ERROR; >+ } >+ >+ if ( apply) { >+ CFG_LOCK_WRITE(slapdFrontendConfig); >+ >+ slapi_ch_free ( (void **) &(slapdFrontendConfig->ldapi_auto_dn_suffix) ); >+ slapdFrontendConfig->ldapi_auto_dn_suffix = slapi_ch_strdup ( value ); >+ CFG_UNLOCK_WRITE(slapdFrontendConfig); >+ } >+ return retVal; >+} >+ >+ >+int > config_set_securelistenhost( const char *attrname, char *value, char *errorbuf, int apply ) { > int retVal = LDAP_SUCCESS; > slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); > > if ( config_value_is_null( attrname, value, errorbuf, 0 )) { > return LDAP_OPERATIONS_ERROR; > } > >@@ -3061,16 +3254,110 @@ > retVal = slapdFrontendConfig->port; > CFG_UNLOCK_READ(slapdFrontendConfig); > > return retVal; > > } > > char * >+config_get_ldapi_filename(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_filename); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+ >+int config_get_ldapi_switch(){ >+ int retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapdFrontendConfig->ldapi_switch; >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+int config_get_ldapi_bind_switch(){ >+ int retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapdFrontendConfig->ldapi_bind_switch; >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+char *config_get_ldapi_root_dn(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_root_dn); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+int config_get_ldapi_map_entries(){ >+ int retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapdFrontendConfig->ldapi_map_entries; >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+char *config_get_ldapi_uidnumber_type(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_uidnumber_type); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+char *config_get_ldapi_gidnumber_type(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_gidnumber_type); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+char *config_get_ldapi_search_base_dn(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_search_base_dn); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+char *config_get_ldapi_auto_dn_suffix(){ >+ char *retVal; >+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); >+ CFG_LOCK_READ(slapdFrontendConfig); >+ retVal = slapi_ch_strdup(slapdFrontendConfig->ldapi_auto_dn_suffix); >+ CFG_UNLOCK_READ(slapdFrontendConfig); >+ >+ return retVal; >+} >+ >+ >+char * > config_get_workingdir() { > slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); > char *retVal; > > CFG_LOCK_READ(slapdFrontendConfig); > retVal = slapi_ch_strdup(slapdFrontendConfig->workingdir); > CFG_UNLOCK_READ(slapdFrontendConfig); > >Index: ldap/servers/slapd/main.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/main.c,v >retrieving revision 1.17 >diff -u -8 -r1.17 main.c >--- ldap/servers/slapd/main.c 14 Dec 2006 23:16:54 -0000 1.17 >+++ ldap/servers/slapd/main.c 19 Feb 2007 20:32:24 -0000 >@@ -607,16 +607,17 @@ > return 0; > } else > { > return -1; > } > } > #endif /* WIN32 */ > >+ > int > main( int argc, char **argv) > { > int return_value = 0; > slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); > daemon_ports_t ports_info = {0}; > Slapi_Backend *be = NULL; > int init_ssl; >@@ -849,16 +850,25 @@ > } > > ports_info.s_port = (unsigned short)s_port; > if ( slapd_listenhost2addr( config_get_securelistenhost(), > &ports_info.s_listenaddr ) != 0 ) { > return(1); > } > >+ if( config_get_ldapi_switch() && >+ config_get_ldapi_filename() != 0) >+ { >+ ports_info.i_port = 1; /* flag ldapi as on */ >+ ports_info.i_listenaddr.local.family = PR_AF_LOCAL; >+ strcpy(ports_info.i_listenaddr.local.path, config_get_ldapi_filename()); >+ unlink(ports_info.i_listenaddr.local.path); >+ } >+ > return_value = daemon_pre_setuid_init(&ports_info); > if (0 != return_value) { > LDAPDebug( LDAP_DEBUG_ANY, "Failed to init daemon\n", > 0, 0, 0 ); > exit(1); > } > } > >Index: ldap/servers/slapd/passwd_extop.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/passwd_extop.c,v >retrieving revision 1.14 >diff -u -8 -r1.14 passwd_extop.c >--- ldap/servers/slapd/passwd_extop.c 28 Nov 2006 18:02:07 -0000 1.14 >+++ ldap/servers/slapd/passwd_extop.c 19 Feb 2007 20:32:25 -0000 >@@ -587,17 +587,17 @@ > /* Refuse the operation because they're bound anonymously */ > errMesg = "Anonymous Binds are not allowed.\n"; > rc = LDAP_INSUFFICIENT_ACCESS; > goto free_and_return; > } > > if (oldPasswd == NULL || *oldPasswd == '\0') { > /* If user is authenticated, they already gave their password during >- the bind operation (or used sasl or client cert auth) */ >+ the bind operation (or used sasl or client cert auth or OS creds) */ > slapi_pblock_get(pb, SLAPI_CONN_AUTHMETHOD, &authmethod); > if (!authmethod || !strcmp(authmethod, SLAPD_AUTH_NONE)) { > errMesg = "User must be authenticated to the directory server.\n"; > rc = LDAP_INSUFFICIENT_ACCESS; > goto free_and_return; > } > } > >Index: ldap/servers/slapd/pblock.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/pblock.c,v >retrieving revision 1.8 >diff -u -8 -r1.8 pblock.c >--- ldap/servers/slapd/pblock.c 10 Nov 2006 23:45:40 -0000 1.8 >+++ ldap/servers/slapd/pblock.c 19 Feb 2007 20:32:25 -0000 >@@ -207,16 +207,18 @@ > if (authtype == NULL) { > (*(char **)value) = NULL; > } else if (strcasecmp(authtype, SLAPD_AUTH_NONE) == 0) { > (*(char **)value) = SLAPD_AUTH_NONE; > } else if (strcasecmp(authtype, SLAPD_AUTH_SIMPLE) == 0) { > (*(char **)value) = SLAPD_AUTH_SIMPLE; > } else if (strcasecmp(authtype, SLAPD_AUTH_SSL) == 0) { > (*(char **)value) = SLAPD_AUTH_SSL; >+ } else if (strcasecmp(authtype, SLAPD_AUTH_OS) == 0) { >+ (*(char **)value) = SLAPD_AUTH_OS; > } else if (strncasecmp(authtype, SLAPD_AUTH_SASL, > strlen(SLAPD_AUTH_SASL)) == 0) { > (*(char **)value) = SLAPD_AUTH_SASL; > } else { > (*(char **)value) = "unknown"; > } > break; > case SLAPI_CONN_AUTHMETHOD: >Index: ldap/servers/slapd/proto-slap.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/proto-slap.h,v >retrieving revision 1.25 >diff -u -8 -r1.25 proto-slap.h >--- ldap/servers/slapd/proto-slap.h 10 Nov 2006 23:45:40 -0000 1.25 >+++ ldap/servers/slapd/proto-slap.h 19 Feb 2007 20:32:26 -0000 >@@ -234,16 +234,25 @@ > int config_set_port( const char *attrname, char *port, char *errorbuf, int apply ); > int config_set_secureport( const char *attrname, char *port, char *errorbuf, int apply ); > int config_set_SSLclientAuth( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_ssl_check_hostname( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_SSL3ciphers( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_localhost( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_listenhost( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_securelistenhost( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_filename( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_switch( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_bind_switch( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_root_dn( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_map_entries( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_uidnumber_type( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_gidnumber_type( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_search_base_dn( const char *attrname, char *value, char *errorbuf, int apply ); >+int config_set_ldapi_auto_dn_suffix( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_srvtab( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_sizelimit( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_lastmod( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_nagle( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_accesscontrol( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_security( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_readonly( const char *attrname, char *value, char *errorbuf, int apply ); > int config_set_schemacheck( const char *attrname, char *value, char *errorbuf, int apply ); >@@ -329,16 +338,25 @@ > #endif /* !_WIN32 */ > > int config_get_SSLclientAuth(); > int config_get_ssl_check_hostname(); > char *config_get_SSL3ciphers(); > char *config_get_localhost(); > char *config_get_listenhost(); > char *config_get_securelistenhost(); >+char *config_get_ldapi_filename(); >+int config_get_ldapi_switch(); >+int config_get_ldapi_bind_switch(); >+char *config_get_ldapi_root_dn(); >+int config_get_ldapi_map_entries(); >+char *config_get_ldapi_uidnumber_type(); >+char *config_get_ldapi_gidnumber_type(); >+char *config_get_ldapi_search_base_dn(); >+char *config_get_ldapi_auto_dn_suffix(); > char *config_get_srvtab(); > int config_get_sizelimit(); > char *config_get_pw_storagescheme(); > int config_get_pw_change(); > int config_get_pw_history(); > int config_get_pw_must_change(); > int config_get_pw_syntax(); > int config_get_pw_minlength(); >@@ -733,17 +751,17 @@ > */ > void pw_init( void ); > int need_new_pw( Slapi_PBlock *pb, long *t, Slapi_Entry *e, int pwresponse_req ); > int update_pw_info( Slapi_PBlock *pb , char *old_pw ); > int check_pw_syntax( Slapi_PBlock *pb, const Slapi_DN *sdn, Slapi_Value **vals, > char **old_pw, Slapi_Entry *e, int mod_op ); > int check_pw_syntax_ext( Slapi_PBlock *pb, const Slapi_DN *sdn, Slapi_Value **vals, > char **old_pw, Slapi_Entry *e, int mod_op, Slapi_Mods *smods ); >-int check_account_lock( Slapi_PBlock *pb, Slapi_Entry * bind_target_entry, int pwresponse_req); >+int check_account_lock( Slapi_PBlock *pb, Slapi_Entry * bind_target_entry, int pwresponse_req, int account_inactivation_only /*no wire/no pw policy*/); > int check_pw_minage( Slapi_PBlock *pb, const Slapi_DN *sdn, struct berval **vals) ; > void add_password_attrs( Slapi_PBlock *pb, Operation *op, Slapi_Entry *e ); > void mod_allowchange_aci(char *val); > void pw_mod_allowchange_aci(int pw_prohibit_change); > void pw_add_allowchange_aci(Slapi_Entry *e, int pw_prohibit_change); > > /* > * pw_retry.c >Index: ldap/servers/slapd/pw_mgmt.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/pw_mgmt.c,v >retrieving revision 1.7 >diff -u -8 -r1.7 pw_mgmt.c >--- ldap/servers/slapd/pw_mgmt.c 10 Nov 2006 23:45:40 -0000 1.7 >+++ ldap/servers/slapd/pw_mgmt.c 19 Feb 2007 20:32:26 -0000 >@@ -286,17 +286,17 @@ > } > delete_passwdPolicy(&pwpolicy); > /* passes checking, return 0 */ > return( 0 ); > } > > /* check_account_lock is called before bind opeation; this could be a pre-op. */ > int >-check_account_lock ( Slapi_PBlock *pb, Slapi_Entry * bind_target_entry, int pwresponse_req) { >+check_account_lock ( Slapi_PBlock *pb, Slapi_Entry * bind_target_entry, int pwresponse_req, int account_inactivation_only) { > > time_t unlock_time; > time_t cur_time; > double diff_t; > char *cur_time_str = NULL; > char *accountUnlockTime; > passwdPolicy *pwpolicy = NULL; > char *dn = NULL; >@@ -307,18 +307,21 @@ > int type_name_disposition = 0; > char *actual_type_name = NULL; > int attr_free_flags = 0; > /* kexcoff - end */ > > if ( bind_target_entry == NULL ) > return -1; > >- dn = slapi_entry_get_ndn(bind_target_entry); >- pwpolicy = new_passwdPolicy(pb, dn); >+ if(!account_inactivation_only) >+ { >+ dn = slapi_entry_get_ndn(bind_target_entry); >+ pwpolicy = new_passwdPolicy(pb, dn); >+ } > > /* kexcoff: account inactivation */ > /* check if the entry is locked by nsAccountLock attribute - account inactivation feature */ > > rc = slapi_vattr_values_get(bind_target_entry, "nsAccountLock", > &values, > &type_name_disposition, &actual_type_name, > SLAPI_VIRTUALATTRS_REQUEST_POINTERS, >@@ -329,37 +332,38 @@ > const struct berval *bvp = NULL; > > if ( (slapi_valueset_first_value( values, &v ) != -1) && > ( bvp = slapi_value_get_berval( v )) != NULL ) > { > if ( (bvp != NULL) && (strcasecmp(bvp->bv_val, "true") == 0) ) > { > /* account inactivated */ >- if (pwresponse_req) { >+ if (!account_inactivation_only && pwresponse_req) { > slapi_pwpolicy_make_response_control ( pb, -1, -1, > LDAP_PWPOLICY_ACCTLOCKED ); > } >- send_ldap_result ( pb, LDAP_UNWILLING_TO_PERFORM, NULL, >+ if(!account_inactivation_only) >+ send_ldap_result ( pb, LDAP_UNWILLING_TO_PERFORM, NULL, > "Account inactivated. Contact system administrator.", > 0, NULL ); > slapi_vattr_values_free(&values, &actual_type_name, attr_free_flags); > goto locked; > } > } /* else, account "activated", keep on the process */ > > if ( values != NULL ) > slapi_vattr_values_free(&values, &actual_type_name, attr_free_flags); > } > /* kexcoff - end */ > > /* > * Check if the password policy has to be checked or not > */ >- if ( pwpolicy->pw_lockout == 0 ) { >+ if ( account_inactivation_only || pwpolicy->pw_lockout == 0 ) { > goto notlocked; > } > > /* > * Check the attribute of the password policy > */ > > /* check if account is locked out. If so, send result and return 1 */ >@@ -407,21 +411,23 @@ > "Exceed password retry limit. Please try later." , 0, NULL ); > slapi_ch_free((void **) &cur_time_str ); > goto locked; > } > slapi_ch_free((void **) &cur_time_str ); > } > > notlocked: >- /* account is not locked. */ >- delete_passwdPolicy(&pwpolicy); >+ /* account is not locked. */ >+ if(!account_inactivation_only) >+ delete_passwdPolicy(&pwpolicy); > return ( 0 ); > locked: >- delete_passwdPolicy(&pwpolicy); >+ if(!account_inactivation_only) >+ delete_passwdPolicy(&pwpolicy); > return (1); > > } > > void > pw_init ( void ) { > slapdFrontendConfig_t *slapdFrontendConfig; > >Index: ldap/servers/slapd/saslbind.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/saslbind.c,v >retrieving revision 1.22 >diff -u -8 -r1.22 saslbind.c >--- ldap/servers/slapd/saslbind.c 5 Dec 2006 21:22:09 -0000 1.22 >+++ ldap/servers/slapd/saslbind.c 19 Feb 2007 20:32:26 -0000 >@@ -912,17 +912,17 @@ > if (!isroot ) > { > /* check if the account is locked */ > bind_target_entry = get_entry(pb, dn); > if ( bind_target_entry == NULL ) > { > break; > } >- if ( check_account_lock(pb, bind_target_entry, pwresponse_requested) == 1) { >+ if ( check_account_lock(pb, bind_target_entry, pwresponse_requested, 0) == 1) { > slapi_entry_free(bind_target_entry); > break; > } > } > > /* see if we negotiated a security layer */ > if ((sasl_getprop(sasl_conn, SASL_SSF, > (const void**)&ssfp) == SASL_OK) && (*ssfp > 0)) { >Index: ldap/servers/slapd/slap.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slap.h,v >retrieving revision 1.20 >diff -u -8 -r1.20 slap.h >--- ldap/servers/slapd/slap.h 10 Nov 2006 23:45:40 -0000 1.20 >+++ ldap/servers/slapd/slap.h 19 Feb 2007 20:32:27 -0000 >@@ -299,16 +299,20 @@ > #define DSE_LDBM_TMPFILE "ldbm.ldif.tmp" > /* for now, we are using the dse file for the base config file */ > #define CONFIG_FILENAME DSE_FILENAME > /* the default configuration sub directory of the instance directory */ > #define CONFIG_SUBDIR_NAME "config" > /* the default schema sub directory of the config sub directory */ > #define SCHEMA_SUBDIR_NAME "schema" > >+/* LDAPI default configuration */ >+#define SLAPD_LDAPI_DEFAULT_FILENAME "/var/run/ldapi" >+#define SLAPD_LDAPI_DEFAULT_STATUS "off" >+ > struct subfilt { > char *sf_type; > char *sf_initial; > char **sf_any; > char *sf_final; > void *sf_private; /* data private to syntax handler */ > }; > >@@ -1244,16 +1248,17 @@ > struct conn * c_prev; /* active connections in the table*/ > Slapi_Backend *c_bi_backend; /* which backend is doing the import */ > void *c_extension; /* plugins are able to extend the Connection object */ > void *c_sasl_conn; /* sasl library connection sasl_conn_t */ > sasl_io_private *c_sasl_io_private; /* Private data for SASL I/O Layer */ > int c_enable_sasl_io; /* Flag to tell us to enable SASL I/O on the next read */ > int c_sasl_io; /* Flag to tell us to enable SASL I/O on the next read */ > int c_sasl_ssf; /* flag to tell us the SASL SSF */ >+ int c_unix_local; /* flag true for LDAPI */ > } Connection; > #define CONN_FLAG_SSL 1 /* Is this connection an SSL connection or not ? > * Used to direct I/O code when SSL is handled differently > */ > #define CONN_FLAG_CLOSING 2 /* If this flag is set, then the connection has > * been marked for closing by a worker thread > * and the listener thread should close it. */ > #define CONN_FLAG_IMPORT 4 /* This connection has begun a bulk import >@@ -1451,16 +1456,21 @@ > int s_port; > PRNetAddr n_listenaddr; > PRNetAddr s_listenaddr; > #if defined( XP_WIN32 ) > int n_socket; > int s_socket_native; > #else > PRFileDesc *n_socket; >+ /* ldapi */ >+ PRNetAddr i_listenaddr; >+ int i_port; /* used as a flag only */ >+ PRFileDesc *i_socket; >+ > #endif > PRFileDesc *s_socket; > } daemon_ports_t; > > > /* Definition for plugin syntax compare routine */ > typedef int (*value_compare_fn_type)(const struct berval *,const struct berval *); > >@@ -1635,16 +1645,25 @@ > #define CONFIG_SVRTAB_ATTRIBUTE "nsslapd-svrtab" > #ifndef _WIN32 > #define CONFIG_LOCALUSER_ATTRIBUTE "nsslapd-localuser" > #endif /* !_WIN32 */ > #define CONFIG_LOCALHOST_ATTRIBUTE "nsslapd-localhost" > #define CONFIG_PORT_ATTRIBUTE "nsslapd-port" > #define CONFIG_WORKINGDIR_ATTRIBUTE "nsslapd-workingdir" > #define CONFIG_LISTENHOST_ATTRIBUTE "nsslapd-listenhost" >+#define CONFIG_LDAPI_FILENAME_ATTRIBUTE "nsslapd-ldapifilepath" >+#define CONFIG_LDAPI_SWITCH_ATTRIBUTE "nsslapd-ldapilisten" >+#define CONFIG_LDAPI_BIND_SWITCH_ATTRIBUTE "nsslapd-ldapiautobind" >+#define CONFIG_LDAPI_ROOT_DN_ATTRIBUTE "nsslapd-ldapimaprootdn" >+#define CONFIG_LDAPI_MAP_ENTRIES_ATTRIBUTE "nsslapd-ldapimaptoentries" >+#define CONFIG_LDAPI_UIDNUMBER_TYPE_ATTRIBUTE "nsslapd-ldapiuidnumbertype" >+#define CONFIG_LDAPI_GIDNUMBER_TYPE_ATTRIBUTE "nsslapd-ldapigidnumbertype" >+#define CONFIG_LDAPI_SEARCH_BASE_DN_ATTRIBUTE "nsslapd-ldapientrysearchbase" >+#define CONFIG_LDAPI_AUTO_DN_SUFFIX_ATTRIBUTE "nsslapd-ldapiautodnsuffix" > #define CONFIG_SECURITY_ATTRIBUTE "nsslapd-security" > #define CONFIG_SSL3CIPHERS_ATTRIBUTE "nsslapd-SSL3ciphers" > #define CONFIG_ACCESSLOG_ATTRIBUTE "nsslapd-accesslog" > #define CONFIG_ERRORLOG_ATTRIBUTE "nsslapd-errorlog" > #define CONFIG_SECUREPORT_ATTRIBUTE "nsslapd-securePort" > #define CONFIG_SECURELISTENHOST_ATTRIBUTE "nsslapd-securelistenhost" > #define CONFIG_THREADNUMBER_ATTRIBUTE "nsslapd-threadnumber" > #define CONFIG_MAXTHREADSPERCONN_ATTRIBUTE "nsslapd-maxthreadsperconn" >@@ -1884,29 +1903,40 @@ > char *schemadir; /* full path name of directory containing schema files */ > char *lockdir; /* full path name of directory containing lock files */ > char *tmpdir; /* full path name of directory containing tmp files */ > char *certdir; /* full path name of directory containing cert files */ > char *saslpath; /* full path name of directory containing sasl plugins */ > int attrname_exceptions; /* if true, allow questionable attribute names */ > int rewrite_rfc1274; /* return attrs for both v2 and v3 names */ > char *schemareplace; /* see CONFIG_SCHEMAREPLACE_* #defines below */ >+ char *ldapi_filename; /* filename for ldapi socket */ >+ int ldapi_switch; /* switch to turn ldapi on/off */ >+ int ldapi_bind_switch; /* switch to turn ldapi auto binding on/off */ >+ char *ldapi_root_dn; /* DN to map root to over LDAPI */ >+ int ldapi_map_entries; /* turns ldapi entry bind mapping on/off */ >+ char *ldapi_uidnumber_type; /* type that contains uid number */ >+ char *ldapi_gidnumber_type; /* type that contains gid number */ >+ char *ldapi_search_base_dn; /* base dn to search for mapped entries */ >+ char *ldapi_auto_dn_suffix; /* suffix to be appended to auto gen DNs */ > } slapdFrontendConfig_t; > > #define SLAPD_FULL 0 > #define SLAPD_LITE 1 > > /* possible values for slapdFrontendConfig_t.schemareplace */ > #define CONFIG_SCHEMAREPLACE_STR_OFF "off" > #define CONFIG_SCHEMAREPLACE_STR_ON "on" > #define CONFIG_SCHEMAREPLACE_STR_REPLICATION_ONLY "replication-only" > > > slapdFrontendConfig_t *getFrontendConfig(); > >+int slapd_bind_local_user(Connection *conn); >+ > /* LP: NO_TIME cannot be -1, it generates wrong GeneralizedTime > * And causes some errors on AIX also > */ > /* #if defined( XP_WIN32 ) */ > #define NO_TIME (time_t)0 /* cannot be -1, NT's localtime( -1 ) returns NULL */ > /* #else */ > /* #define NO_TIME (time_t)-1 / * a value that time() does not return */ > /* #endif */ >Index: ldap/servers/slapd/slapi-plugin.h >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/slapi-plugin.h,v >retrieving revision 1.14 >diff -u -8 -r1.14 slapi-plugin.h >--- ldap/servers/slapd/slapi-plugin.h 14 Dec 2006 23:16:54 -0000 1.14 >+++ ldap/servers/slapd/slapi-plugin.h 19 Feb 2007 20:32:27 -0000 >@@ -1362,17 +1362,17 @@ > /* > * Types of authentication for SLAPI_CONN_AUTHMETHOD > * (and deprecated SLAPI_CONN_AUTHTYPE) > */ > #define SLAPD_AUTH_NONE "none" > #define SLAPD_AUTH_SIMPLE "simple" > #define SLAPD_AUTH_SSL "SSL" > #define SLAPD_AUTH_SASL "SASL " /* followed by the mechanism name */ >- >+#define SLAPD_AUTH_OS "OS" > > /* Command Line Arguments */ > #define SLAPI_ARGC 147 > #define SLAPI_ARGV 148 > > /* Slapd config file directory */ > #define SLAPI_CONFIG_DIRECTORY 281 > >Index: ldap/servers/slapd/start_tls_extop.c >=================================================================== >RCS file: /cvs/dirsec/ldapserver/ldap/servers/slapd/start_tls_extop.c,v >retrieving revision 1.8 >diff -u -8 -r1.8 start_tls_extop.c >--- ldap/servers/slapd/start_tls_extop.c 10 Nov 2006 23:45:40 -0000 1.8 >+++ ldap/servers/slapd/start_tls_extop.c 19 Feb 2007 20:32:27 -0000 >@@ -270,17 +270,18 @@ > } > > > > /* From here on, messages will be sent through the SSL layer, so we need to get our > * connection ready. */ > > secure = 1; >- ns = configure_pr_socket( &newsocket, secure ); >+ ns = configure_pr_socket( &newsocket, secure, 0 /*never local*/ ); >+ > > /* > ber_sockbuf_set_option( conn->c_sb, LBER_SOCKBUF_OPT_DESC, &newsocket ); > ber_sockbuf_set_option( conn->c_sb, LBER_SOCKBUF_OPT_READ_FN, (void *)secure_read_function ); > ber_sockbuf_set_option( conn->c_sb, LBER_SOCKBUF_OPT_WRITE_FN, (void *)secure_write_function ); > */ > > /*changed to */ >@@ -412,17 +413,17 @@ > } > */ > ssl_fd = PR_PopIOLayer( c->c_prfd, PR_TOP_IO_LAYER ); > ssl_fd->dtor( ssl_fd ); > > > #ifndef _WIN32 > secure = 0; >- ns = configure_pr_socket( &(c->c_prfd), secure ); >+ ns = configure_pr_socket( &(c->c_prfd), secure, 0 /*never local*/ ); > > ber_sockbuf_set_option( c->c_sb, LBER_SOCKBUF_OPT_DESC, &(c->c_prfd) ); > > #else > ns = PR_FileDesc2NativeHandle( c->c_prfd ); > c->c_prfd = NULL; > > configure_ns_socket( &ns );
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 229280
: 148370 |
148371
|
148372