+++ /dev/null
-
-
-The complete set of CITI nfs-utils patches rolled into one patch.
-
-Changes since 1.0.7-CITI_NFS4_ALL-1:
- * Clean up configure, especially for Kerberos checking
- * Fixes for gss context serialization on 64-bit machines
- * Properly limit the encryption types when using MIT
- Kerberos 1.4 or later
- * Add options to turn on rpcsec_gss library debugging
- if supported by the library
- * Changes that allow compiling with Heimdal Kerberos
- libraries.
- NOTE: There are still run-time problems when using
- the Heimdal libraries.
-
-
----
-
- /dev/null | 4185 ---------
- nfs-utils-1.0.7-kwc/config.mk.in | 1
- nfs-utils-1.0.7-kwc/configure | 7206 +++++++++++++----
- nfs-utils-1.0.7-kwc/configure.in | 83
- nfs-utils-1.0.7-kwc/debian/control | 2
- nfs-utils-1.0.7-kwc/debian/nfs-common.conffiles | 1
- nfs-utils-1.0.7-kwc/debian/nfs-common.install | 1
- nfs-utils-1.0.7-kwc/support/Makefile | 2
- nfs-utils-1.0.7-kwc/support/include/config.h.in | 31
- nfs-utils-1.0.7-kwc/support/include/gssapi/gssapi.h | 24
- nfs-utils-1.0.7-kwc/support/rpc/include/rpc/auth_gss.h | 3
- nfs-utils-1.0.7-kwc/utils/gssd/Makefile | 3
- nfs-utils-1.0.7-kwc/utils/gssd/context_heimdal.c | 25
- nfs-utils-1.0.7-kwc/utils/gssd/gss_oids.h | 1
- nfs-utils-1.0.7-kwc/utils/gssd/gssd.c | 17
- nfs-utils-1.0.7-kwc/utils/gssd/gssd.man | 6
- nfs-utils-1.0.7-kwc/utils/gssd/krb5_util.c | 114
- nfs-utils-1.0.7-kwc/utils/gssd/write_bytes.h | 18
- nfs-utils-1.0.7-kwc/utils/idmapd/idmapd.c | 59
- nfs-utils-1.0.7-kwc/utils/mountd/mountd.c | 8
- nfs-utils-1.0.7-kwc/utils/svcgssd/Makefile | 25
- nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.c | 17
- nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.man | 6
- nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_main_loop.c | 11
- nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_proc.c | 33
- 25 files changed, 5864 insertions(+), 6018 deletions(-)
-
-diff -puN config.mk.in~CITI_NFS4_ALL config.mk.in
---- nfs-utils-1.0.7/config.mk.in~CITI_NFS4_ALL 2005-05-06 15:19:22.201567000 -0400
-+++ nfs-utils-1.0.7-kwc/config.mk.in 2005-05-06 15:19:22.465320000 -0400
-@@ -61,7 +61,6 @@ INSTALL = install
- MAN2PS = groff -Tps -man
-
- AFLAGS = -I$(TOP)support/include \
-- -I$(KRBDIR)/include \
- -Wall $(ARCHFLAGS) -pipe
- ifdef KERNEL_INCDIR
- AFLAGS += -I$(KERNEL_INCDIR)
-diff -puN configure~CITI_NFS4_ALL configure
---- nfs-utils-1.0.7/configure~CITI_NFS4_ALL 2005-05-06 15:19:22.266501000 -0400
-+++ nfs-utils-1.0.7-kwc/configure 2005-05-06 15:19:26.618156000 -0400
-@@ -1,47 +1,326 @@
- #! /bin/sh
--
- # Guess values for system-dependent variables and create Makefiles.
--# Generated automatically using autoconf version 2.13
--# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
-+# Generated by GNU Autoconf 2.59.
- #
-+# Copyright (C) 2003 Free Software Foundation, Inc.
- # This configure script is free software; the Free Software Foundation
- # gives unlimited permission to copy, distribute and modify it.
-+## --------------------- ##
-+## M4sh Initialization. ##
-+## --------------------- ##
-+
-+# Be 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+"$@"}'='"$@"'
-+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-+ set -o posix
-+fi
-+DUALCASE=1; export DUALCASE # for MKS sh
-+
-+# Support unset when possible.
-+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-+ as_unset=unset
-+else
-+ as_unset=false
-+fi
-+
-+
-+# Work around bugs in pre-3.0 UWIN ksh.
-+$as_unset ENV MAIL MAILPATH
-+PS1='$ '
-+PS2='> '
-+PS4='+ '
-+
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-+ eval $as_var=C; export $as_var
-+ else
-+ $as_unset $as_var
-+ fi
-+done
-+
-+# Required to use basename.
-+if expr a : '\(a\)' >/dev/null 2>&1; then
-+ as_expr=expr
-+else
-+ as_expr=false
-+fi
-+
-+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-+ as_basename=basename
-+else
-+ as_basename=false
-+fi
-+
-+
-+# Name of the executable.
-+as_me=`$as_basename "$0" ||
-+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-+ X"$0" : 'X\(//\)$' \| \
-+ X"$0" : 'X\(/\)$' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X/"$0" |
-+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-+ /^X\/\(\/\/\)$/{ s//\1/; q; }
-+ /^X\/\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+
-+
-+# PATH needs CR, and LINENO needs CR and PATH.
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
-+fi
-+
-+
-+ as_lineno_1=$LINENO
-+ as_lineno_2=$LINENO
-+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-+ test "x$as_lineno_1" != "x$as_lineno_2" &&
-+ test "x$as_lineno_3" = "x$as_lineno_2" || {
-+ # Find who we are. Look in the path if we contain no path at all
-+ # relative or not.
-+ case $0 in
-+ *[\\/]* ) as_myself=$0 ;;
-+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+done
-+
-+ ;;
-+ esac
-+ # We did not find ourselves, most probably we were run as `sh COMMAND'
-+ # in which case we are not to be found in the path.
-+ if test "x$as_myself" = x; then
-+ as_myself=$0
-+ fi
-+ if test ! -f "$as_myself"; then
-+ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2
-+ { (exit 1); exit 1; }; }
-+ fi
-+ case $CONFIG_SHELL in
-+ '')
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for as_base in sh bash ksh sh5; do
-+ case $as_dir in
-+ /*)
-+ if ("$as_dir/$as_base" -c '
-+ as_lineno_1=$LINENO
-+ as_lineno_2=$LINENO
-+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-+ test "x$as_lineno_1" != "x$as_lineno_2" &&
-+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-+ CONFIG_SHELL=$as_dir/$as_base
-+ export CONFIG_SHELL
-+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-+ fi;;
-+ esac
-+ done
-+done
-+;;
-+ esac
-+
-+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-+ # uniformly replaced by the line number. The first 'sed' inserts a
-+ # line-number line before each line; the second 'sed' does the real
-+ # work. The second script uses 'N' to pair each line-number line
-+ # with the numbered line, and appends trailing '-' during
-+ # substitution so that $LINENO is not a special case at line end.
-+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-+ sed '=' <$as_myself |
-+ sed '
-+ N
-+ s,$,-,
-+ : loop
-+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-+ t loop
-+ s,-$,,
-+ s,^['$as_cr_digits']*\n,,
-+ ' >$as_me.lineno &&
-+ chmod +x $as_me.lineno ||
-+ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-+ { (exit 1); exit 1; }; }
-+
-+ # Don't try to exec as it changes $[0], causing all sort of problems
-+ # (the dirname of $[0] is not the place where we might find the
-+ # original and so on. Autoconf is especially sensible to this).
-+ . ./$as_me.lineno
-+ # Exit status is that of the last command.
-+ exit
-+}
-+
-+
-+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-+ *c*,-n*) ECHO_N= ECHO_C='
-+' ECHO_T=' ' ;;
-+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-+esac
-+
-+if expr a : '\(a\)' >/dev/null 2>&1; then
-+ as_expr=expr
-+else
-+ as_expr=false
-+fi
-+
-+rm -f conf$$ conf$$.exe conf$$.file
-+echo >conf$$.file
-+if ln -s conf$$.file conf$$ 2>/dev/null; then
-+ # We could just check for DJGPP; but this test a) works b) is more generic
-+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-+ if test -f conf$$.exe; then
-+ # Don't use ln at all; we don't have any links
-+ as_ln_s='cp -p'
-+ else
-+ as_ln_s='ln -s'
-+ fi
-+elif ln conf$$.file conf$$ 2>/dev/null; then
-+ as_ln_s=ln
-+else
-+ as_ln_s='cp -p'
-+fi
-+rm -f conf$$ conf$$.exe conf$$.file
-+
-+if mkdir -p . 2>/dev/null; then
-+ as_mkdir_p=:
-+else
-+ test -d ./-p && rmdir ./-p
-+ as_mkdir_p=false
-+fi
-+
-+as_executable_p="test -f"
-+
-+# Sed expression to map a string onto a valid CPP name.
-+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-+
-+# Sed expression to map a string onto a valid variable name.
-+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-+
-+
-+# IFS
-+# We need space, tab and new line, in precisely that order.
-+as_nl='
-+'
-+IFS=" $as_nl"
-+
-+# CDPATH.
-+$as_unset CDPATH
-
--# Defaults:
--ac_help=
-+
-+# Name of the host.
-+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,
-+# so uname gets run too.
-+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-+
-+exec 6>&1
-+
-+#
-+# Initializations.
-+#
- ac_default_prefix=/usr/local
--# Any additions from configure.in:
-+ac_config_libobj_dir=.
-+cross_compiling=no
-+subdirs=
-+MFLAGS=
-+MAKEFLAGS=
-+SHELL=${CONFIG_SHELL-/bin/sh}
-+
-+# Maximum number of lines to put in a shell here document.
-+# This variable seems obsolete. It should probably be removed, and
-+# only ac_max_sed_lines should be used.
-+: ${ac_max_here_lines=38}
-+
-+# Identity of this package.
-+PACKAGE_NAME=
-+PACKAGE_TARNAME=
-+PACKAGE_VERSION=
-+PACKAGE_STRING=
-+PACKAGE_BUGREPORT=
-+
-+ac_unique_file="rules.mk"
- ac_default_prefix=/usr
--ac_help="$ac_help
-- --with-release=XXX set release to XXX [1]"
--ac_help="$ac_help
-- --with-statedir=/foo use state dir /foo [/var/lib/nfs]"
--ac_help="$ac_help
-- --with-statduser=rpcuser user for statd to run under [rpcuser or nobody]"
--ac_help="$ac_help
-- --enable-nfsv3 enable support for NFSv3"
--ac_help="$ac_help
-- --enable-nfsv4 enable support for NFSv4"
--ac_help="$ac_help
-- --enable-gss enable support for rpcsec_gss"
--ac_help="$ac_help
-- --enable-kprefix install progs as rpc.knfsd etc"
--ac_help="$ac_help
-- --enable-secure-statd Only lockd can use statd (security)"
--ac_help="$ac_help
-- --enable-rquotad enable rquotad"
--ac_help="$ac_help
-- --with-krb5=DIR use Kerberos v5 installation in DIR"
-+# Factoring default headers for most tests.
-+ac_includes_default="\
-+#include <stdio.h>
-+#if HAVE_SYS_TYPES_H
-+# include <sys/types.h>
-+#endif
-+#if HAVE_SYS_STAT_H
-+# include <sys/stat.h>
-+#endif
-+#if STDC_HEADERS
-+# include <stdlib.h>
-+# include <stddef.h>
-+#else
-+# if HAVE_STDLIB_H
-+# include <stdlib.h>
-+# endif
-+#endif
-+#if HAVE_STRING_H
-+# if !STDC_HEADERS && HAVE_MEMORY_H
-+# include <memory.h>
-+# endif
-+# include <string.h>
-+#endif
-+#if HAVE_STRINGS_H
-+# include <strings.h>
-+#endif
-+#if HAVE_INTTYPES_H
-+# include <inttypes.h>
-+#else
-+# if HAVE_STDINT_H
-+# include <stdint.h>
-+# endif
-+#endif
-+#if HAVE_UNISTD_H
-+# include <unistd.h>
-+#endif"
-+
-+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 VERSION RELEASE statedir statduser enable_nfsv3 IDMAPD enable_nfsv4 GSSD SVCGSSD enable_gss kprefix secure_statd RQUOTAD CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CC_FOR_BUILD RANLIB ac_ct_RANLIB AR ac_ct_AR LD ac_ct_LD EGREP LIBSOCKET LIBNSL LIBCRYPT LIBBSD LIBWRAP KRBDIR KRBLIB KRBINC K5VERS CXXFLAGS LIBOBJS 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.
--build=NONE
--cache_file=./config.cache
-+cache_file=/dev/null
- exec_prefix=NONE
--host=NONE
- no_create=
--nonopt=NONE
- no_recursion=
- prefix=NONE
- program_prefix=NONE
-@@ -50,10 +329,15 @@ program_transform_name=s,x,x,
- silent=
- site=
- srcdir=
--target=NONE
- verbose=
- x_includes=NONE
- x_libraries=NONE
-+
-+# Installation directory options.
-+# These are left unexpanded so users can "make install exec_prefix=/foo"
-+# and all the variables that are supposed to be based on exec_prefix
-+# by default will actually change.
-+# Use braces instead of parens because sh, perl, etc. also accept them.
- bindir='${exec_prefix}/bin'
- sbindir='${exec_prefix}/sbin'
- libexecdir='${exec_prefix}/libexec'
-@@ -67,17 +351,9 @@ oldincludedir='/usr/include'
- infodir='${prefix}/info'
- mandir='${prefix}/man'
-
--# Initialize some other variables.
--subdirs=
--MFLAGS= MAKEFLAGS=
--SHELL=${CONFIG_SHELL-/bin/sh}
--# Maximum number of lines to put in a shell here document.
--ac_max_here_lines=12
--
- ac_prev=
- for ac_option
- do
--
- # If the previous option needs an argument, assign it.
- if test -n "$ac_prev"; then
- eval "$ac_prev=\$ac_option"
-@@ -85,59 +361,59 @@ do
- continue
- fi
-
-- case "$ac_option" in
-- -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
-- *) ac_optarg= ;;
-- esac
-+ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'`
-
- # Accept the important Cygnus configure options, so we can diagnose typos.
-
-- case "$ac_option" in
-+ case $ac_option in
-
- -bindir | --bindir | --bindi | --bind | --bin | --bi)
- ac_prev=bindir ;;
- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-- bindir="$ac_optarg" ;;
-+ bindir=$ac_optarg ;;
-
- -build | --build | --buil | --bui | --bu)
-- ac_prev=build ;;
-+ ac_prev=build_alias ;;
- -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-- build="$ac_optarg" ;;
-+ build_alias=$ac_optarg ;;
-
- -cache-file | --cache-file | --cache-fil | --cache-fi \
- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
- ac_prev=cache_file ;;
- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-- cache_file="$ac_optarg" ;;
-+ cache_file=$ac_optarg ;;
-+
-+ --config-cache | -C)
-+ cache_file=config.cache ;;
-
- -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
- ac_prev=datadir ;;
- -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
- | --da=*)
-- datadir="$ac_optarg" ;;
-+ datadir=$ac_optarg ;;
-
- -disable-* | --disable-*)
-- ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
-+ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
- # Reject names that are not valid shell variable names.
-- if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
-- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-- fi
-- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-- eval "enable_${ac_feature}=no" ;;
-+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-+ { (exit 1); exit 1; }; }
-+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-+ eval "enable_$ac_feature=no" ;;
-
- -enable-* | --enable-*)
-- ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
-+ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
-- if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
-- { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
-- fi
-- ac_feature=`echo $ac_feature| sed 's/-/_/g'`
-- case "$ac_option" in
-- *=*) ;;
-+ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ { echo "$as_me: error: invalid feature name: $ac_feature" >&2
-+ { (exit 1); exit 1; }; }
-+ ac_feature=`echo $ac_feature | sed 's/-/_/g'`
-+ case $ac_option in
-+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
-- eval "enable_${ac_feature}='$ac_optarg'" ;;
-+ eval "enable_$ac_feature='$ac_optarg'" ;;
-
- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-@@ -146,95 +422,47 @@ do
- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
- | --exec=* | --exe=* | --ex=*)
-- exec_prefix="$ac_optarg" ;;
-+ exec_prefix=$ac_optarg ;;
-
- -gas | --gas | --ga | --g)
- # Obsolete; use --with-gas.
- with_gas=yes ;;
-
-- -help | --help | --hel | --he)
-- # Omit some internal or obsolete options to make the list less imposing.
-- # This message is too long to be a string in the A/UX 3.1 sh.
-- cat << EOF
--Usage: configure [options] [host]
--Options: [defaults in brackets after descriptions]
--Configuration:
-- --cache-file=FILE cache test results in FILE
-- --help print this message
-- --no-create do not create output files
-- --quiet, --silent do not print \`checking...' messages
-- --version print the version of autoconf that created configure
--Directory and file names:
-- --prefix=PREFIX install architecture-independent files in PREFIX
-- [$ac_default_prefix]
-- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
-- [same as prefix]
-- --bindir=DIR user executables in DIR [EPREFIX/bin]
-- --sbindir=DIR system admin executables in DIR [EPREFIX/sbin]
-- --libexecdir=DIR program executables in DIR [EPREFIX/libexec]
-- --datadir=DIR read-only architecture-independent data in DIR
-- [PREFIX/share]
-- --sysconfdir=DIR read-only single-machine data in DIR [PREFIX/etc]
-- --sharedstatedir=DIR modifiable architecture-independent data in DIR
-- [PREFIX/com]
-- --localstatedir=DIR modifiable single-machine data in DIR [PREFIX/var]
-- --libdir=DIR object code libraries in DIR [EPREFIX/lib]
-- --includedir=DIR C header files in DIR [PREFIX/include]
-- --oldincludedir=DIR C header files for non-gcc in DIR [/usr/include]
-- --infodir=DIR info documentation in DIR [PREFIX/info]
-- --mandir=DIR man documentation in DIR [PREFIX/man]
-- --srcdir=DIR find the sources in DIR [configure dir or ..]
-- --program-prefix=PREFIX prepend PREFIX to installed program names
-- --program-suffix=SUFFIX append SUFFIX to installed program names
-- --program-transform-name=PROGRAM
-- run sed PROGRAM on installed program names
--EOF
-- cat << EOF
--Host type:
-- --build=BUILD configure for building on BUILD [BUILD=HOST]
-- --host=HOST configure for HOST [guessed]
-- --target=TARGET configure for TARGET [TARGET=HOST]
--Features and packages:
-- --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
-- --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
-- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
-- --x-includes=DIR X include files are in DIR
-- --x-libraries=DIR X library files are in DIR
--EOF
-- if test -n "$ac_help"; then
-- echo "--enable and --with options recognized:$ac_help"
-- fi
-- exit 0 ;;
-+ -help | --help | --hel | --he | -h)
-+ ac_init_help=long ;;
-+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-+ ac_init_help=recursive ;;
-+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-+ ac_init_help=short ;;
-
- -host | --host | --hos | --ho)
-- ac_prev=host ;;
-+ ac_prev=host_alias ;;
- -host=* | --host=* | --hos=* | --ho=*)
-- host="$ac_optarg" ;;
-+ host_alias=$ac_optarg ;;
-
- -includedir | --includedir | --includedi | --included | --include \
- | --includ | --inclu | --incl | --inc)
- ac_prev=includedir ;;
- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
- | --includ=* | --inclu=* | --incl=* | --inc=*)
-- includedir="$ac_optarg" ;;
-+ includedir=$ac_optarg ;;
-
- -infodir | --infodir | --infodi | --infod | --info | --inf)
- ac_prev=infodir ;;
- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-- infodir="$ac_optarg" ;;
-+ infodir=$ac_optarg ;;
-
- -libdir | --libdir | --libdi | --libd)
- ac_prev=libdir ;;
- -libdir=* | --libdir=* | --libdi=* | --libd=*)
-- libdir="$ac_optarg" ;;
-+ libdir=$ac_optarg ;;
-
- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
- | --libexe | --libex | --libe)
- ac_prev=libexecdir ;;
- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
- | --libexe=* | --libex=* | --libe=*)
-- libexecdir="$ac_optarg" ;;
-+ libexecdir=$ac_optarg ;;
-
- -localstatedir | --localstatedir | --localstatedi | --localstated \
- | --localstate | --localstat | --localsta | --localst \
-@@ -243,19 +471,19 @@ EOF
- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
- | --localstate=* | --localstat=* | --localsta=* | --localst=* \
- | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
-- localstatedir="$ac_optarg" ;;
-+ localstatedir=$ac_optarg ;;
-
- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
- ac_prev=mandir ;;
- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-- mandir="$ac_optarg" ;;
-+ mandir=$ac_optarg ;;
-
- -nfp | --nfp | --nf)
- # Obsolete; use --without-fp.
- with_fp=no ;;
-
- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-- | --no-cr | --no-c)
-+ | --no-cr | --no-c | -n)
- no_create=yes ;;
-
- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-@@ -269,26 +497,26 @@ EOF
- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-- oldincludedir="$ac_optarg" ;;
-+ oldincludedir=$ac_optarg ;;
-
- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
- ac_prev=prefix ;;
- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-- prefix="$ac_optarg" ;;
-+ prefix=$ac_optarg ;;
-
- -program-prefix | --program-prefix | --program-prefi | --program-pref \
- | --program-pre | --program-pr | --program-p)
- ac_prev=program_prefix ;;
- -program-prefix=* | --program-prefix=* | --program-prefi=* \
- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-- program_prefix="$ac_optarg" ;;
-+ program_prefix=$ac_optarg ;;
-
- -program-suffix | --program-suffix | --program-suffi | --program-suff \
- | --program-suf | --program-su | --program-s)
- ac_prev=program_suffix ;;
- -program-suffix=* | --program-suffix=* | --program-suffi=* \
- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-- program_suffix="$ac_optarg" ;;
-+ program_suffix=$ac_optarg ;;
-
- -program-transform-name | --program-transform-name \
- | --program-transform-nam | --program-transform-na \
-@@ -305,7 +533,7 @@ EOF
- | --program-transfo=* | --program-transf=* \
- | --program-trans=* | --program-tran=* \
- | --progr-tra=* | --program-tr=* | --program-t=*)
-- program_transform_name="$ac_optarg" ;;
-+ program_transform_name=$ac_optarg ;;
-
- -q | -quiet | --quiet | --quie | --qui | --qu | --q \
- | -silent | --silent | --silen | --sile | --sil)
-@@ -315,7 +543,7 @@ EOF
- ac_prev=sbindir ;;
- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
- | --sbi=* | --sb=*)
-- sbindir="$ac_optarg" ;;
-+ sbindir=$ac_optarg ;;
-
- -sharedstatedir | --sharedstatedir | --sharedstatedi \
- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-@@ -326,58 +554,57 @@ EOF
- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
- | --sha=* | --sh=*)
-- sharedstatedir="$ac_optarg" ;;
-+ sharedstatedir=$ac_optarg ;;
-
- -site | --site | --sit)
- ac_prev=site ;;
- -site=* | --site=* | --sit=*)
-- site="$ac_optarg" ;;
-+ site=$ac_optarg ;;
-
- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
- ac_prev=srcdir ;;
- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-- srcdir="$ac_optarg" ;;
-+ srcdir=$ac_optarg ;;
-
- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
- | --syscon | --sysco | --sysc | --sys | --sy)
- ac_prev=sysconfdir ;;
- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-- sysconfdir="$ac_optarg" ;;
-+ sysconfdir=$ac_optarg ;;
-
- -target | --target | --targe | --targ | --tar | --ta | --t)
-- ac_prev=target ;;
-+ ac_prev=target_alias ;;
- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-- target="$ac_optarg" ;;
-+ target_alias=$ac_optarg ;;
-
- -v | -verbose | --verbose | --verbos | --verbo | --verb)
- verbose=yes ;;
-
-- -version | --version | --versio | --versi | --vers)
-- echo "configure generated by autoconf version 2.13"
-- exit 0 ;;
-+ -version | --version | --versio | --versi | --vers | -V)
-+ ac_init_version=: ;;
-
- -with-* | --with-*)
-- ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
-+ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
- # Reject names that are not valid shell variable names.
-- if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
-- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-- fi
-+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ { echo "$as_me: error: invalid package name: $ac_package" >&2
-+ { (exit 1); exit 1; }; }
- ac_package=`echo $ac_package| sed 's/-/_/g'`
-- case "$ac_option" in
-- *=*) ;;
-+ case $ac_option in
-+ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;;
- *) ac_optarg=yes ;;
- esac
-- eval "with_${ac_package}='$ac_optarg'" ;;
-+ eval "with_$ac_package='$ac_optarg'" ;;
-
- -without-* | --without-*)
-- ac_package=`echo $ac_option|sed -e 's/-*without-//'`
-+ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
- # Reject names that are not valid shell variable names.
-- if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
-- { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
-- fi
-- ac_package=`echo $ac_package| sed 's/-/_/g'`
-- eval "with_${ac_package}=no" ;;
-+ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null &&
-+ { echo "$as_me: error: invalid package name: $ac_package" >&2
-+ { (exit 1); exit 1; }; }
-+ ac_package=`echo $ac_package | sed 's/-/_/g'`
-+ eval "with_$ac_package=no" ;;
-
- --x)
- # Obsolete; use --with-x.
-@@ -388,99 +615,110 @@ EOF
- ac_prev=x_includes ;;
- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-- x_includes="$ac_optarg" ;;
-+ x_includes=$ac_optarg ;;
-
- -x-libraries | --x-libraries | --x-librarie | --x-librari \
- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
- ac_prev=x_libraries ;;
- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-- x_libraries="$ac_optarg" ;;
-+ x_libraries=$ac_optarg ;;
-
-- -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
-+ -*) { echo "$as_me: error: unrecognized option: $ac_option
-+Try \`$0 --help' for more information." >&2
-+ { (exit 1); exit 1; }; }
- ;;
-
-+ *=*)
-+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-+ # Reject names that are not valid shell variable names.
-+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-+ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-+ { (exit 1); exit 1; }; }
-+ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`
-+ eval "$ac_envvar='$ac_optarg'"
-+ export $ac_envvar ;;
-+
- *)
-- if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
-- echo "configure: warning: $ac_option: invalid host type" 1>&2
-- fi
-- if test "x$nonopt" != xNONE; then
-- { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
-- fi
-- nonopt="$ac_option"
-+ # FIXME: should be removed in autoconf 3.0.
-+ echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-+ echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
- ;;
-
- esac
- done
-
- if test -n "$ac_prev"; then
-- { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
--fi
--
--trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
--
--# File descriptor usage:
--# 0 standard input
--# 1 file creation
--# 2 errors and warnings
--# 3 some systems may open it to /dev/tty
--# 4 used on the Kubota Titan
--# 6 checking for... messages and results
--# 5 compiler messages saved in config.log
--if test "$silent" = yes; then
-- exec 6>/dev/null
--else
-- exec 6>&1
-+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-+ { echo "$as_me: error: missing argument to $ac_option" >&2
-+ { (exit 1); exit 1; }; }
- fi
--exec 5>./config.log
-
--echo "\
--This file contains any messages produced by compilers while
--running configure, to aid debugging if configure makes a mistake.
--" 1>&5
-+# Be sure to have absolute paths.
-+for ac_var in exec_prefix prefix
-+do
-+ eval ac_val=$`echo $ac_var`
-+ case $ac_val in
-+ [\\/$]* | ?:[\\/]* | NONE | '' ) ;;
-+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-+ { (exit 1); exit 1; }; };;
-+ esac
-+done
-
--# Strip out --no-create and --no-recursion so they do not pile up.
--# Also quote any args containing shell metacharacters.
--ac_configure_args=
--for ac_arg
-+# Be sure to have absolute paths.
-+for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \
-+ localstatedir libdir includedir oldincludedir infodir mandir
- do
-- case "$ac_arg" in
-- -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-- | --no-cr | --no-c) ;;
-- -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
-- *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
-- ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-- *) ac_configure_args="$ac_configure_args $ac_arg" ;;
-+ eval ac_val=$`echo $ac_var`
-+ case $ac_val in
-+ [\\/$]* | ?:[\\/]* ) ;;
-+ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-+ { (exit 1); exit 1; }; };;
- esac
- done
-
--# NLS nuisances.
--# Only set these to C if already set. These must not be set unconditionally
--# because not all systems understand e.g. LANG=C (notably SCO).
--# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
--# Non-C LC_CTYPE values break the ctype check.
--if test "${LANG+set}" = set; then LANG=C; export LANG; fi
--if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
--if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
--if test "${LC_CTYPE+set}" = set; then LC_CTYPE=C; export LC_CTYPE; fi
-+# There might be people who depend on the old broken behavior: `$host'
-+# used to hold the argument of --host etc.
-+# FIXME: To remove some day.
-+build=$build_alias
-+host=$host_alias
-+target=$target_alias
-+
-+# FIXME: To remove some day.
-+if test "x$host_alias" != x; then
-+ if test "x$build_alias" = x; then
-+ cross_compiling=maybe
-+ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
-+ If a cross compiler is detected then cross compile mode will be used." >&2
-+ elif test "x$build_alias" != "x$host_alias"; then
-+ cross_compiling=yes
-+ fi
-+fi
-
--# confdefs.h avoids OS command line length limits that DEFS can exceed.
--rm -rf conftest* confdefs.h
--# AIX cpp loses on an empty file, so make sure it contains at least a newline.
--echo > confdefs.h
-+ac_tool_prefix=
-+test -n "$host_alias" && ac_tool_prefix=$host_alias-
-+
-+test "$silent" = yes && exec 6>/dev/null
-
--# A filename unique to this package, relative to the directory that
--# configure is in, which we can look for to find out if srcdir is correct.
--ac_unique_file=rules.mk
-
- # Find the source files, if location was not specified.
- if test -z "$srcdir"; then
- ac_srcdir_defaulted=yes
- # Try the directory containing this script, then its parent.
-- ac_prog=$0
-- ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
-- test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
-+ ac_confdir=`(dirname "$0") 2>/dev/null ||
-+$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+ X"$0" : 'X\(//\)[^/]' \| \
-+ X"$0" : 'X\(//\)$' \| \
-+ X"$0" : 'X\(/\)' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X"$0" |
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-+ /^X\(\/\/\)$/{ s//\1/; q; }
-+ /^X\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
- srcdir=$ac_confdir
- if test ! -r $srcdir/$ac_unique_file; then
- srcdir=..
-@@ -490,13 +728,472 @@ else
- fi
- if test ! -r $srcdir/$ac_unique_file; then
- if test "$ac_srcdir_defaulted" = yes; then
-- { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
-+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2
-+ { (exit 1); exit 1; }; }
- else
-- { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
-+ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-+ { (exit 1); exit 1; }; }
- fi
- fi
--srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
-+(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null ||
-+ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2
-+ { (exit 1); exit 1; }; }
-+srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'`
-+ac_env_build_alias_set=${build_alias+set}
-+ac_env_build_alias_value=$build_alias
-+ac_cv_env_build_alias_set=${build_alias+set}
-+ac_cv_env_build_alias_value=$build_alias
-+ac_env_host_alias_set=${host_alias+set}
-+ac_env_host_alias_value=$host_alias
-+ac_cv_env_host_alias_set=${host_alias+set}
-+ac_cv_env_host_alias_value=$host_alias
-+ac_env_target_alias_set=${target_alias+set}
-+ac_env_target_alias_value=$target_alias
-+ac_cv_env_target_alias_set=${target_alias+set}
-+ac_cv_env_target_alias_value=$target_alias
-+ac_env_CC_set=${CC+set}
-+ac_env_CC_value=$CC
-+ac_cv_env_CC_set=${CC+set}
-+ac_cv_env_CC_value=$CC
-+ac_env_CFLAGS_set=${CFLAGS+set}
-+ac_env_CFLAGS_value=$CFLAGS
-+ac_cv_env_CFLAGS_set=${CFLAGS+set}
-+ac_cv_env_CFLAGS_value=$CFLAGS
-+ac_env_LDFLAGS_set=${LDFLAGS+set}
-+ac_env_LDFLAGS_value=$LDFLAGS
-+ac_cv_env_LDFLAGS_set=${LDFLAGS+set}
-+ac_cv_env_LDFLAGS_value=$LDFLAGS
-+ac_env_CPPFLAGS_set=${CPPFLAGS+set}
-+ac_env_CPPFLAGS_value=$CPPFLAGS
-+ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set}
-+ac_cv_env_CPPFLAGS_value=$CPPFLAGS
-+ac_env_CPP_set=${CPP+set}
-+ac_env_CPP_value=$CPP
-+ac_cv_env_CPP_set=${CPP+set}
-+ac_cv_env_CPP_value=$CPP
-+
-+#
-+# Report the --help message.
-+#
-+if test "$ac_init_help" = "long"; then
-+ # Omit some internal or obsolete options to make the list less imposing.
-+ # This message is too long to be a string in the A/UX 3.1 sh.
-+ cat <<_ACEOF
-+\`configure' configures this package to adapt to many kinds of systems.
-+
-+Usage: $0 [OPTION]... [VAR=VALUE]...
-+
-+To assign environment variables (e.g., CC, CFLAGS...), specify them as
-+VAR=VALUE. See below for descriptions of some of the useful variables.
-+
-+Defaults for the options are specified in brackets.
-+
-+Configuration:
-+ -h, --help display this help and exit
-+ --help=short display options specific to this package
-+ --help=recursive display the short help of all the included packages
-+ -V, --version display version information and exit
-+ -q, --quiet, --silent do not print \`checking...' messages
-+ --cache-file=FILE cache test results in FILE [disabled]
-+ -C, --config-cache alias for \`--cache-file=config.cache'
-+ -n, --no-create do not create output files
-+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
-+
-+_ACEOF
-+
-+ cat <<_ACEOF
-+Installation directories:
-+ --prefix=PREFIX install architecture-independent files in PREFIX
-+ [$ac_default_prefix]
-+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
-+ [PREFIX]
-+
-+By default, \`make install' will install all the files in
-+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
-+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-+for instance \`--prefix=\$HOME'.
-+
-+For better control, use the options below.
-+
-+Fine tuning of the installation directories:
-+ --bindir=DIR user executables [EPREFIX/bin]
-+ --sbindir=DIR system admin executables [EPREFIX/sbin]
-+ --libexecdir=DIR program executables [EPREFIX/libexec]
-+ --datadir=DIR read-only architecture-independent data [PREFIX/share]
-+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
-+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
-+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
-+ --libdir=DIR object code libraries [EPREFIX/lib]
-+ --includedir=DIR C header files [PREFIX/include]
-+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
-+ --infodir=DIR info documentation [PREFIX/info]
-+ --mandir=DIR man documentation [PREFIX/man]
-+_ACEOF
-+
-+ cat <<\_ACEOF
-+_ACEOF
-+fi
-+
-+if test -n "$ac_init_help"; then
-+
-+ cat <<\_ACEOF
-+
-+Optional Features:
-+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
-+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
-+ --enable-nfsv3 enable support for NFSv3
-+ --enable-nfsv4 enable support for NFSv4
-+ --enable-gss enable support for rpcsec_gss
-+ --enable-kprefix install progs as rpc.knfsd etc
-+ --enable-secure-statd Only lockd can use statd (security)
-+ --enable-rquotad enable rquotad
-+
-+Optional Packages:
-+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
-+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
-+ --with-release=XXX set release to XXX 1
-+ --with-statedir=/foo use state dir /foo /var/lib/nfs
-+ --with-statduser=rpcuser user for statd to run under rpcuser or nobody
-+ --with-krb5=DIR use Kerberos v5 installation in DIR
-+
-+Some influential environment variables:
-+ CC C compiler command
-+ CFLAGS C compiler flags
-+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
-+ nonstandard directory <lib dir>
-+ CPPFLAGS C/C++ preprocessor flags, e.g. -I<include dir> if you have
-+ headers in a nonstandard directory <include dir>
-+ CPP C preprocessor
-+
-+Use these variables to override the choices made by `configure' or to help
-+it to find libraries and programs with nonstandard names/locations.
-+
-+_ACEOF
-+fi
-+
-+if test "$ac_init_help" = "recursive"; then
-+ # If there are subdirs, report their specific --help.
-+ ac_popdir=`pwd`
-+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-+ test -d $ac_dir || continue
-+ ac_builddir=.
-+
-+if test "$ac_dir" != .; then
-+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-+ # A "../" for each directory in $ac_dir_suffix.
-+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-+else
-+ ac_dir_suffix= ac_top_builddir=
-+fi
-+
-+case $srcdir in
-+ .) # No --srcdir option. We are building in place.
-+ ac_srcdir=.
-+ if test -z "$ac_top_builddir"; then
-+ ac_top_srcdir=.
-+ else
-+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-+ fi ;;
-+ [\\/]* | ?:[\\/]* ) # Absolute path.
-+ ac_srcdir=$srcdir$ac_dir_suffix;
-+ ac_top_srcdir=$srcdir ;;
-+ *) # Relative path.
-+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
-+esac
-+
-+# Do not use `cd foo && pwd` to compute absolute paths, because
-+# the directories may not exist.
-+case `pwd` in
-+.) ac_abs_builddir="$ac_dir";;
-+*)
-+ case "$ac_dir" in
-+ .) ac_abs_builddir=`pwd`;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_top_builddir=${ac_top_builddir}.;;
-+*)
-+ case ${ac_top_builddir}. in
-+ .) ac_abs_top_builddir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_srcdir=$ac_srcdir;;
-+*)
-+ case $ac_srcdir in
-+ .) ac_abs_srcdir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_top_srcdir=$ac_top_srcdir;;
-+*)
-+ case $ac_top_srcdir in
-+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-+ esac;;
-+esac
-+
-+ cd $ac_dir
-+ # Check for guested configure; otherwise get Cygnus style configure.
-+ if test -f $ac_srcdir/configure.gnu; then
-+ echo
-+ $SHELL $ac_srcdir/configure.gnu --help=recursive
-+ elif test -f $ac_srcdir/configure; then
-+ echo
-+ $SHELL $ac_srcdir/configure --help=recursive
-+ elif test -f $ac_srcdir/configure.ac ||
-+ test -f $ac_srcdir/configure.in; then
-+ echo
-+ $ac_configure --help
-+ else
-+ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-+ fi
-+ cd $ac_popdir
-+ done
-+fi
-+
-+test -n "$ac_init_help" && exit 0
-+if $ac_init_version; then
-+ cat <<\_ACEOF
-+
-+Copyright (C) 2003 Free Software Foundation, Inc.
-+This configure script is free software; the Free Software Foundation
-+gives unlimited permission to copy, distribute and modify it.
-+_ACEOF
-+ exit 0
-+fi
-+exec 5>config.log
-+cat >&5 <<_ACEOF
-+This file contains any messages produced by compilers while
-+running configure, to aid debugging if configure makes a mistake.
-+
-+It was created by $as_me, which was
-+generated by GNU Autoconf 2.59. Invocation command line was
-+
-+ $ $0 $@
-+
-+_ACEOF
-+{
-+cat <<_ASUNAME
-+## --------- ##
-+## Platform. ##
-+## --------- ##
-+
-+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-+uname -m = `(uname -m) 2>/dev/null || echo unknown`
-+uname -r = `(uname -r) 2>/dev/null || echo unknown`
-+uname -s = `(uname -s) 2>/dev/null || echo unknown`
-+uname -v = `(uname -v) 2>/dev/null || echo unknown`
-+
-+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
-+
-+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
-+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
-+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-+hostinfo = `(hostinfo) 2>/dev/null || echo unknown`
-+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
-+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
-+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
-+
-+_ASUNAME
-+
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ echo "PATH: $as_dir"
-+done
-+
-+} >&5
-+
-+cat >&5 <<_ACEOF
-+
-+
-+## ----------- ##
-+## Core tests. ##
-+## ----------- ##
-+
-+_ACEOF
-+
-+
-+# Keep a trace of the command line.
-+# Strip out --no-create and --no-recursion so they do not pile up.
-+# Strip out --silent because we don't want to record it for future runs.
-+# Also quote any args containing shell meta-characters.
-+# Make two passes to allow for proper duplicate-argument suppression.
-+ac_configure_args=
-+ac_configure_args0=
-+ac_configure_args1=
-+ac_sep=
-+ac_must_keep_next=false
-+for ac_pass in 1 2
-+do
-+ for ac_arg
-+ do
-+ case $ac_arg in
-+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-+ | -silent | --silent | --silen | --sile | --sil)
-+ continue ;;
-+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+ esac
-+ case $ac_pass in
-+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-+ 2)
-+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"
-+ if test $ac_must_keep_next = true; then
-+ ac_must_keep_next=false # Got value, back to normal.
-+ else
-+ case $ac_arg in
-+ *=* | --config-cache | -C | -disable-* | --disable-* \
-+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-+ | -with-* | --with-* | -without-* | --without-* | --x)
-+ case "$ac_configure_args0 " in
-+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-+ esac
-+ ;;
-+ -* ) ac_must_keep_next=true ;;
-+ esac
-+ fi
-+ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'"
-+ # Get rid of the leading space.
-+ ac_sep=" "
-+ ;;
-+ esac
-+ done
-+done
-+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
-+
-+# When interrupted or exit'd, cleanup temporary files, and complete
-+# config.log. We remove comments because anyway the quotes in there
-+# would cause problems or look ugly.
-+# WARNING: Be sure not to use single quotes in there, as some shells,
-+# such as our DU 5.0 friend, will then `close' the trap.
-+trap 'exit_status=$?
-+ # Save into config.log some information that might help in debugging.
-+ {
-+ echo
-+
-+ cat <<\_ASBOX
-+## ---------------- ##
-+## Cache variables. ##
-+## ---------------- ##
-+_ASBOX
-+ echo
-+ # The following way of writing the cache mishandles newlines in values,
-+{
-+ (set) 2>&1 |
-+ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in
-+ *ac_space=\ *)
-+ sed -n \
-+ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g;
-+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p"
-+ ;;
-+ *)
-+ sed -n \
-+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-+ ;;
-+ esac;
-+}
-+ echo
-+
-+ cat <<\_ASBOX
-+## ----------------- ##
-+## Output variables. ##
-+## ----------------- ##
-+_ASBOX
-+ echo
-+ for ac_var in $ac_subst_vars
-+ do
-+ eval ac_val=$`echo $ac_var`
-+ echo "$ac_var='"'"'$ac_val'"'"'"
-+ done | sort
-+ echo
-+
-+ if test -n "$ac_subst_files"; then
-+ cat <<\_ASBOX
-+## ------------- ##
-+## Output files. ##
-+## ------------- ##
-+_ASBOX
-+ echo
-+ for ac_var in $ac_subst_files
-+ do
-+ eval ac_val=$`echo $ac_var`
-+ echo "$ac_var='"'"'$ac_val'"'"'"
-+ done | sort
-+ echo
-+ fi
-+
-+ if test -s confdefs.h; then
-+ cat <<\_ASBOX
-+## ----------- ##
-+## confdefs.h. ##
-+## ----------- ##
-+_ASBOX
-+ echo
-+ sed "/^$/d" confdefs.h | sort
-+ echo
-+ fi
-+ test "$ac_signal" != 0 &&
-+ echo "$as_me: caught signal $ac_signal"
-+ echo "$as_me: exit $exit_status"
-+ } >&5
-+ rm -f core *.core &&
-+ rm -rf conftest* confdefs* conf$$* $ac_clean_files &&
-+ exit $exit_status
-+ ' 0
-+for ac_signal in 1 2 13 15; do
-+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
-+done
-+ac_signal=0
-+
-+# confdefs.h avoids OS command line length limits that DEFS can exceed.
-+rm -rf conftest* confdefs.h
-+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
-+echo >confdefs.h
-+
-+# Predefined preprocessor variables.
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_NAME "$PACKAGE_NAME"
-+_ACEOF
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-+_ACEOF
-
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_VERSION "$PACKAGE_VERSION"
-+_ACEOF
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_STRING "$PACKAGE_STRING"
-+_ACEOF
-+
-+
-+cat >>confdefs.h <<_ACEOF
-+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-+_ACEOF
-+
-+
-+# Let the site file select an alternate cache file if it wants to.
- # Prefer explicitly selected file to automatically selected ones.
- if test -z "$CONFIG_SITE"; then
- if test "x$prefix" != xNONE; then
-@@ -507,39 +1204,103 @@ if test -z "$CONFIG_SITE"; then
- fi
- for ac_site_file in $CONFIG_SITE; do
- if test -r "$ac_site_file"; then
-- echo "loading site script $ac_site_file"
-+ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-+echo "$as_me: loading site script $ac_site_file" >&6;}
-+ sed 's/^/| /' "$ac_site_file" >&5
- . "$ac_site_file"
- fi
- done
-
- if test -r "$cache_file"; then
-- echo "loading cache $cache_file"
-- . $cache_file
-+ # Some versions of bash will fail to source /dev/null (special
-+ # files actually), so we avoid doing that.
-+ if test -f "$cache_file"; then
-+ { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-+echo "$as_me: loading cache $cache_file" >&6;}
-+ case $cache_file in
-+ [\\/]* | ?:[\\/]* ) . $cache_file;;
-+ *) . ./$cache_file;;
-+ esac
-+ fi
- else
-- echo "creating cache $cache_file"
-- > $cache_file
-+ { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-+echo "$as_me: creating cache $cache_file" >&6;}
-+ >$cache_file
-+fi
-+
-+# Check that the precious variables saved in the cache have kept the same
-+# value.
-+ac_cache_corrupted=false
-+for ac_var in `(set) 2>&1 |
-+ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do
-+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
-+ eval ac_new_set=\$ac_env_${ac_var}_set
-+ eval ac_old_val="\$ac_cv_env_${ac_var}_value"
-+ eval ac_new_val="\$ac_env_${ac_var}_value"
-+ case $ac_old_set,$ac_new_set in
-+ set,)
-+ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-+echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-+ ac_cache_corrupted=: ;;
-+ ,set)
-+ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-+echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-+ ac_cache_corrupted=: ;;
-+ ,);;
-+ *)
-+ if test "x$ac_old_val" != "x$ac_new_val"; then
-+ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-+echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-+ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5
-+echo "$as_me: former value: $ac_old_val" >&2;}
-+ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5
-+echo "$as_me: current value: $ac_new_val" >&2;}
-+ ac_cache_corrupted=:
-+ fi;;
-+ esac
-+ # Pass precious variables to config.status.
-+ if test "$ac_new_set" = set; then
-+ case $ac_new_val in
-+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*)
-+ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-+ *) ac_arg=$ac_var=$ac_new_val ;;
-+ esac
-+ case " $ac_configure_args " in
-+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
-+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
-+ esac
-+ fi
-+done
-+if $ac_cache_corrupted; then
-+ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-+echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-+ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-+ { (exit 1); exit 1; }; }
- fi
-
- ac_ext=c
--# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
- ac_cpp='$CPP $CPPFLAGS'
--ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
--ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
--cross_compiling=$ac_cv_prog_cc_cross
--
--ac_exeext=
--ac_objext=o
--if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
-- # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
-- if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
-- ac_n= ac_c='
--' ac_t=' '
-- else
-- ac_n=-n ac_c= ac_t=
-- fi
--else
-- ac_n= ac_c='\c' ac_t=
--fi
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-+
-
-
-
-@@ -548,24 +1309,25 @@ fi
- VERSION="1.0.7"
-
-
-+
- # Check whether --with-release or --without-release was given.
- if test "${with_release+set}" = set; then
- withval="$with_release"
- RELEASE=$withval
- else
- RELEASE=1
--fi
-+fi;
-+
-
--
- # Check whether --with-statedir or --without-statedir was given.
- if test "${with_statedir+set}" = set; then
- withval="$with_statedir"
- statedir=$withval
- else
- statedir=/var/lib/nfs
--fi
-+fi;
-+
-
--
- # Check whether --with-statduser or --without-statduser was given.
- if test "${with_statduser+set}" = set; then
- withval="$with_statduser"
-@@ -576,58 +1338,57 @@ else
- else
- statduser=nobody
- fi
--fi
-+fi;
-
--
- # Check whether --enable-nfsv3 or --disable-nfsv3 was given.
- if test "${enable_nfsv3+set}" = set; then
- enableval="$enable_nfsv3"
- enable_nfsv3=$enableval
- else
- enable_nfsv3=yes
--fi
--
-+fi;
- if test "$enable_nfsv3" = yes; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define NFS3_SUPPORTED 1
--EOF
-+_ACEOF
-
- else
- enable_nfsv3=
- fi
--
-+
- # Check whether --enable-nfsv4 or --disable-nfsv4 was given.
- if test "${enable_nfsv4+set}" = set; then
- enableval="$enable_nfsv4"
- enable_nfsv4=$enableval
- else
- enable_nfsv4=yes
--fi
--
-+fi;
- if test "$enable_nfsv4" = yes; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define NFS4_SUPPORTED 1
--EOF
-+_ACEOF
-
- IDMAPD=idmapd
- else
- enable_nfsv4=
- IDMAPD=
- fi
--
--
-+
-+
- # Check whether --enable-gss or --disable-gss was given.
- if test "${enable_gss+set}" = set; then
- enableval="$enable_gss"
- enable_gss=$enableval
- else
- enable_gss=yes
--fi
--
-+fi;
- if test "$enable_gss" = yes; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define GSS_SUPPORTED 1
--EOF
-+_ACEOF
-
- GSSD=gssd
- SVCGSSD=svcgssd
-@@ -636,257 +1397,701 @@ EOF
- GSSD=
- SVCGSSD=
- fi
--
--
--
-+
-+
-+
- # Check whether --enable-kprefix or --disable-kprefix was given.
- if test "${enable_kprefix+set}" = set; then
- enableval="$enable_kprefix"
- test "$enableval" = "yes" && kprefix=k
- else
- kprefix=
--fi
-+fi;
-
--
- # Check whether --enable-secure-statd or --disable-secure-statd was given.
- if test "${enable_secure_statd+set}" = set; then
- enableval="$enable_secure_statd"
- test "$enableval" = "yes" && secure_statd=yes
- else
- secure_statd=no
--fi
--
-+fi;
- if test "$secure_statd" = yes; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define RESTRICTED_STATD 1
--EOF
-+_ACEOF
-
- fi
--
-+
- # Check whether --enable-rquotad or --disable-rquotad was given.
- if test "${enable_rquotad+set}" = set; then
- enableval="$enable_rquotad"
- enable_rquotad=$enableval
- else
- enable_rquotad=yes
--fi
--
-+fi;
- if test "$enable_rquotad" = yes; then
- RQUOTAD=rquotad
- else
- RQUOTAD=
- fi
--
-
-+ ac_config_headers="$ac_config_headers support/include/config.h"
-
--# Extract the first word of "gcc", so it can be a program name with args.
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}gcc; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$CC"; then
-+ ac_cv_prog_CC="$CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
-+fi
-+fi
-+CC=$ac_cv_prog_CC
-+if test -n "$CC"; then
-+ echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+fi
-+if test -z "$ac_cv_prog_CC"; then
-+ ac_ct_CC=$CC
-+ # Extract the first word of "gcc", so it can be a program name with args.
- set dummy gcc; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:686: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_CC"; then
-+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_CC="gcc"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
-+fi
-+fi
-+ac_ct_CC=$ac_cv_prog_ac_ct_CC
-+if test -n "$ac_ct_CC"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+echo "${ECHO_T}$ac_ct_CC" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ CC=$ac_ct_CC
-+else
-+ CC="$ac_cv_prog_CC"
-+fi
-+
-+if test -z "$CC"; then
-+ if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-+set dummy ${ac_tool_prefix}cc; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_CC="gcc"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_CC="${ac_tool_prefix}cc"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- fi
- fi
--CC="$ac_cv_prog_CC"
-+CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$ac_t""$CC" 1>&6
-+ echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+fi
-+if test -z "$ac_cv_prog_CC"; then
-+ ac_ct_CC=$CC
-+ # Extract the first word of "cc", so it can be a program name with args.
-+set dummy cc; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_CC"; then
-+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_CC="cc"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
-+fi
-+fi
-+ac_ct_CC=$ac_cv_prog_ac_ct_CC
-+if test -n "$ac_ct_CC"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+echo "${ECHO_T}$ac_ct_CC" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ CC=$ac_ct_CC
- else
-- echo "$ac_t""no" 1>&6
-+ CC="$ac_cv_prog_CC"
- fi
-
-+fi
- if test -z "$CC"; then
- # Extract the first word of "cc", so it can be a program name with args.
- set dummy cc; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:716: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
- ac_prog_rejected=no
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
-- ac_prog_rejected=yes
-- continue
-- fi
-- ac_cv_prog_CC="cc"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-+ ac_prog_rejected=yes
-+ continue
-+ fi
-+ ac_cv_prog_CC="cc"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- if test $ac_prog_rejected = yes; then
- # We found a bogon in the path, so make sure we never use it.
- set dummy $ac_cv_prog_CC
- shift
-- if test $# -gt 0; then
-+ if test $# != 0; then
- # We chose a different compiler from the bogus one.
- # However, it has the same basename, so the bogon will be chosen
- # first if we set CC to just the basename; use the full file name.
- shift
-- set dummy "$ac_dir/$ac_word" "$@"
-- shift
-- ac_cv_prog_CC="$@"
-+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
- fi
- fi
- fi
- fi
--CC="$ac_cv_prog_CC"
-+CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$ac_t""$CC" 1>&6
-+ echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6
- else
-- echo "$ac_t""no" 1>&6
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
-- if test -z "$CC"; then
-- case "`uname -s`" in
-- *win32* | *WIN32*)
-- # Extract the first word of "cl", so it can be a program name with args.
--set dummy cl; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:767: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+fi
-+if test -z "$CC"; then
-+ if test -n "$ac_tool_prefix"; then
-+ for ac_prog in cl
-+ do
-+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$CC"; then
- ac_cv_prog_CC="$CC" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_CC="cl"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- fi
- fi
--CC="$ac_cv_prog_CC"
-+CC=$ac_cv_prog_CC
- if test -n "$CC"; then
-- echo "$ac_t""$CC" 1>&6
-+ echo "$as_me:$LINENO: result: $CC" >&5
-+echo "${ECHO_T}$CC" >&6
- else
-- echo "$ac_t""no" 1>&6
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-- ;;
-- esac
-+
-+ test -n "$CC" && break
-+ done
-+fi
-+if test -z "$CC"; then
-+ ac_ct_CC=$CC
-+ for ac_prog in cl
-+do
-+ # Extract the first word of "$ac_prog", so it can be a program name with args.
-+set dummy $ac_prog; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_CC"; then
-+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_CC="$ac_prog"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
- fi
-- test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
-+done
-+done
-+
- fi
-+fi
-+ac_ct_CC=$ac_cv_prog_ac_ct_CC
-+if test -n "$ac_ct_CC"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+echo "${ECHO_T}$ac_ct_CC" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ test -n "$ac_ct_CC" && break
-+done
-
--echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
--echo "configure:799: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
-+ CC=$ac_ct_CC
-+fi
-
--ac_ext=c
--# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
--ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
--cross_compiling=$ac_cv_prog_cc_cross
-+fi
-
--cat > conftest.$ac_ext << EOF
-
--#line 810 "configure"
--#include "confdefs.h"
-+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: no acceptable C compiler found in \$PATH
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+
-+# Provide some information about the compiler.
-+echo "$as_me:$LINENO:" \
-+ "checking for C 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
-+ (eval $ac_compiler -v </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
-+ (eval $ac_compiler -V </dev/null >&5) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }
-+
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+ac_clean_files_save=$ac_clean_files
-+ac_clean_files="$ac_clean_files a.out a.exe b.out"
-+# Try to create an executable without -o first, disregard a.out.
-+# It will help us diagnose broken compilers, and finding out an intuition
-+# of exeext.
-+echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-+echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6
-+ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-+if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5
-+ (eval $ac_link_default) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ # Find the output, starting from the most likely. This scheme is
-+# not robust to junk in `.', hence go to wildcards (a.*) only as a last
-+# resort.
-+
-+# Be careful to initialize this variable, since it used to be cached.
-+# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile.
-+ac_cv_exeext=
-+# b.out is created by i960 compilers.
-+for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out
-+do
-+ test -f "$ac_file" || continue
-+ case $ac_file in
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj )
-+ ;;
-+ conftest.$ac_ext )
-+ # This is the source file.
-+ ;;
-+ [ab].out )
-+ # We found the default executable, but exeext='' is most
-+ # certainly right.
-+ break;;
-+ *.* )
-+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-+ # FIXME: I believe we export ac_cv_exeext for Libtool,
-+ # but it would be cool to find out if it's true. Does anybody
-+ # maintain Libtool? --akim.
-+ export ac_cv_exeext
-+ break;;
-+ * )
-+ break;;
-+ esac
-+done
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
--main(){return(0);}
--EOF
--if { (eval echo configure:815: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- ac_cv_prog_cc_works=yes
-- # If we can't run a trivial program, we are probably using a cross compiler.
-- if (./conftest; exit) 2>/dev/null; then
-- ac_cv_prog_cc_cross=no
-+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: C compiler cannot create executables
-+See \`config.log' for more details." >&2;}
-+ { (exit 77); exit 77; }; }
-+fi
-+
-+ac_exeext=$ac_cv_exeext
-+echo "$as_me:$LINENO: result: $ac_file" >&5
-+echo "${ECHO_T}$ac_file" >&6
-+
-+# Check the compiler produces executables we can run. If not, either
-+# the compiler is broken, or we cross compile.
-+echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-+echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6
-+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
-+# If not cross compiling, check that we can run a simple program.
-+if test "$cross_compiling" != yes; then
-+ if { ac_try='./$ac_file'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ cross_compiling=no
- else
-- ac_cv_prog_cc_cross=yes
-+ if test "$cross_compiling" = maybe; then
-+ cross_compiling=yes
-+ else
-+ { { echo "$as_me:$LINENO: error: cannot run C compiled programs.
-+If you meant to cross compile, use \`--host'.
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot run C compiled programs.
-+If you meant to cross compile, use \`--host'.
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+ fi
- fi
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- ac_cv_prog_cc_works=no
--fi
--rm -fr conftest*
--ac_ext=c
--# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
--ac_cpp='$CPP $CPPFLAGS'
--ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
--ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
--cross_compiling=$ac_cv_prog_cc_cross
--
--echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
--if test $ac_cv_prog_cc_works = no; then
-- { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
- fi
--echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
--echo "configure:841: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
--echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
--cross_compiling=$ac_cv_prog_cc_cross
-+echo "$as_me:$LINENO: result: yes" >&5
-+echo "${ECHO_T}yes" >&6
-
--echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
--echo "configure:846: checking whether we are using GNU C" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+rm -f a.out a.exe conftest$ac_cv_exeext b.out
-+ac_clean_files=$ac_clean_files_save
-+# Check the compiler produces executables we can run. If not, either
-+# the compiler is broken, or we cross compile.
-+echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-+echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6
-+echo "$as_me:$LINENO: result: $cross_compiling" >&5
-+echo "${ECHO_T}$cross_compiling" >&6
-+
-+echo "$as_me:$LINENO: checking for suffix of executables" >&5
-+echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; then
-+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
-+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
-+# work properly (i.e., refer to `conftest.exe'), while it won't with
-+# `rm'.
-+for ac_file in conftest.exe conftest conftest.*; do
-+ test -f "$ac_file" || continue
-+ case $ac_file in
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;;
-+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-+ export ac_cv_exeext
-+ break;;
-+ * ) break;;
-+ esac
-+done
- else
-- cat > conftest.c <<EOF
--#ifdef __GNUC__
-- yes;
--#endif
--EOF
--if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:855: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
-- ac_cv_prog_gcc=yes
-+ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+rm -f conftest$ac_cv_exeext
-+echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-+echo "${ECHO_T}$ac_cv_exeext" >&6
-+
-+rm -f conftest.$ac_ext
-+EXEEXT=$ac_cv_exeext
-+ac_exeext=$EXEEXT
-+echo "$as_me:$LINENO: checking for suffix of object files" >&5
-+echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6
-+if test "${ac_cv_objext+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.o conftest.obj
-+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
-+ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do
-+ case $ac_file in
-+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;;
-+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-+ break;;
-+ esac
-+done
- else
-- ac_cv_prog_gcc=no
--fi
--fi
--
--echo "$ac_t""$ac_cv_prog_gcc" 1>&6
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
--if test $ac_cv_prog_gcc = yes; then
-- GCC=yes
--else
-- GCC=
--fi
-+{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot compute suffix of object files: cannot compile
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+rm -f conftest.$ac_cv_objext conftest.$ac_ext
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-+echo "${ECHO_T}$ac_cv_objext" >&6
-+OBJEXT=$ac_cv_objext
-+ac_objext=$OBJEXT
-+echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-+echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6
-+if test "${ac_cv_c_compiler_gnu+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+#ifndef __GNUC__
-+ choke me
-+#endif
-
--ac_test_CFLAGS="${CFLAGS+set}"
--ac_save_CFLAGS="$CFLAGS"
--CFLAGS=
--echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
--echo "configure:874: checking whether ${CC-cc} accepts -g" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- echo 'void f(){}' > conftest.c
--if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_compiler_gnu=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_compiler_gnu=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+ac_cv_c_compiler_gnu=$ac_compiler_gnu
-+
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-+echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6
-+GCC=`test $ac_compiler_gnu = yes && echo yes`
-+ac_test_CFLAGS=${CFLAGS+set}
-+ac_save_CFLAGS=$CFLAGS
-+CFLAGS="-g"
-+echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-+echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6
-+if test "${ac_cv_prog_cc_g+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
- ac_cv_prog_cc_g=yes
- else
-- ac_cv_prog_cc_g=no
--fi
--rm -f conftest*
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
-+ac_cv_prog_cc_g=no
- fi
--
--echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_g" >&6
- if test "$ac_test_CFLAGS" = set; then
-- CFLAGS="$ac_save_CFLAGS"
-+ CFLAGS=$ac_save_CFLAGS
- elif test $ac_cv_prog_cc_g = yes; then
- if test "$GCC" = yes; then
- CFLAGS="-g -O2"
-@@ -900,86 +2105,503 @@ else
- CFLAGS=
- fi
- fi
-+echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5
-+echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6
-+if test "${ac_cv_prog_cc_stdc+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_cv_prog_cc_stdc=no
-+ac_save_CC=$CC
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <stdarg.h>
-+#include <stdio.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */
-+struct buf { int x; };
-+FILE * (*rcsopen) (struct buf *, struct stat *, int);
-+static char *e (p, i)
-+ char **p;
-+ int i;
-+{
-+ return p[i];
-+}
-+static char *f (char * (*g) (char **, int), char **p, ...)
-+{
-+ char *s;
-+ va_list v;
-+ va_start (v,p);
-+ s = g (p, va_arg (v,int));
-+ va_end (v);
-+ return s;
-+}
-+
-+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
-+ function prototypes and stuff, but not '\xHH' hex character constants.
-+ These don't provoke an error unfortunately, instead are silently treated
-+ as 'x'. The following induces an error, until -std1 is added to get
-+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an
-+ array size at least. It's necessary to write '\x00'==0 to get something
-+ that's true only with -std1. */
-+int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-+
-+int test (int i, double x);
-+struct s1 {int (*f) (int a);};
-+struct s2 {int (*f) (double a);};
-+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-+int argc;
-+char **argv;
-+int
-+main ()
-+{
-+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+# Don't try gcc -ansi; that turns off useful extensions and
-+# breaks some systems' header files.
-+# AIX -qlanglvl=ansi
-+# Ultrix and OSF/1 -std1
-+# HP-UX 10.20 and later -Ae
-+# HP-UX older versions -Aa -D_HPUX_SOURCE
-+# SVR4 -Xc -D__EXTENSIONS__
-+for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-+do
-+ CC="$ac_save_CC $ac_arg"
-+ rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_prog_cc_stdc=$ac_arg
-+break
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext
-+done
-+rm -f conftest.$ac_ext conftest.$ac_objext
-+CC=$ac_save_CC
-+
-+fi
-+
-+case "x$ac_cv_prog_cc_stdc" in
-+ x|xno)
-+ echo "$as_me:$LINENO: result: none needed" >&5
-+echo "${ECHO_T}none needed" >&6 ;;
-+ *)
-+ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5
-+echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6
-+ CC="$CC $ac_cv_prog_cc_stdc" ;;
-+esac
-+
-+# Some people use a C++ compiler to compile C. Since we use `exit',
-+# in C++ we need to declare it. In case someone uses the same compiler
-+# for both compiling C and C++ we need to have the C++ compiler decide
-+# the declaration of exit, since it's the most demanding environment.
-+cat >conftest.$ac_ext <<_ACEOF
-+#ifndef __cplusplus
-+ choke me
-+#endif
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ for ac_declaration in \
-+ '' \
-+ 'extern "C" void std::exit (int) throw (); using std::exit;' \
-+ 'extern "C" void std::exit (int); using std::exit;' \
-+ 'extern "C" void exit (int) throw ();' \
-+ 'extern "C" void exit (int);' \
-+ 'void exit (int);'
-+do
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_declaration
-+#include <stdlib.h>
-+int
-+main ()
-+{
-+exit (42);
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+continue
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_declaration
-+int
-+main ()
-+{
-+exit (42);
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ break
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+done
-+rm -f conftest*
-+if test -n "$ac_declaration"; then
-+ echo '#ifdef __cplusplus' >>confdefs.h
-+ echo $ac_declaration >>confdefs.h
-+ echo '#endif' >>confdefs.h
-+fi
-+
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
--echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
--echo "configure:906: checking how to run the C preprocessor" >&5
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-+echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-+echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6
- # On Suns, sometimes $CPP names a directory.
- if test -n "$CPP" && test -d "$CPP"; then
- CPP=
- fi
- if test -z "$CPP"; then
--if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+ if test "${ac_cv_prog_CPP+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- # This must be in double quotes, not single quotes, because CPP may get
-- # substituted into the Makefile and "${CC-cc}" will confuse make.
-- CPP="${CC-cc} -E"
-+ # Double quotes because CPP needs to be expanded
-+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-+ do
-+ ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+ # Use a header file that comes with gcc, so configuring glibc
-+ # with a fresh cross-compiler works.
-+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+ # <limits.h> exists even on freestanding compilers.
- # On the NeXT, cc -E runs the code through the compiler's parser,
-- # not just through cpp.
-- cat > conftest.$ac_ext <<EOF
--#line 921 "configure"
--#include "confdefs.h"
--#include <assert.h>
--Syntax Error
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:927: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- :
-+ # not just through cpp. "Syntax error" is here to catch this case.
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+ Syntax error
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
- else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- CPP="${CC-cc} -E -traditional-cpp"
-- cat > conftest.$ac_ext <<EOF
--#line 938 "configure"
--#include "confdefs.h"
--#include <assert.h>
--Syntax Error
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:944: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
- :
- else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- CPP="${CC-cc} -nologo -E"
-- cat > conftest.$ac_ext <<EOF
--#line 955 "configure"
--#include "confdefs.h"
--#include <assert.h>
--Syntax Error
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:961: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- :
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ # Broken: fails on valid input.
-+continue
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+
-+ # OK, works on sane cases. Now check whether non-existent headers
-+ # can be detected and how.
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <ac_nonexistent.h>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
- else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- CPP=/lib/cpp
-+ ac_cpp_err=yes
- fi
--rm -f conftest*
-+if test -z "$ac_cpp_err"; then
-+ # Broken: success on invalid input.
-+continue
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ # Passes both tests.
-+ac_preproc_ok=:
-+break
- fi
--rm -f conftest*
-+rm -f conftest.err conftest.$ac_ext
-+
-+done
-+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-+rm -f conftest.err conftest.$ac_ext
-+if $ac_preproc_ok; then
-+ break
- fi
--rm -f conftest*
-- ac_cv_prog_CPP="$CPP"
-+
-+ done
-+ ac_cv_prog_CPP=$CPP
-+
-+fi
-+ CPP=$ac_cv_prog_CPP
-+else
-+ ac_cv_prog_CPP=$CPP
-+fi
-+echo "$as_me:$LINENO: result: $CPP" >&5
-+echo "${ECHO_T}$CPP" >&6
-+ac_preproc_ok=false
-+for ac_c_preproc_warn_flag in '' yes
-+do
-+ # Use a header file that comes with gcc, so configuring glibc
-+ # with a fresh cross-compiler works.
-+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+ # <limits.h> exists even on freestanding compilers.
-+ # On the NeXT, cc -E runs the code through the compiler's parser,
-+ # not just through cpp. "Syntax error" is here to catch this case.
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-+ Syntax error
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ :
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ # Broken: fails on valid input.
-+continue
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+
-+ # OK, works on sane cases. Now check whether non-existent headers
-+ # can be detected and how.
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <ac_nonexistent.h>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
-+ # Broken: success on invalid input.
-+continue
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ # Passes both tests.
-+ac_preproc_ok=:
-+break
- fi
-- CPP="$ac_cv_prog_CPP"
-+rm -f conftest.err conftest.$ac_ext
-+
-+done
-+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-+rm -f conftest.err conftest.$ac_ext
-+if $ac_preproc_ok; then
-+ :
- else
-- ac_cv_prog_CPP="$CPP"
-+ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
- fi
--echo "$ac_t""$CPP" 1>&6
-+
-+ac_ext=c
-+ac_cpp='$CPP $CPPFLAGS'
-+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-+ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- ac_aux_dir=
- for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do
-@@ -991,14 +2613,20 @@ for ac_dir in $srcdir $srcdir/.. $srcdir
- ac_aux_dir=$ac_dir
- ac_install_sh="$ac_aux_dir/install.sh -c"
- break
-+ elif test -f $ac_dir/shtool; then
-+ ac_aux_dir=$ac_dir
-+ ac_install_sh="$ac_aux_dir/shtool install -c"
-+ break
- fi
- done
- if test -z "$ac_aux_dir"; then
-- { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
--fi
--ac_config_guess=$ac_aux_dir/config.guess
--ac_config_sub=$ac_aux_dir/config.sub
--ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
-+ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5
-+echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+ac_config_guess="$SHELL $ac_aux_dir/config.guess"
-+ac_config_sub="$SHELL $ac_aux_dir/config.sub"
-+ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure.
-
- # Find a good install program. We prefer a C program (faster),
- # so one script is as good as another. But avoid the broken or
-@@ -1007,60 +2635,75 @@ ac_configure=$ac_aux_dir/configure # Thi
- # SunOS /usr/etc/install
- # IRIX /sbin/install
- # AIX /bin/install
-+# AmigaOS /C/install, which installs bootblocks on floppy discs
- # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
- # AFS /usr/afsws/bin/install, which mishandles nonexistent args
- # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-+# OS/2's system install, which has a completely different semantic
- # ./install, which can be erroneously created by make from ./install.sh.
--echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
--echo "configure:1016: checking for a BSD compatible install" >&5
-+echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-+echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6
- if test -z "$INSTALL"; then
--if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+if test "${ac_cv_path_install+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- IFS="${IFS= }"; ac_save_IFS="$IFS"; IFS=":"
-- for ac_dir in $PATH; do
-- # Account for people who put trailing slashes in PATH elements.
-- case "$ac_dir/" in
-- /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/usr/ucb/*) ;;
-- *)
-- # OSF1 and SCO ODT 3.0 have their own names for install.
-- # Don't use installbsd from OSF since it installs stuff as root
-- # by default.
-- for ac_prog in ginstall scoinst install; do
-- if test -f $ac_dir/$ac_prog; then
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ # Account for people who put trailing slashes in PATH elements.
-+case $as_dir/ in
-+ ./ | .// | /cC/* | \
-+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-+ /usr/ucb/* ) ;;
-+ *)
-+ # OSF1 and SCO ODT 3.0 have their own names for install.
-+ # Don't use installbsd from OSF since it installs stuff as root
-+ # by default.
-+ for ac_prog in ginstall scoinst install; do
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- if test $ac_prog = install &&
-- grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
-+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
- # AIX install. It has an incompatible calling convention.
- :
-+ elif test $ac_prog = install &&
-+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-+ # program-specific install script used by HP pwplus--don't use.
-+ :
- else
-- ac_cv_path_install="$ac_dir/$ac_prog -c"
-- break 2
-+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-+ break 3
- fi
- fi
- done
-- ;;
-- esac
-- done
-- IFS="$ac_save_IFS"
-+ done
-+ ;;
-+esac
-+done
-+
-
- fi
- if test "${ac_cv_path_install+set}" = set; then
-- INSTALL="$ac_cv_path_install"
-+ INSTALL=$ac_cv_path_install
- else
- # As a last resort, use the slow shell script. We don't cache a
- # path for INSTALL within a source directory, because that will
- # break other packages using the cache if that directory is
- # removed, or if the path is relative.
-- INSTALL="$ac_install_sh"
-+ INSTALL=$ac_install_sh
- fi
- fi
--echo "$ac_t""$INSTALL" 1>&6
-+echo "$as_me:$LINENO: result: $INSTALL" >&5
-+echo "${ECHO_T}$INSTALL" >&6
-
- # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
- # It thinks the first close brace ends the variable substitution.
- test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
--test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
-+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
- test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-@@ -1068,229 +2711,332 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
- test "${CC_FOR_BUILD+set}" = set || CC_FOR_BUILD="$CC"
-
-
--
--# Make sure we can run config.sub.
--if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
--else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
--fi
--
--echo $ac_n "checking host system type""... $ac_c" 1>&6
--echo "configure:1079: checking host system type" >&5
--
--host_alias=$host
--case "$host_alias" in
--NONE)
-- case $nonopt in
-- NONE)
-- if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
-- else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
-- fi ;;
-- *) host_alias=$nonopt ;;
-- esac ;;
--esac
--
--host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
--host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
--echo "$ac_t""$host" 1>&6
--
--echo $ac_n "checking build system type""... $ac_c" 1>&6
--echo "configure:1100: checking build system type" >&5
--
--build_alias=$build
--case "$build_alias" in
--NONE)
-- case $nonopt in
-- NONE) build_alias=$host_alias ;;
-- *) build_alias=$nonopt ;;
-- esac ;;
--esac
--
--build=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $build_alias`
--build_cpu=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
--build_vendor=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
--build_os=`echo $build | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
--echo "$ac_t""$build" 1>&6
--
--if test $host != $build; then
-- ac_tool_prefix=${host_alias}-
--else
-- ac_tool_prefix=
--fi
--
--# Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ranlib; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1126: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_RANLIB+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$RANLIB"; then
- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- fi
- fi
--RANLIB="$ac_cv_prog_RANLIB"
-+RANLIB=$ac_cv_prog_RANLIB
- if test -n "$RANLIB"; then
-- echo "$ac_t""$RANLIB" 1>&6
-+ echo "$as_me:$LINENO: result: $RANLIB" >&5
-+echo "${ECHO_T}$RANLIB" >&6
- else
-- echo "$ac_t""no" 1>&6
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
--
-+fi
- if test -z "$ac_cv_prog_RANLIB"; then
--if test -n "$ac_tool_prefix"; then
-+ ac_ct_RANLIB=$RANLIB
- # Extract the first word of "ranlib", so it can be a program name with args.
- set dummy ranlib; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1158: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- if test -n "$RANLIB"; then
-- ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
--else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_RANLIB="ranlib"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-- test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
--fi
--fi
--RANLIB="$ac_cv_prog_RANLIB"
--if test -n "$RANLIB"; then
-- echo "$ac_t""$RANLIB" 1>&6
-+ if test -n "$ac_ct_RANLIB"; then
-+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
- else
-- echo "$ac_t""no" 1>&6
--fi
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_RANLIB="ranlib"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-
-+ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":"
-+fi
-+fi
-+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-+if test -n "$ac_ct_RANLIB"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-+echo "${ECHO_T}$ac_ct_RANLIB" >&6
- else
-- RANLIB=":"
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-+
-+ RANLIB=$ac_ct_RANLIB
-+else
-+ RANLIB="$ac_cv_prog_RANLIB"
- fi
-
--# Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ar; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1193: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_AR+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$AR"; then
- ac_cv_prog_AR="$AR" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_AR="${ac_tool_prefix}ar"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-- test -z "$ac_cv_prog_AR" && ac_cv_prog_AR="ar"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_AR="${ac_tool_prefix}ar"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- fi
- fi
--AR="$ac_cv_prog_AR"
-+AR=$ac_cv_prog_AR
- if test -n "$AR"; then
-- echo "$ac_t""$AR" 1>&6
-+ echo "$as_me:$LINENO: result: $AR" >&5
-+echo "${ECHO_T}$AR" >&6
- else
-- echo "$ac_t""no" 1>&6
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
-+fi
-+if test -z "$ac_cv_prog_AR"; then
-+ ac_ct_AR=$AR
-+ # Extract the first word of "ar", so it can be a program name with args.
-+set dummy ar; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_AR"; then
-+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_AR="ar"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-
-+fi
-+fi
-+ac_ct_AR=$ac_cv_prog_ac_ct_AR
-+if test -n "$ac_ct_AR"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-+echo "${ECHO_T}$ac_ct_AR" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+ AR=$ac_ct_AR
-+else
-+ AR="$ac_cv_prog_AR"
-+fi
-
--# Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
-+if test -n "$ac_tool_prefix"; then
-+ # Extract the first word of "${ac_tool_prefix}ld", so it can be a program name with args.
- set dummy ${ac_tool_prefix}ld; ac_word=$2
--echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
--echo "configure:1225: checking for $ac_word" >&5
--if eval "test \"`echo '$''{'ac_cv_prog_LD'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_LD+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- if test -n "$LD"; then
- ac_cv_prog_LD="$LD" # Let the user override the test.
- else
-- IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":"
-- ac_dummy="$PATH"
-- for ac_dir in $ac_dummy; do
-- test -z "$ac_dir" && ac_dir=.
-- if test -f $ac_dir/$ac_word; then
-- ac_cv_prog_LD="${ac_tool_prefix}ld"
-- break
-- fi
-- done
-- IFS="$ac_save_ifs"
-- test -z "$ac_cv_prog_LD" && ac_cv_prog_LD="ld"
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_LD="${ac_tool_prefix}ld"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
- fi
- fi
--LD="$ac_cv_prog_LD"
-+LD=$ac_cv_prog_LD
- if test -n "$LD"; then
-- echo "$ac_t""$LD" 1>&6
-+ echo "$as_me:$LINENO: result: $LD" >&5
-+echo "${ECHO_T}$LD" >&6
-+else
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
-+fi
-+
-+fi
-+if test -z "$ac_cv_prog_LD"; then
-+ ac_ct_LD=$LD
-+ # Extract the first word of "ld", so it can be a program name with args.
-+set dummy ld; ac_word=$2
-+echo "$as_me:$LINENO: checking for $ac_word" >&5
-+echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6
-+if test "${ac_cv_prog_ac_ct_LD+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test -n "$ac_ct_LD"; then
-+ ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test.
-+else
-+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for ac_exec_ext in '' $ac_executable_extensions; do
-+ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-+ ac_cv_prog_ac_ct_LD="ld"
-+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+ break 2
-+ fi
-+done
-+done
-+
-+fi
-+fi
-+ac_ct_LD=$ac_cv_prog_ac_ct_LD
-+if test -n "$ac_ct_LD"; then
-+ echo "$as_me:$LINENO: result: $ac_ct_LD" >&5
-+echo "${ECHO_T}$ac_ct_LD" >&6
- else
-- echo "$ac_t""no" 1>&6
-+ echo "$as_me:$LINENO: result: no" >&5
-+echo "${ECHO_T}no" >&6
- fi
-
-+ LD=$ac_ct_LD
-+else
-+ LD="$ac_cv_prog_LD"
-+fi
-
-
-
--echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
--echo "configure:1256: checking for ANSI C header files" >&5
--if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+
-+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
-- cat > conftest.$ac_ext <<EOF
--#line 1261 "configure"
--#include "confdefs.h"
-+ if echo a | (grep -E '(a|b)') >/dev/null 2>&1
-+ then ac_cv_prog_egrep='grep -E'
-+ else ac_cv_prog_egrep='egrep'
-+ fi
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5
-+echo "${ECHO_T}$ac_cv_prog_egrep" >&6
-+ EGREP=$ac_cv_prog_egrep
-+
-+
-+echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-+echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6
-+if test "${ac_cv_header_stdc+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
- #include <stdlib.h>
- #include <stdarg.h>
- #include <string.h>
- #include <float.h>
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1269: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- rm -rf conftest*
-+
-+int
-+main ()
-+{
-+
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
- ac_cv_header_stdc=yes
- else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- ac_cv_header_stdc=no
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_header_stdc=no
- fi
--rm -f conftest*
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-
- if test $ac_cv_header_stdc = yes; then
- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
--cat > conftest.$ac_ext <<EOF
--#line 1286 "configure"
--#include "confdefs.h"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
- #include <string.h>
--EOF
-+
-+_ACEOF
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- egrep "memchr" >/dev/null 2>&1; then
-+ $EGREP "memchr" >/dev/null 2>&1; then
- :
- else
-- rm -rf conftest*
- ac_cv_header_stdc=no
- fi
- rm -f conftest*
-@@ -1299,16 +3045,19 @@ fi
-
- if test $ac_cv_header_stdc = yes; then
- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
--cat > conftest.$ac_ext <<EOF
--#line 1304 "configure"
--#include "confdefs.h"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
- #include <stdlib.h>
--EOF
-+
-+_ACEOF
- if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-- egrep "free" >/dev/null 2>&1; then
-+ $EGREP "free" >/dev/null 2>&1; then
- :
- else
-- rm -rf conftest*
- ac_cv_header_stdc=no
- fi
- rm -f conftest*
-@@ -1317,412 +3066,911 @@ fi
-
- if test $ac_cv_header_stdc = yes; then
- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
--if test "$cross_compiling" = yes; then
-+ if test "$cross_compiling" = yes; then
- :
- else
-- cat > conftest.$ac_ext <<EOF
--#line 1325 "configure"
--#include "confdefs.h"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
- #include <ctype.h>
--#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
--#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-+#if ((' ' & 0x0FF) == 0x020)
-+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-+#else
-+# define ISLOWER(c) \
-+ (('a' <= (c) && (c) <= 'i') \
-+ || ('j' <= (c) && (c) <= 'r') \
-+ || ('s' <= (c) && (c) <= 'z'))
-+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-+#endif
-+
- #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
--int main () { int i; for (i = 0; i < 256; i++)
--if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
--exit (0); }
--
--EOF
--if { (eval echo configure:1336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
--then
-+int
-+main ()
-+{
-+ int i;
-+ for (i = 0; i < 256; i++)
-+ if (XOR (islower (i), ISLOWER (i))
-+ || toupper (i) != TOUPPER (i))
-+ exit(2);
-+ exit (0);
-+}
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
- :
- else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -fr conftest*
-- ac_cv_header_stdc=no
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+( exit $ac_status )
-+ac_cv_header_stdc=no
- fi
--rm -fr conftest*
-+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
--
- fi
- fi
--
--echo "$ac_t""$ac_cv_header_stdc" 1>&6
-+echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-+echo "${ECHO_T}$ac_cv_header_stdc" >&6
- if test $ac_cv_header_stdc = yes; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define STDC_HEADERS 1
--EOF
-+_ACEOF
-
- fi
-
--echo $ac_n "checking for GNU libc2""... $ac_c" 1>&6
--echo "configure:1360: checking for GNU libc2" >&5
-- if eval "test \"`echo '$''{'knfsd_cv_glibc2'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for GNU libc2" >&5
-+echo $ECHO_N "checking for GNU libc2... $ECHO_C" >&6
-+ if test "${knfsd_cv_glibc2+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- cat > conftest.$ac_ext <<EOF
--#line 1365 "configure"
--#include "confdefs.h"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-
- #include <features.h>
- #if !defined(__GLIBC__)
- # error Nope
- #endif
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1374: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- rm -rf conftest*
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
-+fi
-+if test -z "$ac_cpp_err"; then
- knfsd_cv_glibc2=yes
- else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
- knfsd_cv_glibc2=no
- fi
--rm -f conftest*
-+rm -f conftest.err conftest.$ac_ext
- fi
-
-- echo "$ac_t""$knfsd_cv_glibc2" 1>&6
-+ echo "$as_me:$LINENO: result: $knfsd_cv_glibc2" >&5
-+echo "${ECHO_T}$knfsd_cv_glibc2" >&6
- if test $knfsd_cv_glibc2 = yes; then
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
- CXXFLAGS="$CXXFLAGS -D_GNU_SOURCE"
- fi
-
-
--echo $ac_n "checking for main in -lsocket""... $ac_c" 1>&6
--echo "configure:1397: checking for main in -lsocket" >&5
--ac_lib_var=`echo socket'_'main | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for main in -lsocket" >&5
-+echo $ECHO_N "checking for main in -lsocket... $ECHO_C" >&6
-+if test "${ac_cv_lib_socket_main+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
-+ ac_check_lib_save_LIBS=$LIBS
- LIBS="-lsocket $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1405 "configure"
--#include "confdefs.h"
--
--int main() {
--main()
--; return 0; }
--EOF
--if { (eval echo configure:1412: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+
-+int
-+main ()
-+{
-+main ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_socket_main=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_socket_main=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_socket_main" >&5
-+echo "${ECHO_T}$ac_cv_lib_socket_main" >&6
-+if test $ac_cv_lib_socket_main = yes; then
- LIBSOCKET="-lnsl"
--else
-- echo "$ac_t""no" 1>&6
- fi
-
--echo $ac_n "checking for main in -lnsl""... $ac_c" 1>&6
--echo "configure:1433: checking for main in -lnsl" >&5
--ac_lib_var=`echo nsl'_'main | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for main in -lnsl" >&5
-+echo $ECHO_N "checking for main in -lnsl... $ECHO_C" >&6
-+if test "${ac_cv_lib_nsl_main+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
-+ ac_check_lib_save_LIBS=$LIBS
- LIBS="-lnsl $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1441 "configure"
--#include "confdefs.h"
--
--int main() {
--main()
--; return 0; }
--EOF
--if { (eval echo configure:1448: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+
-+int
-+main ()
-+{
-+main ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_nsl_main=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_nsl_main=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_main" >&5
-+echo "${ECHO_T}$ac_cv_lib_nsl_main" >&6
-+if test $ac_cv_lib_nsl_main = yes; then
- LIBNSL="-lnsl"
--else
-- echo "$ac_t""no" 1>&6
- fi
-
--echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
--echo "configure:1469: checking for crypt in -lcrypt" >&5
--ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for crypt in -lcrypt" >&5
-+echo $ECHO_N "checking for crypt in -lcrypt... $ECHO_C" >&6
-+if test "${ac_cv_lib_crypt_crypt+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
-+ ac_check_lib_save_LIBS=$LIBS
- LIBS="-lcrypt $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1477 "configure"
--#include "confdefs.h"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char crypt();
--
--int main() {
--crypt()
--; return 0; }
--EOF
--if { (eval echo configure:1488: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-+ builtin and then its argument prototype would still apply. */
-+char crypt ();
-+int
-+main ()
-+{
-+crypt ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_crypt_crypt=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_crypt_crypt=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_crypt_crypt" >&5
-+echo "${ECHO_T}$ac_cv_lib_crypt_crypt" >&6
-+if test $ac_cv_lib_crypt_crypt = yes; then
- LIBCRYPT="-lcrypt"
--else
-- echo "$ac_t""no" 1>&6
- fi
-
- if test "$enable_nfsv4" = yes; then
-- echo $ac_n "checking for event_dispatch in -levent""... $ac_c" 1>&6
--echo "configure:1510: checking for event_dispatch in -levent" >&5
--ac_lib_var=`echo event'_'event_dispatch | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+ echo "$as_me:$LINENO: checking for event_dispatch in -levent" >&5
-+echo $ECHO_N "checking for event_dispatch in -levent... $ECHO_C" >&6
-+if test "${ac_cv_lib_event_event_dispatch+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
-+ ac_check_lib_save_LIBS=$LIBS
- LIBS="-levent $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1518 "configure"
--#include "confdefs.h"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char event_dispatch();
-+ builtin and then its argument prototype would still apply. */
-+char event_dispatch ();
-+int
-+main ()
-+{
-+event_dispatch ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_event_event_dispatch=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_event_event_dispatch=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_event_event_dispatch" >&5
-+echo "${ECHO_T}$ac_cv_lib_event_event_dispatch" >&6
-+if test $ac_cv_lib_event_event_dispatch = yes; then
-+ libevent=1
-+else
-+ { { echo "$as_me:$LINENO: error: libevent needed for nfsv4 support" >&5
-+echo "$as_me: error: libevent needed for nfsv4 support" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+ echo "$as_me:$LINENO: checking for nfs4_init_name_mapping in -lnfsidmap" >&5
-+echo $ECHO_N "checking for nfs4_init_name_mapping in -lnfsidmap... $ECHO_C" >&6
-+if test "${ac_cv_lib_nfsidmap_nfs4_init_name_mapping+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lnfsidmap $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char nfs4_init_name_mapping ();
-+int
-+main ()
-+{
-+nfs4_init_name_mapping ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_nfsidmap_nfs4_init_name_mapping=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_nfsidmap_nfs4_init_name_mapping=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_nfsidmap_nfs4_init_name_mapping" >&5
-+echo "${ECHO_T}$ac_cv_lib_nfsidmap_nfs4_init_name_mapping" >&6
-+if test $ac_cv_lib_nfsidmap_nfs4_init_name_mapping = yes; then
-+ libnfsidmap=1
-+else
-+ { { echo "$as_me:$LINENO: error: libnfsidmap needed for nfsv4 support" >&5
-+echo "$as_me: error: libnfsidmap needed for nfsv4 support" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+ # On IRIX 5.3, sys/types and inttypes.h are conflicting.
-+
-+
-
--int main() {
--event_dispatch()
--; return 0; }
--EOF
--if { (eval echo configure:1529: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
-+
-+
-+
-+
-+
-+
-+for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-+ inttypes.h stdint.h unistd.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_Header=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_Header=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-
- fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_lib=HAVE_LIB`echo event | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_lib 1
--EOF
-
-- LIBS="-levent $LIBS"
-+done
-
-+
-+
-+for ac_header in event.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+else
-+ # Is the header compilable?
-+echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_header_compiler=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_header_compiler=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+# Is the header present?
-+echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
- else
-- echo "$ac_t""no" 1>&6
--{ echo "configure: error: libevent needed for nfsv4 support" 1>&2; exit 1; }
-+ ac_cpp_err=yes
- fi
--
-- echo $ac_n "checking for nfs4_init_name_mapping in -lnfsidmap""... $ac_c" 1>&6
--echo "configure:1558: checking for nfs4_init_name_mapping in -lnfsidmap" >&5
--ac_lib_var=`echo nfsidmap'_'nfs4_init_name_mapping | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+if test -z "$ac_cpp_err"; then
-+ ac_header_preproc=yes
- else
-- ac_save_LIBS="$LIBS"
--LIBS="-lnfsidmap $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1566 "configure"
--#include "confdefs.h"
--/* Override any gcc2 internal prototype to avoid an error. */
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char nfs4_init_name_mapping();
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
--int main() {
--nfs4_init_name_mapping()
--; return 0; }
--EOF
--if { (eval echo configure:1577: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
-+ ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6
-+
-+# So? What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-+ yes:no: )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-+ ac_header_preproc=yes
-+ ;;
-+ no:yes:* )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-+ (
-+ cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists. ##
-+## ------------------------------------------ ##
-+_ASBOX
-+ ) |
-+ sed "s/^/$as_me: WARNING: /" >&2
-+ ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ eval "$as_ac_Header=\$ac_header_preproc"
- fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
- fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_lib=HAVE_LIB`echo nfsidmap | sed -e 's/[^a-zA-Z0-9_]/_/g' \
-- -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_lib 1
--EOF
--
-- LIBS="-lnfsidmap $LIBS"
--
--else
-- echo "$ac_t""no" 1>&6
--{ echo "configure: error: libnfsidmap needed for nfsv4 support" 1>&2; exit 1; }
--fi
--
-- for ac_hdr in event.h
--do
--ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
--echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:1609: checking for $ac_hdr" >&5
--if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- cat > conftest.$ac_ext <<EOF
--#line 1614 "configure"
--#include "confdefs.h"
--#include <$ac_hdr>
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1619: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=yes"
--else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=no"
--fi
--rm -f conftest*
--fi
--if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_hdr 1
--EOF
--
--else
-- echo "$ac_t""no" 1>&6
--{ echo "configure: error: libevent needed for nfsv4 support" 1>&2; exit 1; }
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-+
-+else
-+ { { echo "$as_me:$LINENO: error: libevent needed for nfsv4 support" >&5
-+echo "$as_me: error: libevent needed for nfsv4 support" >&2;}
-+ { (exit 1); exit 1; }; }
- fi
-+
- done
-
-- for ac_hdr in nfsidmap.h
--do
--ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
--echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:1650: checking for $ac_hdr" >&5
--if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- cat > conftest.$ac_ext <<EOF
--#line 1655 "configure"
--#include "confdefs.h"
--#include <$ac_hdr>
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=yes"
--else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=no"
-+
-+for ac_header in nfsidmap.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+else
-+ # Is the header compilable?
-+echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_header_compiler=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_header_compiler=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+# Is the header present?
-+echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
- fi
--rm -f conftest*
-+if test -z "$ac_cpp_err"; then
-+ ac_header_preproc=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6
-+
-+# So? What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-+ yes:no: )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-+ ac_header_preproc=yes
-+ ;;
-+ no:yes:* )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-+ (
-+ cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists. ##
-+## ------------------------------------------ ##
-+_ASBOX
-+ ) |
-+ sed "s/^/$as_me: WARNING: /" >&2
-+ ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ eval "$as_ac_Header=\$ac_header_preproc"
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+
- fi
--if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_hdr 1
--EOF
--
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-+
- else
-- echo "$ac_t""no" 1>&6
--{ echo "configure: error: libnfsidmap needed for nfsv4 support" 1>&2; exit 1; }
-+ { { echo "$as_me:$LINENO: error: libnfsidmap needed for nfsv4 support" >&5
-+echo "$as_me: error: libnfsidmap needed for nfsv4 support" >&2;}
-+ { (exit 1); exit 1; }; }
- fi
-+
- done
-
- fi
- if test "$knfsd_cv_glibc2" = no; then
-- echo $ac_n "checking for daemon in -lbsd""... $ac_c" 1>&6
--echo "configure:1690: checking for daemon in -lbsd" >&5
--ac_lib_var=`echo bsd'_'daemon | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+ echo "$as_me:$LINENO: checking for daemon in -lbsd" >&5
-+echo $ECHO_N "checking for daemon in -lbsd... $ECHO_C" >&6
-+if test "${ac_cv_lib_bsd_daemon+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
-+ ac_check_lib_save_LIBS=$LIBS
- LIBS="-lbsd $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1698 "configure"
--#include "confdefs.h"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char daemon();
--
--int main() {
--daemon()
--; return 0; }
--EOF
--if { (eval echo configure:1709: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-+ builtin and then its argument prototype would still apply. */
-+char daemon ();
-+int
-+main ()
-+{
-+daemon ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_bsd_daemon=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_bsd_daemon=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_bsd_daemon" >&5
-+echo "${ECHO_T}$ac_cv_lib_bsd_daemon" >&6
-+if test $ac_cv_lib_bsd_daemon = yes; then
- LIBBSD="-lbsd"
--else
-- echo "$ac_t""no" 1>&6
- fi
-
- fi
-@@ -1731,37 +3979,66 @@ fi
-
-
-
--echo $ac_n "checking for the tcp wrapper library""... $ac_c" 1>&6
--echo "configure:1736: checking for the tcp wrapper library" >&5
-- if eval "test \"`echo '$''{'knfsd_cv_tcp_wrapper'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+echo "$as_me:$LINENO: checking for the tcp wrapper library" >&5
-+echo $ECHO_N "checking for the tcp wrapper library... $ECHO_C" >&6
-+ if test "${knfsd_cv_tcp_wrapper+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
- old_LIBS="$LIBS"
- LIBS="$LIBS -lwrap $LIBNSL"
-- cat > conftest.$ac_ext <<EOF
--#line 1743 "configure"
--#include "confdefs.h"
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-
- int deny_severity = 0;
- int allow_severity = 0;
--int main() {
-+int
-+main ()
-+{
- return hosts_ctl ("nfsd", "", "")
--; return 0; }
--EOF
--if { (eval echo configure:1752: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
- knfsd_cv_tcp_wrapper=yes
- else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- knfsd_cv_tcp_wrapper=no
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+knfsd_cv_tcp_wrapper=no
- fi
--rm -f conftest*
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
- LIBS="$old_LIBS"
- fi
-
-- echo "$ac_t""$knfsd_cv_tcp_wrapper" 1>&6
-+ echo "$as_me:$LINENO: result: $knfsd_cv_tcp_wrapper" >&5
-+echo "${ECHO_T}$knfsd_cv_tcp_wrapper" >&6
- if test "$knfsd_cv_tcp_wrapper" = yes; then
- CFLAGS="$CFLAGS -DHAVE_TCP_WRAPPER"
- CXXFLAGS="$CXXFLAGS -DHAVE_TCP_WRAPPER"
-@@ -1771,51 +4048,165 @@ fi
-
-
- if test "$enable_gss" = yes; then
-- for ac_hdr in nfsidmap.h
-+
-+for ac_header in nfsidmap.h
- do
--ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
--echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
--echo "configure:1779: checking for $ac_hdr" >&5
--if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- cat > conftest.$ac_ext <<EOF
--#line 1784 "configure"
--#include "confdefs.h"
--#include <$ac_hdr>
--EOF
--ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
--{ (eval echo configure:1789: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
--ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
--if test -z "$ac_err"; then
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=yes"
--else
-- echo "$ac_err" >&5
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_header_$ac_safe=no"
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+else
-+ # Is the header compilable?
-+echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_header_compiler=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_header_compiler=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+# Is the header present?
-+echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
-+else
-+ ac_cpp_err=yes
- fi
--rm -f conftest*
-+if test -z "$ac_cpp_err"; then
-+ ac_header_preproc=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6
-+
-+# So? What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-+ yes:no: )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-+ ac_header_preproc=yes
-+ ;;
-+ no:yes:* )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-+ (
-+ cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists. ##
-+## ------------------------------------------ ##
-+_ASBOX
-+ ) |
-+ sed "s/^/$as_me: WARNING: /" >&2
-+ ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ eval "$as_ac_Header=\$ac_header_preproc"
- fi
--if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_hdr 1
--EOF
--
--else
-- echo "$ac_t""no" 1>&6
--{ echo "configure: error: libnfsidmap needed for gss support" 1>&2; exit 1; }
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+
-+fi
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-+
-+else
-+ { { echo "$as_me:$LINENO: error: libnfsidmap needed for gss support" >&5
-+echo "$as_me: error: libnfsidmap needed for gss support" >&2;}
-+ { (exit 1); exit 1; }; }
- fi
-+
- done
-
--
-- echo $ac_n "checking for Kerberos v5""... $ac_c" 1>&6
--echo "configure:1818: checking for Kerberos v5" >&5
-- # Check whether --with-krb5 or --without-krb5 was given.
-+
-+ echo "$as_me:$LINENO: checking for Kerberos v5" >&5
-+echo $ECHO_N "checking for Kerberos v5... $ECHO_C" >&6
-+
-+# Check whether --with-krb5 or --without-krb5 was given.
- if test "${with_krb5+set}" = set; then
- withval="$with_krb5"
- case "$withval" in
-@@ -1825,13 +4216,12 @@ if test "${with_krb5+set}" = set; then
- *)
- krb5_with="$withval"
- ;;
-- esac
--
--fi
-+ esac
-
-+fi;
-
-- for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \
-- /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do
-+ for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
-+ /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
- K5CONFIG=""
- if test -f $dir/bin/krb5-config; then
- K5CONFIG=$dir/bin/krb5-config
-@@ -1839,776 +4229,2232 @@ fi
- K5CONFIG="/usr/kerberos/bin/krb5-config"
- fi
- if test "$K5CONFIG" != ""; then
-+ KRBINC=`$K5CONFIG --cflags`
-+ KRBLIB=`$K5CONFIG --libs gssapi`
-+ K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($4,v,"."); if (v[3] == "") v[3] = "0"; print v[1]v[2]v[3] }'`
-+
-+cat >>confdefs.h <<_ACEOF
-+#define KRB5_VERSION $K5VERS
-+_ACEOF
-+
- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
- \( -f $dir/lib/libgssapi_krb5.a -o \
- -f $dir/lib/libgssapi_krb5.so \) ; then
-- cat >> confdefs.h <<\EOF
-+
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_KRB5 1
--EOF
-+_ACEOF
-
- KRBDIR="$dir"
-- K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[1]v[2]v[3] }'`
-- cat >> confdefs.h <<EOF
--#define KRB5_VERSION $K5VERS
--EOF
-+ if test $K5VERS -le 131; then
-
-- KRBLIB=`$K5CONFIG --libs gssapi`
-- if test $K5VERS -le 131; then
-- cat >> confdefs.h <<\EOF
--#define USE_PRIVATE_KRB5_FUNCTIONS 1
--EOF
-+cat >>confdefs.h <<\_ACEOF
-+#define USE_GSS_KRB5_CCACHE_NAME 1
-+_ACEOF
-
- fi
-- echo $ac_n "checking for gss_krb5_export_lucid_sec_context in -lgssapi_krb5""... $ac_c" 1>&6
--echo "configure:1864: checking for gss_krb5_export_lucid_sec_context in -lgssapi_krb5" >&5
--ac_lib_var=`echo gssapi_krb5'_'gss_krb5_export_lucid_sec_context | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1872 "configure"
--#include "confdefs.h"
-+ gssapi_lib=gssapi_krb5
-+ break
-+ elif test \( -f $dir/include/heim_err.h -o\
-+ -f $dir/include/heimdal/heim_err.h \) -a \
-+ -f $dir/lib/libroken.a; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_HEIMDAL 1
-+_ACEOF
-+
-+ KRBDIR="$dir"
-+ gssapi_lib=gssapi
-+ break
-+ fi
-+ fi
-+ done
-+ if test "x$KRBDIR" = "x"; then
-+ if test "x$krb5_with" = "x"; then
-+ { { echo "$as_me:$LINENO: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" >&5
-+echo "$as_me: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" >&2;}
-+ { (exit 1); exit 1; }; }
-+ else
-+ { { echo "$as_me:$LINENO: error: Kerberos v5 with GSS support not found at $krb5_with" >&5
-+echo "$as_me: error: Kerberos v5 with GSS support not found at $krb5_with" >&2;}
-+ { (exit 1); exit 1; }; }
-+ fi
-+ fi
-+ CFLAGS="$CFLAGS `$K5CONFIG --cflags`"
-+ echo "$as_me:$LINENO: result: $KRBDIR" >&5
-+echo "${ECHO_T}$KRBDIR" >&6
-+
-+ as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_export_lucid_sec_context" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for gss_krb5_export_lucid_sec_context in -l$gssapi_lib" >&5
-+echo $ECHO_N "checking for gss_krb5_export_lucid_sec_context in -l$gssapi_lib... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$gssapi_lib $KRBLIB $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_export_lucid_sec_context();
-+ builtin and then its argument prototype would still apply. */
-+char gss_krb5_export_lucid_sec_context ();
-+int
-+main ()
-+{
-+gss_krb5_export_lucid_sec_context ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_Lib=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_Lib=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-
--int main() {
--gss_krb5_export_lucid_sec_context()
--; return 0; }
--EOF
--if { (eval echo configure:1883: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_LUCID_CONTEXT_SUPPORT 1
--EOF
-+_ACEOF
-
--else
-- echo "$ac_t""no" 1>&6
- fi
-
-- echo $ac_n "checking for gss_krb5_set_allowable_enctypes in -lgssapi_krb5""... $ac_c" 1>&6
--echo "configure:1907: checking for gss_krb5_set_allowable_enctypes in -lgssapi_krb5" >&5
--ac_lib_var=`echo gssapi_krb5'_'gss_krb5_set_allowable_enctypes | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1915 "configure"
--#include "confdefs.h"
-+ as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_set_allowable_enctypes" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for gss_krb5_set_allowable_enctypes in -l$gssapi_lib" >&5
-+echo $ECHO_N "checking for gss_krb5_set_allowable_enctypes in -l$gssapi_lib... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$gssapi_lib $KRBLIB $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_set_allowable_enctypes();
-+ builtin and then its argument prototype would still apply. */
-+char gss_krb5_set_allowable_enctypes ();
-+int
-+main ()
-+{
-+gss_krb5_set_allowable_enctypes ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_Lib=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_Lib=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-
--int main() {
--gss_krb5_set_allowable_enctypes()
--; return 0; }
--EOF
--if { (eval echo configure:1926: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_SET_ALLOWABLE_ENCTYPES 1
--EOF
-+_ACEOF
-
--else
-- echo "$ac_t""no" 1>&6
- fi
-
-- echo $ac_n "checking for gss_krb5_ccache_name in -lgssapi_krb5""... $ac_c" 1>&6
--echo "configure:1950: checking for gss_krb5_ccache_name in -lgssapi_krb5" >&5
--ac_lib_var=`echo gssapi_krb5'_'gss_krb5_ccache_name | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi_krb5 $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 1958 "configure"
--#include "confdefs.h"
-+ as_ac_Lib=`echo "ac_cv_lib_$gssapi_lib''_gss_krb5_ccache_name" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for gss_krb5_ccache_name in -l$gssapi_lib" >&5
-+echo $ECHO_N "checking for gss_krb5_ccache_name in -l$gssapi_lib... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Lib+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-l$gssapi_lib $KRBLIB $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_ccache_name();
-+ builtin and then its argument prototype would still apply. */
-+char gss_krb5_ccache_name ();
-+int
-+main ()
-+{
-+gss_krb5_ccache_name ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_Lib=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_Lib=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Lib'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Lib'}'`" >&6
-+if test `eval echo '${'$as_ac_Lib'}'` = yes; then
-
--int main() {
--gss_krb5_ccache_name()
--; return 0; }
--EOF
--if { (eval echo configure:1969: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
--fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
--
--fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
-+cat >>confdefs.h <<\_ACEOF
- #define HAVE_GSS_KRB5_CCACHE_NAME 1
--EOF
-+_ACEOF
-
--else
-- echo "$ac_t""no" 1>&6
- fi
-
-- break
-- elif test \( -f $dir/include/heim_err.h -o\
-- -f $dir/include/heimdal/heim_err.h \) -a \
-- -f $dir/lib/libroken.a; then
-- cat >> confdefs.h <<\EOF
--#define HAVE_HEIMDAL 1
--EOF
-
-- KRBDIR="$dir"
-- K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[1]v[2]v[3] }'`
-- cat >> confdefs.h <<EOF
--#define KRB5_VERSION $K5VERS
--EOF
-+ if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
-+ { echo "$as_me:$LINENO: WARNING: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" >&5
-+echo "$as_me: WARNING: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" >&2;}
-+ fi
-+
-+ echo "$as_me:$LINENO: checking for authgss_create_default in -lrpcsecgss" >&5
-+echo $ECHO_N "checking for authgss_create_default in -lrpcsecgss... $ECHO_C" >&6
-+if test "${ac_cv_lib_rpcsecgss_authgss_create_default+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lrpcsecgss $KRBLIB $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-
-- KRBLIB=`$K5CONFIG --libs gssapi`
-- echo $ac_n "checking for gss_krb5_export_lucid_sec_context in -lgssapi""... $ac_c" 1>&6
--echo "configure:2008: checking for gss_krb5_export_lucid_sec_context in -lgssapi" >&5
--ac_lib_var=`echo gssapi'_'gss_krb5_export_lucid_sec_context | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 2016 "configure"
--#include "confdefs.h"
- /* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
- /* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_export_lucid_sec_context();
-+ builtin and then its argument prototype would still apply. */
-+char authgss_create_default ();
-+int
-+main ()
-+{
-+authgss_create_default ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_rpcsecgss_authgss_create_default=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_rpcsecgss_authgss_create_default=no
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_rpcsecgss_authgss_create_default" >&5
-+echo "${ECHO_T}$ac_cv_lib_rpcsecgss_authgss_create_default" >&6
-+if test $ac_cv_lib_rpcsecgss_authgss_create_default = yes; then
-+ librpcsecgss=1
-+else
-+ { { echo "$as_me:$LINENO: error: librpcsecgss needed for nfsv4 support" >&5
-+echo "$as_me: error: librpcsecgss needed for nfsv4 support" >&2;}
-+ { (exit 1); exit 1; }; }
-+fi
-+
-+ echo "$as_me:$LINENO: checking for authgss_set_debug_level in -lrpcsecgss" >&5
-+echo $ECHO_N "checking for authgss_set_debug_level in -lrpcsecgss... $ECHO_C" >&6
-+if test "${ac_cv_lib_rpcsecgss_authgss_set_debug_level+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ ac_check_lib_save_LIBS=$LIBS
-+LIBS="-lrpcsecgss $KRBLIB $LIBS"
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-
--int main() {
--gss_krb5_export_lucid_sec_context()
--; return 0; }
--EOF
--if { (eval echo configure:2027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char authgss_set_debug_level ();
-+int
-+main ()
-+{
-+authgss_set_debug_level ();
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_lib_rpcsecgss_authgss_set_debug_level=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_cv_lib_rpcsecgss_authgss_set_debug_level=no
- fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+LIBS=$ac_check_lib_save_LIBS
-+fi
-+echo "$as_me:$LINENO: result: $ac_cv_lib_rpcsecgss_authgss_set_debug_level" >&5
-+echo "${ECHO_T}$ac_cv_lib_rpcsecgss_authgss_set_debug_level" >&6
-+if test $ac_cv_lib_rpcsecgss_authgss_set_debug_level = yes; then
-+
-+cat >>confdefs.h <<\_ACEOF
-+#define HAVE_AUTHGSS_SET_DEBUG_LEVEL 1
-+_ACEOF
-
- fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
--#define HAVE_LUCID_CONTEXT_SUPPORT 1
--EOF
-
-+
-+
-+
-+
-+
-+fi
-+
-+
-+for ac_header in com_err.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+else
-+ # Is the header compilable?
-+echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_header_compiler=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_header_compiler=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+# Is the header present?
-+echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
- else
-- echo "$ac_t""no" 1>&6
-+ ac_cpp_err=yes
- fi
-+if test -z "$ac_cpp_err"; then
-+ ac_header_preproc=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
-- echo $ac_n "checking for gss_krb5_set_allowable_enctypes in -lgssapi""... $ac_c" 1>&6
--echo "configure:2051: checking for gss_krb5_set_allowable_enctypes in -lgssapi" >&5
--ac_lib_var=`echo gssapi'_'gss_krb5_set_allowable_enctypes | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+ ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6
-+
-+# So? What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-+ yes:no: )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-+ ac_header_preproc=yes
-+ ;;
-+ no:yes:* )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-+ (
-+ cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists. ##
-+## ------------------------------------------ ##
-+_ASBOX
-+ ) |
-+ sed "s/^/$as_me: WARNING: /" >&2
-+ ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
- else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 2059 "configure"
--#include "confdefs.h"
--/* Override any gcc2 internal prototype to avoid an error. */
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_set_allowable_enctypes();
-+ eval "$as_ac_Header=\$ac_header_preproc"
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
--int main() {
--gss_krb5_set_allowable_enctypes()
--; return 0; }
--EOF
--if { (eval echo configure:2070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
- fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-
- fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
--#define HAVE_SET_ALLOWABLE_ENCTYPES 1
--EOF
-
-+done
-+
-+
-+for ac_header in et/com_err.h
-+do
-+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-+else
-+ # Is the header compilable?
-+echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+$ac_includes_default
-+#include <$ac_header>
-+_ACEOF
-+rm -f conftest.$ac_objext
-+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-+ (eval $ac_compile) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest.$ac_objext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_header_compiler=yes
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+ac_header_compiler=no
-+fi
-+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+echo "${ECHO_T}$ac_header_compiler" >&6
-+
-+# Is the header present?
-+echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6
-+cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <$ac_header>
-+_ACEOF
-+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-+ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } >/dev/null; then
-+ if test -s conftest.err; then
-+ ac_cpp_err=$ac_c_preproc_warn_flag
-+ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-+ else
-+ ac_cpp_err=
-+ fi
- else
-- echo "$ac_t""no" 1>&6
-+ ac_cpp_err=yes
- fi
--
-- echo $ac_n "checking for gss_krb5_ccache_name in -lgssapi""... $ac_c" 1>&6
--echo "configure:2094: checking for gss_krb5_ccache_name in -lgssapi" >&5
--ac_lib_var=`echo gssapi'_'gss_krb5_ccache_name | sed 'y%./+-%__p_%'`
--if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
-+if test -z "$ac_cpp_err"; then
-+ ac_header_preproc=yes
- else
-- ac_save_LIBS="$LIBS"
--LIBS="-lgssapi $KRBLIB $LIBS"
--cat > conftest.$ac_ext <<EOF
--#line 2102 "configure"
--#include "confdefs.h"
--/* Override any gcc2 internal prototype to avoid an error. */
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char gss_krb5_ccache_name();
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-
--int main() {
--gss_krb5_ccache_name()
--; return 0; }
--EOF
--if { (eval echo configure:2113: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_lib_$ac_lib_var=no"
-+ ac_header_preproc=no
-+fi
-+rm -f conftest.err conftest.$ac_ext
-+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-+echo "${ECHO_T}$ac_header_preproc" >&6
-+
-+# So? What about this header?
-+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-+ yes:no: )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-+ ac_header_preproc=yes
-+ ;;
-+ no:yes:* )
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5
-+echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5
-+echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-+ (
-+ cat <<\_ASBOX
-+## ------------------------------------------ ##
-+## Report this to the AC_PACKAGE_NAME lists. ##
-+## ------------------------------------------ ##
-+_ASBOX
-+ ) |
-+ sed "s/^/$as_me: WARNING: /" >&2
-+ ;;
-+esac
-+echo "$as_me:$LINENO: checking for $ac_header" >&5
-+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_Header+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ eval "$as_ac_Header=\$ac_header_preproc"
- fi
--rm -f conftest*
--LIBS="$ac_save_LIBS"
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6
-
- fi
--if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- cat >> confdefs.h <<\EOF
--#define HAVE_GSS_KRB5_CCACHE_NAME 1
--EOF
-+if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+_ACEOF
-
--else
-- echo "$ac_t""no" 1>&6
- fi
-
-- break
-- fi
-- CFLAGS=$CFLAGS `K5CONFIG --cflags`
-- fi
-- done
-- if test "x$KRBDIR" = "x"; then
-- echo "$ac_t"""no"" 1>&6
-- if test "x$krb5_with" = "x"; then
-- { echo "configure: error: Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=" 1>&2; exit 1; }
-- else
-- { echo "configure: error: Kerberos v5 with GSS support not found at $krb5_with" 1>&2; exit 1; }
-- fi
-- fi
-- echo "$ac_t""$KRBDIR" 1>&6
-- if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
-- echo "configure: warning: Using $KRBDIR instead of requested value of $krb5_with for Kerberos!" 1>&2
-- fi
-+done
-
--
--
--
--fi
-
-
- for ac_func in innetgr
- do
--echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
--echo "configure:2163: checking for $ac_func" >&5
--if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
-- echo $ac_n "(cached) $ac_c" 1>&6
--else
-- cat > conftest.$ac_ext <<EOF
--#line 2168 "configure"
--#include "confdefs.h"
-+as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+echo "$as_me:$LINENO: checking for $ac_func" >&5
-+echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6
-+if eval "test \"\${$as_ac_var+set}\" = set"; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
-+#define $ac_func innocuous_$ac_func
-+
- /* System header to define __stub macros and hopefully few prototypes,
-- which can conflict with char $ac_func(); below. */
--#include <assert.h>
--/* Override any gcc2 internal prototype to avoid an error. */
--/* We use char because int might match the return type of a gcc2
-- builtin and then its argument prototype would still apply. */
--char $ac_func();
-+ which can conflict with char $ac_func (); below.
-+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-+ <limits.h> exists even on freestanding compilers. */
-
--int main() {
-+#ifdef __STDC__
-+# include <limits.h>
-+#else
-+# include <assert.h>
-+#endif
-
-+#undef $ac_func
-+
-+/* Override any gcc2 internal prototype to avoid an error. */
-+#ifdef __cplusplus
-+extern "C"
-+{
-+#endif
-+/* We use char because int might match the return type of a gcc2
-+ builtin and then its argument prototype would still apply. */
-+char $ac_func ();
- /* The GNU C library defines this for functions which it implements
- to always fail with ENOSYS. Some functions are actually named
- something starting with __ and the normal name is an alias. */
- #if defined (__stub_$ac_func) || defined (__stub___$ac_func)
- choke me
- #else
--$ac_func();
-+char (*f) () = $ac_func;
-+#endif
-+#ifdef __cplusplus
-+}
- #endif
-
--; return 0; }
--EOF
--if { (eval echo configure:2191: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
-- rm -rf conftest*
-- eval "ac_cv_func_$ac_func=yes"
--else
-- echo "configure: failed program was:" >&5
-- cat conftest.$ac_ext >&5
-- rm -rf conftest*
-- eval "ac_cv_func_$ac_func=no"
--fi
--rm -f conftest*
--fi
-+int
-+main ()
-+{
-+return f != $ac_func;
-+ ;
-+ return 0;
-+}
-+_ACEOF
-+rm -f conftest.$ac_objext conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>conftest.er1
-+ ac_status=$?
-+ grep -v '^ *+' conftest.er1 >conftest.err
-+ rm -f conftest.er1
-+ cat conftest.err >&5
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } &&
-+ { ac_try='test -z "$ac_c_werror_flag"
-+ || test ! -s conftest.err'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; } &&
-+ { ac_try='test -s conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ eval "$as_ac_var=yes"
-+else
-+ echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+eval "$as_ac_var=no"
-+fi
-+rm -f conftest.err conftest.$ac_objext \
-+ conftest$ac_exeext conftest.$ac_ext
-+fi
-+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5
-+echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6
-+if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ cat >>confdefs.h <<_ACEOF
-+#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+_ACEOF
-
--if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
-- echo "$ac_t""yes" 1>&6
-- ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
-- cat >> confdefs.h <<EOF
--#define $ac_tr_func 1
--EOF
--
--else
-- echo "$ac_t""no" 1>&6
- fi
- done
-
-
--cat >> confdefs.h <<EOF
-+ echo "$as_me:$LINENO: checking size of short" >&5
-+echo $ECHO_N "checking size of short... $ECHO_C" >&6
-+ if test "${ac_cv_sizeof_short+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test "$cross_compiling" = yes; then
-+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <stdio.h>
-+ #include <sys/types.h>
-+ main()
-+ {
-+ FILE *f=fopen("conftestval", "w");
-+ if (!f) exit(1);
-+ fprintf(f, "%d\n", sizeof(short));
-+ exit(0);
-+ }
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_sizeof_short=`cat conftestval`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+( exit $ac_status )
-+ac_cv_sizeof_short=0
-+fi
-+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+fi
-+
-+ echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5
-+echo "${ECHO_T}$ac_cv_sizeof_short" >&6
-+ cat >>confdefs.h <<_ACEOF
-+#define SIZEOF_SHORT $ac_cv_sizeof_short
-+_ACEOF
-+
-+
-+ echo "$as_me:$LINENO: checking size of int" >&5
-+echo $ECHO_N "checking size of int... $ECHO_C" >&6
-+ if test "${ac_cv_sizeof_int+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test "$cross_compiling" = yes; then
-+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <stdio.h>
-+ #include <sys/types.h>
-+ main()
-+ {
-+ FILE *f=fopen("conftestval", "w");
-+ if (!f) exit(1);
-+ fprintf(f, "%d\n", sizeof(int));
-+ exit(0);
-+ }
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_sizeof_int=`cat conftestval`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+( exit $ac_status )
-+ac_cv_sizeof_int=0
-+fi
-+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+fi
-+
-+ echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5
-+echo "${ECHO_T}$ac_cv_sizeof_int" >&6
-+ cat >>confdefs.h <<_ACEOF
-+#define SIZEOF_INT $ac_cv_sizeof_int
-+_ACEOF
-+
-+
-+ echo "$as_me:$LINENO: checking size of long" >&5
-+echo $ECHO_N "checking size of long... $ECHO_C" >&6
-+ if test "${ac_cv_sizeof_long+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test "$cross_compiling" = yes; then
-+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <stdio.h>
-+ #include <sys/types.h>
-+ main()
-+ {
-+ FILE *f=fopen("conftestval", "w");
-+ if (!f) exit(1);
-+ fprintf(f, "%d\n", sizeof(long));
-+ exit(0);
-+ }
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_sizeof_long=`cat conftestval`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+( exit $ac_status )
-+ac_cv_sizeof_long=0
-+fi
-+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+fi
-+
-+ echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5
-+echo "${ECHO_T}$ac_cv_sizeof_long" >&6
-+ cat >>confdefs.h <<_ACEOF
-+#define SIZEOF_LONG $ac_cv_sizeof_long
-+_ACEOF
-+
-+
-+ echo "$as_me:$LINENO: checking size of size_t" >&5
-+echo $ECHO_N "checking size of size_t... $ECHO_C" >&6
-+ if test "${ac_cv_sizeof_size_t+set}" = set; then
-+ echo $ECHO_N "(cached) $ECHO_C" >&6
-+else
-+ if test "$cross_compiling" = yes; then
-+ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&5
-+echo "$as_me: error: cannot run test program while cross compiling
-+See \`config.log' for more details." >&2;}
-+ { (exit 1); exit 1; }; }
-+else
-+ cat >conftest.$ac_ext <<_ACEOF
-+/* confdefs.h. */
-+_ACEOF
-+cat confdefs.h >>conftest.$ac_ext
-+cat >>conftest.$ac_ext <<_ACEOF
-+/* end confdefs.h. */
-+#include <stdio.h>
-+ #include <sys/types.h>
-+ main()
-+ {
-+ FILE *f=fopen("conftestval", "w");
-+ if (!f) exit(1);
-+ fprintf(f, "%d\n", sizeof(size_t));
-+ exit(0);
-+ }
-+_ACEOF
-+rm -f conftest$ac_exeext
-+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
-+ (eval $ac_link) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-+ (eval $ac_try) 2>&5
-+ ac_status=$?
-+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+ (exit $ac_status); }; }; then
-+ ac_cv_sizeof_size_t=`cat conftestval`
-+else
-+ echo "$as_me: program exited with status $ac_status" >&5
-+echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+( exit $ac_status )
-+ac_cv_sizeof_size_t=0
-+fi
-+rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-+fi
-+fi
-+
-+ echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5
-+echo "${ECHO_T}$ac_cv_sizeof_size_t" >&6
-+ cat >>confdefs.h <<_ACEOF
-+#define SIZEOF_SIZE_T $ac_cv_sizeof_size_t
-+_ACEOF
-+
-+
-+
-+
-+cat >>confdefs.h <<_ACEOF
- #define NFS_STATEDIR "$statedir"
--EOF
-+_ACEOF
-
-
-
-
-
--trap '' 1 2 15
--cat > confcache <<\EOF
-+ ac_config_files="$ac_config_files config.mk utils/Makefile"
-+cat >confcache <<\_ACEOF
- # This file is a shell script that caches the results of configure
- # tests run on this system so they can be shared between configure
--# scripts and configure runs. It is not useful on other systems.
--# If it contains results you don't want to keep, you may remove or edit it.
-+# scripts and configure runs, see configure's option --config-cache.
-+# It is not useful on other systems. If it contains results you don't
-+# want to keep, you may remove or edit it.
- #
--# By default, configure uses ./config.cache as the cache file,
--# creating it if it does not exist already. You can give configure
--# the --cache-file=FILE option to use a different cache file; that is
--# what configure does when it calls configure scripts in
--# subdirectories, so they share the cache.
--# Giving --cache-file=/dev/null disables caching, for debugging configure.
--# config.status only pays attention to the cache file if you give it the
--# --recheck option to rerun configure.
-+# config.status only pays attention to the cache file if you give it
-+# the --recheck option to rerun configure.
- #
--EOF
-+# `ac_cv_env_foo' variables (set or unset) will be overridden when
-+# loading this file, other *unset* `ac_cv_foo' will be assigned the
-+# following values.
-+
-+_ACEOF
-+
- # The following way of writing the cache mishandles newlines in values,
- # but we know of no workaround that is simple, portable, and efficient.
- # So, don't put newlines in cache variables' values.
- # Ultrix sh set writes to stderr and can't be redirected directly,
- # and sets the high bit in the cache file unless we assign to the vars.
--(set) 2>&1 |
-- case `(ac_space=' '; set | grep ac_space) 2>&1` in
-- *ac_space=\ *)
-- # `set' does not quote correctly, so add quotes (double-quote substitution
-- # turns \\\\ into \\, and sed turns \\ into \).
-- sed -n \
-- -e "s/'/'\\\\''/g" \
-- -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
-- ;;
-- *)
-- # `set' quotes correctly as required by POSIX, so do not add quotes.
-- sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
-- ;;
-- esac >> confcache
--if cmp -s $cache_file confcache; then
-- :
--else
-+{
-+ (set) 2>&1 |
-+ case `(ac_space=' '; set | grep ac_space) 2>&1` in
-+ *ac_space=\ *)
-+ # `set' does not quote correctly, so add quotes (double-quote
-+ # substitution turns \\\\ into \\, and sed turns \\ into \).
-+ sed -n \
-+ "s/'/'\\\\''/g;
-+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-+ ;;
-+ *)
-+ # `set' quotes correctly as required by POSIX, so do not add quotes.
-+ sed -n \
-+ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p"
-+ ;;
-+ esac;
-+} |
-+ sed '
-+ t clear
-+ : clear
-+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-+ t end
-+ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-+ : end' >>confcache
-+if diff $cache_file confcache >/dev/null 2>&1; then :; else
- if test -w $cache_file; then
-- echo "updating cache $cache_file"
-- cat confcache > $cache_file
-+ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file"
-+ cat confcache >$cache_file
- else
- echo "not updating unwritable cache $cache_file"
- fi
- fi
- rm -f confcache
-
--trap 'rm -fr conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
--
- test "x$prefix" = xNONE && prefix=$ac_default_prefix
- # Let make expand exec_prefix.
- test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
--# Any assignment to VPATH causes Sun make to only execute
--# the first set of double-colon rules, so remove it if not needed.
--# If there is a colon in the path, we need to keep it.
-+# VPATH may cause trouble with some makes, so we remove $(srcdir),
-+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
-+# trailing colons and then remove the whole line if VPATH becomes empty
-+# (actually we leave an empty line to preserve line numbers).
- if test "x$srcdir" = x.; then
-- ac_vpsub='/^[ ]*VPATH[ ]*=[^:]*$/d'
-+ ac_vpsub='/^[ ]*VPATH[ ]*=/{
-+s/:*\$(srcdir):*/:/;
-+s/:*\${srcdir}:*/:/;
-+s/:*@srcdir@:*/:/;
-+s/^\([^=]*=[ ]*\):*/\1/;
-+s/:*$//;
-+s/^[^=]*=[ ]*$//;
-+}'
- fi
-
--trap 'rm -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
--
- DEFS=-DHAVE_CONFIG_H
-
--# Without the "./", some shells look in PATH for config.status.
--: ${CONFIG_STATUS=./config.status}
-+ac_libobjs=
-+ac_ltlibobjs=
-+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-+ # 1. Remove the extension, and $U if already installed.
-+ ac_i=`echo "$ac_i" |
-+ sed 's/\$U\././;s/\.o$//;s/\.obj$//'`
-+ # 2. Add them.
-+ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext"
-+ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo'
-+done
-+LIBOBJS=$ac_libobjs
-
--echo creating $CONFIG_STATUS
--rm -f $CONFIG_STATUS
--cat > $CONFIG_STATUS <<EOF
--#! /bin/sh
--# Generated automatically by configure.
-+LTLIBOBJS=$ac_ltlibobjs
-+
-+
-+
-+: ${CONFIG_STATUS=./config.status}
-+ac_clean_files_save=$ac_clean_files
-+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-+{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-+echo "$as_me: creating $CONFIG_STATUS" >&6;}
-+cat >$CONFIG_STATUS <<_ACEOF
-+#! $SHELL
-+# Generated by $as_me.
- # Run this file to recreate the current configuration.
--# This directory was configured as follows,
--# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
--#
--# $0 $ac_configure_args
--#
- # Compiler output produced by configure, useful for debugging
--# configure, is in ./config.log if it exists.
-+# configure, is in config.log if it exists.
-
--ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
--for ac_option
-+debug=false
-+ac_cs_recheck=false
-+ac_cs_silent=false
-+SHELL=\${CONFIG_SHELL-$SHELL}
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+## --------------------- ##
-+## M4sh Initialization. ##
-+## --------------------- ##
-+
-+# Be 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+"$@"}'='"$@"'
-+elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then
-+ set -o posix
-+fi
-+DUALCASE=1; export DUALCASE # for MKS sh
-+
-+# Support unset when possible.
-+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-+ as_unset=unset
-+else
-+ as_unset=false
-+fi
-+
-+
-+# Work around bugs in pre-3.0 UWIN ksh.
-+$as_unset ENV MAIL MAILPATH
-+PS1='$ '
-+PS2='> '
-+PS4='+ '
-+
-+# NLS nuisances.
-+for as_var in \
-+ LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-+ LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-+ LC_TELEPHONE LC_TIME
-+do
-+ if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-+ eval $as_var=C; export $as_var
-+ else
-+ $as_unset $as_var
-+ fi
-+done
-+
-+# Required to use basename.
-+if expr a : '\(a\)' >/dev/null 2>&1; then
-+ as_expr=expr
-+else
-+ as_expr=false
-+fi
-+
-+if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then
-+ as_basename=basename
-+else
-+ as_basename=false
-+fi
-+
-+
-+# Name of the executable.
-+as_me=`$as_basename "$0" ||
-+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-+ X"$0" : 'X\(//\)$' \| \
-+ X"$0" : 'X\(/\)$' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X/"$0" |
-+ sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
-+ /^X\/\(\/\/\)$/{ s//\1/; q; }
-+ /^X\/\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+
-+
-+# PATH needs CR, and LINENO needs CR and PATH.
-+# Avoid depending upon Character Ranges.
-+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-+as_cr_digits='0123456789'
-+as_cr_alnum=$as_cr_Letters$as_cr_digits
-+
-+# The user is always right.
-+if test "${PATH_SEPARATOR+set}" != set; then
-+ echo "#! /bin/sh" >conf$$.sh
-+ echo "exit 0" >>conf$$.sh
-+ chmod +x conf$$.sh
-+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-+ PATH_SEPARATOR=';'
-+ else
-+ PATH_SEPARATOR=:
-+ fi
-+ rm -f conf$$.sh
-+fi
-+
-+
-+ as_lineno_1=$LINENO
-+ as_lineno_2=$LINENO
-+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-+ test "x$as_lineno_1" != "x$as_lineno_2" &&
-+ test "x$as_lineno_3" = "x$as_lineno_2" || {
-+ # Find who we are. Look in the path if we contain no path at all
-+ # relative or not.
-+ case $0 in
-+ *[\\/]* ) as_myself=$0 ;;
-+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in $PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-+done
-+
-+ ;;
-+ esac
-+ # We did not find ourselves, most probably we were run as `sh COMMAND'
-+ # in which case we are not to be found in the path.
-+ if test "x$as_myself" = x; then
-+ as_myself=$0
-+ fi
-+ if test ! -f "$as_myself"; then
-+ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5
-+echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;}
-+ { (exit 1); exit 1; }; }
-+ fi
-+ case $CONFIG_SHELL in
-+ '')
-+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-+do
-+ IFS=$as_save_IFS
-+ test -z "$as_dir" && as_dir=.
-+ for as_base in sh bash ksh sh5; do
-+ case $as_dir in
-+ /*)
-+ if ("$as_dir/$as_base" -c '
-+ as_lineno_1=$LINENO
-+ as_lineno_2=$LINENO
-+ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null`
-+ test "x$as_lineno_1" != "x$as_lineno_2" &&
-+ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then
-+ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; }
-+ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; }
-+ CONFIG_SHELL=$as_dir/$as_base
-+ export CONFIG_SHELL
-+ exec "$CONFIG_SHELL" "$0" ${1+"$@"}
-+ fi;;
-+ esac
-+ done
-+done
-+;;
-+ esac
-+
-+ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-+ # uniformly replaced by the line number. The first 'sed' inserts a
-+ # line-number line before each line; the second 'sed' does the real
-+ # work. The second script uses 'N' to pair each line-number line
-+ # with the numbered line, and appends trailing '-' during
-+ # substitution so that $LINENO is not a special case at line end.
-+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-+ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-)
-+ sed '=' <$as_myself |
-+ sed '
-+ N
-+ s,$,-,
-+ : loop
-+ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3,
-+ t loop
-+ s,-$,,
-+ s,^['$as_cr_digits']*\n,,
-+ ' >$as_me.lineno &&
-+ chmod +x $as_me.lineno ||
-+ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5
-+echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;}
-+ { (exit 1); exit 1; }; }
-+
-+ # Don't try to exec as it changes $[0], causing all sort of problems
-+ # (the dirname of $[0] is not the place where we might find the
-+ # original and so on. Autoconf is especially sensible to this).
-+ . ./$as_me.lineno
-+ # Exit status is that of the last command.
-+ exit
-+}
-+
-+
-+case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in
-+ *c*,-n*) ECHO_N= ECHO_C='
-+' ECHO_T=' ' ;;
-+ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;;
-+ *) ECHO_N= ECHO_C='\c' ECHO_T= ;;
-+esac
-+
-+if expr a : '\(a\)' >/dev/null 2>&1; then
-+ as_expr=expr
-+else
-+ as_expr=false
-+fi
-+
-+rm -f conf$$ conf$$.exe conf$$.file
-+echo >conf$$.file
-+if ln -s conf$$.file conf$$ 2>/dev/null; then
-+ # We could just check for DJGPP; but this test a) works b) is more generic
-+ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04).
-+ if test -f conf$$.exe; then
-+ # Don't use ln at all; we don't have any links
-+ as_ln_s='cp -p'
-+ else
-+ as_ln_s='ln -s'
-+ fi
-+elif ln conf$$.file conf$$ 2>/dev/null; then
-+ as_ln_s=ln
-+else
-+ as_ln_s='cp -p'
-+fi
-+rm -f conf$$ conf$$.exe conf$$.file
-+
-+if mkdir -p . 2>/dev/null; then
-+ as_mkdir_p=:
-+else
-+ test -d ./-p && rmdir ./-p
-+ as_mkdir_p=false
-+fi
-+
-+as_executable_p="test -f"
-+
-+# Sed expression to map a string onto a valid CPP name.
-+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-+
-+# Sed expression to map a string onto a valid variable name.
-+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-+
-+
-+# IFS
-+# We need space, tab and new line, in precisely that order.
-+as_nl='
-+'
-+IFS=" $as_nl"
-+
-+# CDPATH.
-+$as_unset CDPATH
-+
-+exec 6>&1
-+
-+# Open the log real soon, to keep \$[0] and so on meaningful, and to
-+# report actual input values of CONFIG_FILES etc. instead of their
-+# values after options handling. Logging --version etc. is OK.
-+exec 5>>config.log
-+{
-+ echo
-+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-+## Running $as_me. ##
-+_ASBOX
-+} >&5
-+cat >&5 <<_CSEOF
-+
-+This file was extended by $as_me, which was
-+generated by GNU Autoconf 2.59. Invocation command line was
-+
-+ CONFIG_FILES = $CONFIG_FILES
-+ CONFIG_HEADERS = $CONFIG_HEADERS
-+ CONFIG_LINKS = $CONFIG_LINKS
-+ CONFIG_COMMANDS = $CONFIG_COMMANDS
-+ $ $0 $@
-+
-+_CSEOF
-+echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5
-+echo >&5
-+_ACEOF
-+
-+# Files that config.status was made for.
-+if test -n "$ac_config_files"; then
-+ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS
-+fi
-+
-+if test -n "$ac_config_headers"; then
-+ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS
-+fi
-+
-+if test -n "$ac_config_links"; then
-+ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS
-+fi
-+
-+if test -n "$ac_config_commands"; then
-+ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS
-+fi
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+
-+ac_cs_usage="\
-+\`$as_me' instantiates files from templates according to the
-+current configuration.
-+
-+Usage: $0 [OPTIONS] [FILE]...
-+
-+ -h, --help print this help, then exit
-+ -V, --version print version number, then exit
-+ -q, --quiet do not print progress messages
-+ -d, --debug don't remove temporary files
-+ --recheck update $as_me by reconfiguring in the same conditions
-+ --file=FILE[:TEMPLATE]
-+ instantiate the configuration file FILE
-+ --header=FILE[:TEMPLATE]
-+ instantiate the configuration header FILE
-+
-+Configuration files:
-+$config_files
-+
-+Configuration headers:
-+$config_headers
-+
-+Report bugs to <bug-autoconf@gnu.org>."
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<_ACEOF
-+ac_cs_version="\\
-+config.status
-+configured by $0, generated by GNU Autoconf 2.59,
-+ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
-+
-+Copyright (C) 2003 Free Software Foundation, Inc.
-+This config.status script is free software; the Free Software Foundation
-+gives unlimited permission to copy, distribute and modify it."
-+srcdir=$srcdir
-+INSTALL="$INSTALL"
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+# If no file are specified by the user, then we need to provide default
-+# value. By we need to know if files were specified by the user.
-+ac_need_defaults=:
-+while test $# != 0
- do
-- case "\$ac_option" in
-+ case $1 in
-+ --*=*)
-+ ac_option=`expr "x$1" : 'x\([^=]*\)='`
-+ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'`
-+ ac_shift=:
-+ ;;
-+ -*)
-+ ac_option=$1
-+ ac_optarg=$2
-+ ac_shift=shift
-+ ;;
-+ *) # This is not an option, so the user has probably given explicit
-+ # arguments.
-+ ac_option=$1
-+ ac_need_defaults=false;;
-+ esac
-+
-+ case $ac_option in
-+ # Handling of the options.
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-- echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
-- exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
-- -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-- echo "$CONFIG_STATUS generated by autoconf version 2.13"
-- exit 0 ;;
-- -help | --help | --hel | --he | --h)
-- echo "\$ac_cs_usage"; exit 0 ;;
-- *) echo "\$ac_cs_usage"; exit 1 ;;
-+ ac_cs_recheck=: ;;
-+ --version | --vers* | -V )
-+ echo "$ac_cs_version"; exit 0 ;;
-+ --he | --h)
-+ # Conflict between --help and --header
-+ { { echo "$as_me:$LINENO: error: ambiguous option: $1
-+Try \`$0 --help' for more information." >&5
-+echo "$as_me: error: ambiguous option: $1
-+Try \`$0 --help' for more information." >&2;}
-+ { (exit 1); exit 1; }; };;
-+ --help | --hel | -h )
-+ echo "$ac_cs_usage"; exit 0 ;;
-+ --debug | --d* | -d )
-+ debug=: ;;
-+ --file | --fil | --fi | --f )
-+ $ac_shift
-+ CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-+ ac_need_defaults=false;;
-+ --header | --heade | --head | --hea )
-+ $ac_shift
-+ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-+ ac_need_defaults=false;;
-+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
-+ ac_cs_silent=: ;;
-+
-+ # This is an error.
-+ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1
-+Try \`$0 --help' for more information." >&5
-+echo "$as_me: error: unrecognized option: $1
-+Try \`$0 --help' for more information." >&2;}
-+ { (exit 1); exit 1; }; } ;;
-+
-+ *) ac_config_targets="$ac_config_targets $1" ;;
-+
- esac
-+ shift
- done
-
--ac_given_srcdir=$srcdir
--ac_given_INSTALL="$INSTALL"
-+ac_configure_extra_args=
-
--trap 'rm -fr `echo "config.mk utils/Makefile support/include/config.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
--EOF
--cat >> $CONFIG_STATUS <<EOF
--
--# Protect against being on the right side of a sed subst in config.status.
--sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
-- s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
--$ac_vpsub
--$extrasub
--s%@SHELL@%$SHELL%g
--s%@CFLAGS@%$CFLAGS%g
--s%@CPPFLAGS@%$CPPFLAGS%g
--s%@CXXFLAGS@%$CXXFLAGS%g
--s%@FFLAGS@%$FFLAGS%g
--s%@DEFS@%$DEFS%g
--s%@LDFLAGS@%$LDFLAGS%g
--s%@LIBS@%$LIBS%g
--s%@exec_prefix@%$exec_prefix%g
--s%@prefix@%$prefix%g
--s%@program_transform_name@%$program_transform_name%g
--s%@bindir@%$bindir%g
--s%@sbindir@%$sbindir%g
--s%@libexecdir@%$libexecdir%g
--s%@datadir@%$datadir%g
--s%@sysconfdir@%$sysconfdir%g
--s%@sharedstatedir@%$sharedstatedir%g
--s%@localstatedir@%$localstatedir%g
--s%@libdir@%$libdir%g
--s%@includedir@%$includedir%g
--s%@oldincludedir@%$oldincludedir%g
--s%@infodir@%$infodir%g
--s%@mandir@%$mandir%g
--s%@VERSION@%$VERSION%g
--s%@RELEASE@%$RELEASE%g
--s%@statedir@%$statedir%g
--s%@statduser@%$statduser%g
--s%@enable_nfsv3@%$enable_nfsv3%g
--s%@IDMAPD@%$IDMAPD%g
--s%@enable_nfsv4@%$enable_nfsv4%g
--s%@GSSD@%$GSSD%g
--s%@SVCGSSD@%$SVCGSSD%g
--s%@enable_gss@%$enable_gss%g
--s%@kprefix@%$kprefix%g
--s%@secure_statd@%$secure_statd%g
--s%@RQUOTAD@%$RQUOTAD%g
--s%@CC@%$CC%g
--s%@CPP@%$CPP%g
--s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
--s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
--s%@INSTALL_DATA@%$INSTALL_DATA%g
--s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
--s%@host@%$host%g
--s%@host_alias@%$host_alias%g
--s%@host_cpu@%$host_cpu%g
--s%@host_vendor@%$host_vendor%g
--s%@host_os@%$host_os%g
--s%@build@%$build%g
--s%@build_alias@%$build_alias%g
--s%@build_cpu@%$build_cpu%g
--s%@build_vendor@%$build_vendor%g
--s%@build_os@%$build_os%g
--s%@RANLIB@%$RANLIB%g
--s%@AR@%$AR%g
--s%@LD@%$LD%g
--s%@LIBSOCKET@%$LIBSOCKET%g
--s%@LIBNSL@%$LIBNSL%g
--s%@LIBCRYPT@%$LIBCRYPT%g
--s%@LIBBSD@%$LIBBSD%g
--s%@LIBWRAP@%$LIBWRAP%g
--s%@KRBDIR@%$KRBDIR%g
--s%@KRBLIB@%$KRBLIB%g
--s%@K5VERS@%$K5VERS%g
-+if $ac_cs_silent; then
-+ exec 6>/dev/null
-+ ac_configure_extra_args="$ac_configure_extra_args --silent"
-+fi
-+
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF
-+if \$ac_cs_recheck; then
-+ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-+ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-+fi
-+
-+_ACEOF
-+
-+
-+
-+
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+for ac_config_target in $ac_config_targets
-+do
-+ case "$ac_config_target" in
-+ # Handling of arguments.
-+ "config.mk" ) CONFIG_FILES="$CONFIG_FILES config.mk" ;;
-+ "utils/Makefile" ) CONFIG_FILES="$CONFIG_FILES utils/Makefile" ;;
-+ "support/include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS support/include/config.h" ;;
-+ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-+echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-+ { (exit 1); exit 1; }; };;
-+ esac
-+done
-+
-+# If the user did not use the arguments to specify the items to instantiate,
-+# then the envvar interface is used. Set only those that are not.
-+# We use the long form for the default assignment because of an extremely
-+# bizarre bug on SunOS 4.1.3.
-+if $ac_need_defaults; then
-+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-+fi
-+
-+# Have a temporary directory for convenience. Make it in the build tree
-+# simply because there is no reason to put it here, and in addition,
-+# creating and moving files from /tmp can sometimes cause problems.
-+# Create a temporary directory, and hook for its removal unless debugging.
-+$debug ||
-+{
-+ trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
-+ trap '{ (exit 1); exit 1; }' 1 2 13 15
-+}
-+
-+# Create a (secure) tmp directory for tmp files.
-+
-+{
-+ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` &&
-+ test -n "$tmp" && test -d "$tmp"
-+} ||
-+{
-+ tmp=./confstat$$-$RANDOM
-+ (umask 077 && mkdir $tmp)
-+} ||
-+{
-+ echo "$me: cannot create a temporary directory in ." >&2
-+ { (exit 1); exit 1; }
-+}
-+
-+_ACEOF
-+
-+cat >>$CONFIG_STATUS <<_ACEOF
-
-+#
-+# CONFIG_FILES section.
-+#
-+
-+# No need to generate the scripts if there are no CONFIG_FILES.
-+# This happens for instance when ./config.status config.h
-+if test -n "\$CONFIG_FILES"; then
-+ # Protect against being on the right side of a sed subst in config.status.
-+ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g;
-+ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF
-+s,@SHELL@,$SHELL,;t t
-+s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t
-+s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t
-+s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t
-+s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t
-+s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t
-+s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t
-+s,@exec_prefix@,$exec_prefix,;t t
-+s,@prefix@,$prefix,;t t
-+s,@program_transform_name@,$program_transform_name,;t t
-+s,@bindir@,$bindir,;t t
-+s,@sbindir@,$sbindir,;t t
-+s,@libexecdir@,$libexecdir,;t t
-+s,@datadir@,$datadir,;t t
-+s,@sysconfdir@,$sysconfdir,;t t
-+s,@sharedstatedir@,$sharedstatedir,;t t
-+s,@localstatedir@,$localstatedir,;t t
-+s,@libdir@,$libdir,;t t
-+s,@includedir@,$includedir,;t t
-+s,@oldincludedir@,$oldincludedir,;t t
-+s,@infodir@,$infodir,;t t
-+s,@mandir@,$mandir,;t t
-+s,@build_alias@,$build_alias,;t t
-+s,@host_alias@,$host_alias,;t t
-+s,@target_alias@,$target_alias,;t t
-+s,@DEFS@,$DEFS,;t t
-+s,@ECHO_C@,$ECHO_C,;t t
-+s,@ECHO_N@,$ECHO_N,;t t
-+s,@ECHO_T@,$ECHO_T,;t t
-+s,@LIBS@,$LIBS,;t t
-+s,@VERSION@,$VERSION,;t t
-+s,@RELEASE@,$RELEASE,;t t
-+s,@statedir@,$statedir,;t t
-+s,@statduser@,$statduser,;t t
-+s,@enable_nfsv3@,$enable_nfsv3,;t t
-+s,@IDMAPD@,$IDMAPD,;t t
-+s,@enable_nfsv4@,$enable_nfsv4,;t t
-+s,@GSSD@,$GSSD,;t t
-+s,@SVCGSSD@,$SVCGSSD,;t t
-+s,@enable_gss@,$enable_gss,;t t
-+s,@kprefix@,$kprefix,;t t
-+s,@secure_statd@,$secure_statd,;t t
-+s,@RQUOTAD@,$RQUOTAD,;t t
-+s,@CC@,$CC,;t t
-+s,@CFLAGS@,$CFLAGS,;t t
-+s,@LDFLAGS@,$LDFLAGS,;t t
-+s,@CPPFLAGS@,$CPPFLAGS,;t t
-+s,@ac_ct_CC@,$ac_ct_CC,;t t
-+s,@EXEEXT@,$EXEEXT,;t t
-+s,@OBJEXT@,$OBJEXT,;t t
-+s,@CPP@,$CPP,;t t
-+s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t
-+s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t
-+s,@INSTALL_DATA@,$INSTALL_DATA,;t t
-+s,@CC_FOR_BUILD@,$CC_FOR_BUILD,;t t
-+s,@RANLIB@,$RANLIB,;t t
-+s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t
-+s,@AR@,$AR,;t t
-+s,@ac_ct_AR@,$ac_ct_AR,;t t
-+s,@LD@,$LD,;t t
-+s,@ac_ct_LD@,$ac_ct_LD,;t t
-+s,@EGREP@,$EGREP,;t t
-+s,@LIBSOCKET@,$LIBSOCKET,;t t
-+s,@LIBNSL@,$LIBNSL,;t t
-+s,@LIBCRYPT@,$LIBCRYPT,;t t
-+s,@LIBBSD@,$LIBBSD,;t t
-+s,@LIBWRAP@,$LIBWRAP,;t t
-+s,@KRBDIR@,$KRBDIR,;t t
-+s,@KRBLIB@,$KRBLIB,;t t
-+s,@KRBINC@,$KRBINC,;t t
-+s,@K5VERS@,$K5VERS,;t t
-+s,@CXXFLAGS@,$CXXFLAGS,;t t
-+s,@LIBOBJS@,$LIBOBJS,;t t
-+s,@LTLIBOBJS@,$LTLIBOBJS,;t t
- CEOF
--EOF
-
--cat >> $CONFIG_STATUS <<\EOF
-+_ACEOF
-
--# Split the substitutions into bite-sized pieces for seds with
--# small command number limits, like on Digital OSF/1 and HP-UX.
--ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
--ac_file=1 # Number of current file.
--ac_beg=1 # First line for current file.
--ac_end=$ac_max_sed_cmds # Line after last line for current file.
--ac_more_lines=:
--ac_sed_cmds=""
--while $ac_more_lines; do
-- if test $ac_beg -gt 1; then
-- sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
-- else
-- sed "${ac_end}q" conftest.subs > conftest.s$ac_file
-- fi
-- if test ! -s conftest.s$ac_file; then
-- ac_more_lines=false
-- rm -f conftest.s$ac_file
-- else
-- if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds="sed -f conftest.s$ac_file"
-+ cat >>$CONFIG_STATUS <<\_ACEOF
-+ # Split the substitutions into bite-sized pieces for seds with
-+ # small command number limits, like on Digital OSF/1 and HP-UX.
-+ ac_max_sed_lines=48
-+ ac_sed_frag=1 # Number of current file.
-+ ac_beg=1 # First line for current file.
-+ ac_end=$ac_max_sed_lines # Line after last line for current file.
-+ ac_more_lines=:
-+ ac_sed_cmds=
-+ while $ac_more_lines; do
-+ if test $ac_beg -gt 1; then
-+ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- else
-- ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
-+ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag
- fi
-- ac_file=`expr $ac_file + 1`
-- ac_beg=$ac_end
-- ac_end=`expr $ac_end + $ac_max_sed_cmds`
-+ if test ! -s $tmp/subs.frag; then
-+ ac_more_lines=false
-+ else
-+ # The purpose of the label and of the branching condition is to
-+ # speed up the sed processing (if there are no `@' at all, there
-+ # is no need to browse any of the substitutions).
-+ # These are the two extra sed commands mentioned above.
-+ (echo ':t
-+ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed
-+ if test -z "$ac_sed_cmds"; then
-+ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed"
-+ else
-+ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed"
-+ fi
-+ ac_sed_frag=`expr $ac_sed_frag + 1`
-+ ac_beg=$ac_end
-+ ac_end=`expr $ac_end + $ac_max_sed_lines`
-+ fi
-+ done
-+ if test -z "$ac_sed_cmds"; then
-+ ac_sed_cmds=cat
- fi
--done
--if test -z "$ac_sed_cmds"; then
-- ac_sed_cmds=cat
--fi
--EOF
-+fi # test -n "$CONFIG_FILES"
-
--cat >> $CONFIG_STATUS <<EOF
--
--CONFIG_FILES=\${CONFIG_FILES-"config.mk utils/Makefile"}
--EOF
--cat >> $CONFIG_STATUS <<\EOF
--for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-- case "$ac_file" in
-- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-- *) ac_file_in="${ac_file}.in" ;;
-+ case $ac_file in
-+ - | *:- | *:-:* ) # input from stdin
-+ cat >$tmp/stdin
-+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-+ * ) ac_file_in=$ac_file.in ;;
- esac
-
-- # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
--
-- # Remove last slash and all that follows it. Not all systems have dirname.
-- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-- # The file is in a subdirectory.
-- test ! -d "$ac_dir" && mkdir "$ac_dir"
-- ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
-- # A "../" for each directory in $ac_dir_suffix.
-- ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
-- else
-- ac_dir_suffix= ac_dots=
-- fi
--
-- case "$ac_given_srcdir" in
-- .) srcdir=.
-- if test -z "$ac_dots"; then top_srcdir=.
-- else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
-- /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
-+ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories.
-+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+ X"$ac_file" : 'X\(//\)[^/]' \| \
-+ X"$ac_file" : 'X\(//\)$' \| \
-+ X"$ac_file" : 'X\(/\)' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X"$ac_file" |
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-+ /^X\(\/\/\)$/{ s//\1/; q; }
-+ /^X\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+ { if $as_mkdir_p; then
-+ mkdir -p "$ac_dir"
-+ else
-+ as_dir="$ac_dir"
-+ as_dirs=
-+ while test ! -d "$as_dir"; do
-+ as_dirs="$as_dir $as_dirs"
-+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
-+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+ X"$as_dir" : 'X\(//\)[^/]' \| \
-+ X"$as_dir" : 'X\(//\)$' \| \
-+ X"$as_dir" : 'X\(/\)' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X"$as_dir" |
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-+ /^X\(\/\/\)$/{ s//\1/; q; }
-+ /^X\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+ done
-+ test ! -n "$as_dirs" || mkdir $as_dirs
-+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-+ { (exit 1); exit 1; }; }; }
-+
-+ ac_builddir=.
-+
-+if test "$ac_dir" != .; then
-+ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-+ # A "../" for each directory in $ac_dir_suffix.
-+ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'`
-+else
-+ ac_dir_suffix= ac_top_builddir=
-+fi
-+
-+case $srcdir in
-+ .) # No --srcdir option. We are building in place.
-+ ac_srcdir=.
-+ if test -z "$ac_top_builddir"; then
-+ ac_top_srcdir=.
-+ else
-+ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'`
-+ fi ;;
-+ [\\/]* | ?:[\\/]* ) # Absolute path.
-+ ac_srcdir=$srcdir$ac_dir_suffix;
-+ ac_top_srcdir=$srcdir ;;
- *) # Relative path.
-- srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
-- top_srcdir="$ac_dots$ac_given_srcdir" ;;
-- esac
-+ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix
-+ ac_top_srcdir=$ac_top_builddir$srcdir ;;
-+esac
-
-- case "$ac_given_INSTALL" in
-- [/$]*) INSTALL="$ac_given_INSTALL" ;;
-- *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
-- esac
-+# Do not use `cd foo && pwd` to compute absolute paths, because
-+# the directories may not exist.
-+case `pwd` in
-+.) ac_abs_builddir="$ac_dir";;
-+*)
-+ case "$ac_dir" in
-+ .) ac_abs_builddir=`pwd`;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";;
-+ *) ac_abs_builddir=`pwd`/"$ac_dir";;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_top_builddir=${ac_top_builddir}.;;
-+*)
-+ case ${ac_top_builddir}. in
-+ .) ac_abs_top_builddir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;;
-+ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_srcdir=$ac_srcdir;;
-+*)
-+ case $ac_srcdir in
-+ .) ac_abs_srcdir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;;
-+ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;;
-+ esac;;
-+esac
-+case $ac_abs_builddir in
-+.) ac_abs_top_srcdir=$ac_top_srcdir;;
-+*)
-+ case $ac_top_srcdir in
-+ .) ac_abs_top_srcdir=$ac_abs_builddir;;
-+ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;;
-+ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;;
-+ esac;;
-+esac
-
-- echo creating "$ac_file"
-- rm -f "$ac_file"
-- configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
-- case "$ac_file" in
-- *Makefile*) ac_comsub="1i\\
--# $configure_input" ;;
-- *) ac_comsub= ;;
-+
-+ case $INSTALL in
-+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-+ *) ac_INSTALL=$ac_top_builddir$INSTALL ;;
- esac
-
-- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-- sed -e "$ac_comsub
--s%@configure_input@%$configure_input%g
--s%@srcdir@%$srcdir%g
--s%@top_srcdir@%$top_srcdir%g
--s%@INSTALL@%$INSTALL%g
--" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
--fi; done
--rm -f conftest.s*
-+ if test x"$ac_file" != x-; then
-+ { echo "$as_me:$LINENO: creating $ac_file" >&5
-+echo "$as_me: creating $ac_file" >&6;}
-+ rm -f "$ac_file"
-+ fi
-+ # Let's still pretend it is `configure' which instantiates (i.e., don't
-+ # use $as_me), people would be surprised to read:
-+ # /* config.h. Generated by config.status. */
-+ if test x"$ac_file" = x-; then
-+ configure_input=
-+ else
-+ configure_input="$ac_file. "
-+ fi
-+ configure_input=$configure_input"Generated from `echo $ac_file_in |
-+ sed 's,.*/,,'` by configure."
-+
-+ # First look for the input files in the build tree, otherwise in the
-+ # src tree.
-+ ac_file_inputs=`IFS=:
-+ for f in $ac_file_in; do
-+ case $f in
-+ -) echo $tmp/stdin ;;
-+ [\\/$]*)
-+ # Absolute (can't be DOS-style, as IFS=:)
-+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-+echo "$as_me: error: cannot find input file: $f" >&2;}
-+ { (exit 1); exit 1; }; }
-+ echo "$f";;
-+ *) # Relative
-+ if test -f "$f"; then
-+ # Build tree
-+ echo "$f"
-+ elif test -f "$srcdir/$f"; then
-+ # Source tree
-+ echo "$srcdir/$f"
-+ else
-+ # /dev/null tree
-+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-+echo "$as_me: error: cannot find input file: $f" >&2;}
-+ { (exit 1); exit 1; }; }
-+ fi;;
-+ esac
-+ done` || { (exit 1); exit 1; }
-+_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF
-+ sed "$ac_vpsub
-+$extrasub
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+:t
-+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-+s,@configure_input@,$configure_input,;t t
-+s,@srcdir@,$ac_srcdir,;t t
-+s,@abs_srcdir@,$ac_abs_srcdir,;t t
-+s,@top_srcdir@,$ac_top_srcdir,;t t
-+s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t
-+s,@builddir@,$ac_builddir,;t t
-+s,@abs_builddir@,$ac_abs_builddir,;t t
-+s,@top_builddir@,$ac_top_builddir,;t t
-+s,@abs_top_builddir@,$ac_abs_top_builddir,;t t
-+s,@INSTALL@,$ac_INSTALL,;t t
-+" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out
-+ rm -f $tmp/stdin
-+ if test x"$ac_file" != x-; then
-+ mv $tmp/out $ac_file
-+ else
-+ cat $tmp/out
-+ rm -f $tmp/out
-+ fi
-+
-+done
-+_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+
-+#
-+# CONFIG_HEADER section.
-+#
-
- # These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
- # NAME is the cpp macro being defined and VALUE is the value it is being given.
- #
- # ac_d sets the value in "#define NAME VALUE" lines.
--ac_dA='s%^\([ ]*\)#\([ ]*define[ ][ ]*\)'
--ac_dB='\([ ][ ]*\)[^ ]*%\1#\2'
--ac_dC='\3'
--ac_dD='%g'
--# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
--ac_uA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
--ac_uB='\([ ]\)%\1#\2define\3'
-+ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)'
-+ac_dB='[ ].*$,\1#\2'
-+ac_dC=' '
-+ac_dD=',;t'
-+# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
-+ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
-+ac_uB='$,\1#\2define\3'
- ac_uC=' '
--ac_uD='\4%g'
--# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
--ac_eA='s%^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)'
--ac_eB='$%\1#\2define\3'
--ac_eC=' '
--ac_eD='%g'
--
--if test "${CONFIG_HEADERS+set}" != set; then
--EOF
--cat >> $CONFIG_STATUS <<EOF
-- CONFIG_HEADERS="support/include/config.h"
--EOF
--cat >> $CONFIG_STATUS <<\EOF
--fi
--for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
-+ac_uD=',;t'
-+
-+for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue
- # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
-- case "$ac_file" in
-- *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
-- ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
-- *) ac_file_in="${ac_file}.in" ;;
-+ case $ac_file in
-+ - | *:- | *:-:* ) # input from stdin
-+ cat >$tmp/stdin
-+ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-+ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'`
-+ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;;
-+ * ) ac_file_in=$ac_file.in ;;
- esac
-
-- echo creating $ac_file
-+ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5
-+echo "$as_me: creating $ac_file" >&6;}
-
-- rm -f conftest.frag conftest.in conftest.out
-- ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
-- cat $ac_file_inputs > conftest.in
--
--EOF
--
--# Transform confdefs.h into a sed script conftest.vals that substitutes
--# the proper values into config.h.in to produce config.h. And first:
--# Protect against being on the right side of a sed subst in config.status.
--# Protect against being in an unquoted here document in config.status.
--rm -f conftest.vals
--cat > conftest.hdr <<\EOF
--s/[\\&%]/\\&/g
--s%[\\$`]%\\&%g
--s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
--s%ac_d%ac_u%gp
--s%ac_u%ac_e%gp
--EOF
--sed -n -f conftest.hdr confdefs.h > conftest.vals
--rm -f conftest.hdr
-+ # First look for the input files in the build tree, otherwise in the
-+ # src tree.
-+ ac_file_inputs=`IFS=:
-+ for f in $ac_file_in; do
-+ case $f in
-+ -) echo $tmp/stdin ;;
-+ [\\/$]*)
-+ # Absolute (can't be DOS-style, as IFS=:)
-+ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-+echo "$as_me: error: cannot find input file: $f" >&2;}
-+ { (exit 1); exit 1; }; }
-+ # Do quote $f, to prevent DOS paths from being IFS'd.
-+ echo "$f";;
-+ *) # Relative
-+ if test -f "$f"; then
-+ # Build tree
-+ echo "$f"
-+ elif test -f "$srcdir/$f"; then
-+ # Source tree
-+ echo "$srcdir/$f"
-+ else
-+ # /dev/null tree
-+ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5
-+echo "$as_me: error: cannot find input file: $f" >&2;}
-+ { (exit 1); exit 1; }; }
-+ fi;;
-+ esac
-+ done` || { (exit 1); exit 1; }
-+ # Remove the trailing spaces.
-+ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in
-+
-+_ACEOF
-+
-+# Transform confdefs.h into two sed scripts, `conftest.defines' and
-+# `conftest.undefs', that substitutes the proper values into
-+# config.h.in to produce config.h. The first handles `#define'
-+# templates, and the second `#undef' templates.
-+# And first: Protect against being on the right side of a sed subst in
-+# config.status. Protect against being in an unquoted here document
-+# in config.status.
-+rm -f conftest.defines conftest.undefs
-+# Using a here document instead of a string reduces the quoting nightmare.
-+# Putting comments in sed scripts is not portable.
-+#
-+# `end' is used to avoid that the second main sed command (meant for
-+# 0-ary CPP macros) applies to n-ary macro definitions.
-+# See the Autoconf documentation for `clear'.
-+cat >confdef2sed.sed <<\_ACEOF
-+s/[\\&,]/\\&/g
-+s,[\\$`],\\&,g
-+t clear
-+: clear
-+s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp
-+t end
-+s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp
-+: end
-+_ACEOF
-+# If some macros were called several times there might be several times
-+# the same #defines, which is useless. Nevertheless, we may not want to
-+# sort them, since we want the *last* AC-DEFINE to be honored.
-+uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines
-+sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs
-+rm -f confdef2sed.sed
-
- # This sed command replaces #undef with comments. This is necessary, for
- # example, in the case of _POSIX_SOURCE, which is predefined and required
- # on some systems where configure will not decide to define it.
--cat >> conftest.vals <<\EOF
--s%^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
--EOF
--
--# Break up conftest.vals because some shells have a limit on
--# the size of here documents, and old seds have small limits too.
--
-+cat >>conftest.undefs <<\_ACEOF
-+s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */,
-+_ACEOF
-+
-+# Break up conftest.defines because some shells have a limit on the size
-+# of here documents, and old seds have small limits too (100 cmds).
-+echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS
-+echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS
-+echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS
-+echo ' :' >>$CONFIG_STATUS
- rm -f conftest.tail
--while :
-+while grep . conftest.defines >/dev/null
- do
-- ac_lines=`grep -c . conftest.vals`
-- # grep -c gives empty output for an empty file on some AIX systems.
-- if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
-- # Write a limited-size here document to conftest.frag.
-- echo ' cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
-- sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
-+ # Write a limited-size here document to $tmp/defines.sed.
-+ echo ' cat >$tmp/defines.sed <<CEOF' >>$CONFIG_STATUS
-+ # Speed up: don't consider the non `#define' lines.
-+ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS
-+ # Work around the forget-to-reset-the-flag bug.
-+ echo 't clr' >>$CONFIG_STATUS
-+ echo ': clr' >>$CONFIG_STATUS
-+ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS
- echo 'CEOF
-- sed -f conftest.frag conftest.in > conftest.out
-- rm -f conftest.in
-- mv conftest.out conftest.in
--' >> $CONFIG_STATUS
-- sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
-- rm -f conftest.vals
-- mv conftest.tail conftest.vals
--done
--rm -f conftest.vals
--
--cat >> $CONFIG_STATUS <<\EOF
-- rm -f conftest.frag conftest.h
-- echo "/* $ac_file. Generated automatically by configure. */" > conftest.h
-- cat conftest.in >> conftest.h
-- rm -f conftest.in
-- if cmp -s $ac_file conftest.h 2>/dev/null; then
-- echo "$ac_file is unchanged"
-- rm -f conftest.h
-- else
-- # Remove last slash and all that follows it. Not all systems have dirname.
-- ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
-- if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
-- # The file is in a subdirectory.
-- test ! -d "$ac_dir" && mkdir "$ac_dir"
-- fi
-- rm -f $ac_file
-- mv conftest.h $ac_file
-+ sed -f $tmp/defines.sed $tmp/in >$tmp/out
-+ rm -f $tmp/in
-+ mv $tmp/out $tmp/in
-+' >>$CONFIG_STATUS
-+ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail
-+ rm -f conftest.defines
-+ mv conftest.tail conftest.defines
-+done
-+rm -f conftest.defines
-+echo ' fi # grep' >>$CONFIG_STATUS
-+echo >>$CONFIG_STATUS
-+
-+# Break up conftest.undefs because some shells have a limit on the size
-+# of here documents, and old seds have small limits too (100 cmds).
-+echo ' # Handle all the #undef templates' >>$CONFIG_STATUS
-+rm -f conftest.tail
-+while grep . conftest.undefs >/dev/null
-+do
-+ # Write a limited-size here document to $tmp/undefs.sed.
-+ echo ' cat >$tmp/undefs.sed <<CEOF' >>$CONFIG_STATUS
-+ # Speed up: don't consider the non `#undef'
-+ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS
-+ # Work around the forget-to-reset-the-flag bug.
-+ echo 't clr' >>$CONFIG_STATUS
-+ echo ': clr' >>$CONFIG_STATUS
-+ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS
-+ echo 'CEOF
-+ sed -f $tmp/undefs.sed $tmp/in >$tmp/out
-+ rm -f $tmp/in
-+ mv $tmp/out $tmp/in
-+' >>$CONFIG_STATUS
-+ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail
-+ rm -f conftest.undefs
-+ mv conftest.tail conftest.undefs
-+done
-+rm -f conftest.undefs
-+
-+cat >>$CONFIG_STATUS <<\_ACEOF
-+ # Let's still pretend it is `configure' which instantiates (i.e., don't
-+ # use $as_me), people would be surprised to read:
-+ # /* config.h. Generated by config.status. */
-+ if test x"$ac_file" = x-; then
-+ echo "/* Generated by configure. */" >$tmp/config.h
-+ else
-+ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h
- fi
--fi; done
-+ cat $tmp/in >>$tmp/config.h
-+ rm -f $tmp/in
-+ if test x"$ac_file" != x-; then
-+ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then
-+ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-+echo "$as_me: $ac_file is unchanged" >&6;}
-+ else
-+ ac_dir=`(dirname "$ac_file") 2>/dev/null ||
-+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+ X"$ac_file" : 'X\(//\)[^/]' \| \
-+ X"$ac_file" : 'X\(//\)$' \| \
-+ X"$ac_file" : 'X\(/\)' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X"$ac_file" |
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-+ /^X\(\/\/\)$/{ s//\1/; q; }
-+ /^X\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+ { if $as_mkdir_p; then
-+ mkdir -p "$ac_dir"
-+ else
-+ as_dir="$ac_dir"
-+ as_dirs=
-+ while test ! -d "$as_dir"; do
-+ as_dirs="$as_dir $as_dirs"
-+ as_dir=`(dirname "$as_dir") 2>/dev/null ||
-+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-+ X"$as_dir" : 'X\(//\)[^/]' \| \
-+ X"$as_dir" : 'X\(//\)$' \| \
-+ X"$as_dir" : 'X\(/\)' \| \
-+ . : '\(.\)' 2>/dev/null ||
-+echo X"$as_dir" |
-+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
-+ /^X\(\/\/\)[^/].*/{ s//\1/; q; }
-+ /^X\(\/\/\)$/{ s//\1/; q; }
-+ /^X\(\/\).*/{ s//\1/; q; }
-+ s/.*/./; q'`
-+ done
-+ test ! -n "$as_dirs" || mkdir $as_dirs
-+ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5
-+echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
-+ { (exit 1); exit 1; }; }; }
-
--EOF
--cat >> $CONFIG_STATUS <<EOF
-+ rm -f $ac_file
-+ mv $tmp/config.h $ac_file
-+ fi
-+ else
-+ cat $tmp/config.h
-+ rm -f $tmp/config.h
-+ fi
-+done
-+_ACEOF
-
--EOF
--cat >> $CONFIG_STATUS <<\EOF
-+cat >>$CONFIG_STATUS <<\_ACEOF
-
--exit 0
--EOF
-+{ (exit 0); exit 0; }
-+_ACEOF
- chmod +x $CONFIG_STATUS
--rm -fr confdefs* $ac_clean_files
--test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1
-+ac_clean_files=$ac_clean_files_save
-+
-+
-+# configure is writing to config.log, and then calls config.status.
-+# config.status does its own redirection, appending to config.log.
-+# Unfortunately, on DOS this fails, as config.log is still kept open
-+# by configure, so config.status won't be able to write to it; its
-+# output is simply discarded. So we exec the FD to /dev/null,
-+# effectively closing config.log, so it can be properly (re)opened and
-+# appended to by config.status. When coming back to configure, we
-+# need to make the FD available again.
-+if test "$no_create" != yes; then
-+ ac_cs_success=:
-+ ac_config_status_args=
-+ test "$silent" = yes &&
-+ ac_config_status_args="$ac_config_status_args --quiet"
-+ exec 5>/dev/null
-+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-+ exec 5>>config.log
-+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-+ # would make configure fail if this is the last instruction.
-+ $ac_cs_success || { (exit 1); exit 1; }
-+fi
-
-diff -puN configure.in~CITI_NFS4_ALL configure.in
---- nfs-utils-1.0.7/configure.in~CITI_NFS4_ALL 2005-05-06 15:19:22.324443000 -0400
-+++ nfs-utils-1.0.7-kwc/configure.in 2005-05-06 15:19:26.022447000 -0400
-@@ -34,7 +34,7 @@ AC_ARG_ENABLE(nfsv3,
- enable_nfsv3=$enableval,
- enable_nfsv3=yes)
- if test "$enable_nfsv3" = yes; then
-- AC_DEFINE(NFS3_SUPPORTED)
-+ AC_DEFINE(NFS3_SUPPORTED, 1, [Define this if you want NFSv3 support compiled in])
- else
- enable_nfsv3=
- fi
-@@ -44,7 +44,7 @@ AC_ARG_ENABLE(nfsv4,
- enable_nfsv4=$enableval,
- enable_nfsv4=yes)
- if test "$enable_nfsv4" = yes; then
-- AC_DEFINE(NFS4_SUPPORTED)
-+ AC_DEFINE(NFS4_SUPPORTED, 1, [Define this if you want NFSv4 support compiled in])
- IDMAPD=idmapd
- else
- enable_nfsv4=
-@@ -57,7 +57,7 @@ AC_ARG_ENABLE(gss,
- enable_gss=$enableval,
- enable_gss=yes)
- if test "$enable_gss" = yes; then
-- AC_DEFINE(GSS_SUPPORTED)
-+ AC_DEFINE(GSS_SUPPORTED, 1, [Define this if you want rpcsec_gss support compiled in])
- GSSD=gssd
- SVCGSSD=svcgssd
- else
-@@ -78,7 +78,7 @@ AC_ARG_ENABLE(secure-statd,
- test "$enableval" = "yes" && secure_statd=yes,
- secure_statd=no)
- if test "$secure_statd" = yes; then
-- AC_DEFINE(RESTRICTED_STATD)
-+ AC_DEFINE(RESTRICTED_STATD, 1, [Define this if you want to enable various security checks in statd. These checks basically keep anyone but lockd from using this service.])
- fi
- AC_SUBST(secure_statd)
- AC_ARG_ENABLE(rquotad,
-@@ -117,8 +117,8 @@ AC_CHECK_LIB(socket, main, [LIBSOCKET="-
- AC_CHECK_LIB(nsl, main, [LIBNSL="-lnsl"])
- AC_CHECK_LIB(crypt, crypt, [LIBCRYPT="-lcrypt"])
- if test "$enable_nfsv4" = yes; then
-- AC_CHECK_LIB(event, event_dispatch, , [AC_MSG_ERROR(libevent needed for nfsv4 support)])
-- AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
-+ AC_CHECK_LIB(event, event_dispatch, [libevent=1], [AC_MSG_ERROR(libevent needed for nfsv4 support)])
-+ AC_CHECK_LIB(nfsidmap, nfs4_init_name_mapping, [libnfsidmap=1], [AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
- AC_CHECK_HEADERS(event.h, ,[AC_MSG_ERROR(libevent needed for nfsv4 support)])
- AC_CHECK_HEADERS(nfsidmap.h, ,[AC_MSG_ERROR(libnfsidmap needed for nfsv4 support)])
- fi
-@@ -155,8 +155,8 @@ if test "$enable_gss" = yes; then
- esac ]
- )
-
-- for dir in $krb5_with /usr/kerberos /usr/local /usr/local/krb5 /usr/krb5 \
-- /usr/heimdal /usr/local/heimdal /usr/athena /usr ; do
-+ for dir in $krb5_with /usr /usr/kerberos /usr/local /usr/local/krb5 \
-+ /usr/krb5 /usr/heimdal /usr/local/heimdal /usr/athena ; do
- dnl This ugly hack brought on by the split installation of
- dnl MIT Kerberos on Fedora Core 1
- K5CONFIG=""
-@@ -166,62 +166,71 @@ if test "$enable_gss" = yes; then
- K5CONFIG="/usr/kerberos/bin/krb5-config"
- fi
- if test "$K5CONFIG" != ""; then
-+ KRBINC=`$K5CONFIG --cflags`
-+ KRBLIB=`$K5CONFIG --libs gssapi`
-+ K5VERS=`$K5CONFIG --version | head -n 1 | awk '{split($4,v,"."); if (v[[3]] == "") v[[3]] = "0"; print v[[1]]v[[2]]v[[3]] }'`
-+ AC_DEFINE_UNQUOTED(KRB5_VERSION, $K5VERS, [Define this as the Kerberos version number])
- if test -f $dir/include/gssapi/gssapi_krb5.h -a \
- \( -f $dir/lib/libgssapi_krb5.a -o \
- -f $dir/lib/libgssapi_krb5.so \) ; then
-- AC_DEFINE(HAVE_KRB5)
-+ AC_DEFINE(HAVE_KRB5, 1, [Define this if you have MIT Kerberos libraries])
- KRBDIR="$dir"
-- K5VERS=`$K5CONFIG --version | awk '{split($4,v,"."); print v[[1]]v[[2]]v[[3]] }'`
-- AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS)
-- KRBLIB=`$K5CONFIG --libs gssapi`
-+ dnl If we are using MIT K5 1.3.1 and before, we *MUST* use the
-+ dnl private function (gss_krb5_ccache_name) to get correct
-+ dnl behavior of changing the ccache used by gssapi.
-+ dnl Starting in 1.3.2, we *DO NOT* want to use
-+ dnl gss_krb5_ccache_name, instead we want to set KRB5CCNAME
-+ dnl to get gssapi to use a different ccache
- if test $K5VERS -le 131; then
-- AC_DEFINE(USE_PRIVATE_KRB5_FUNCTIONS)
-+ AC_DEFINE(USE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the private function, gss_krb5_cache_name, must be used to tell the Kerberos library which credentials cache to use. Otherwise, this is done by setting the KRB5CCNAME environment variable])
- fi
-- AC_CHECK_LIB(gssapi_krb5, gss_krb5_export_lucid_sec_context,
-- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB)
-- AC_CHECK_LIB(gssapi_krb5, gss_krb5_set_allowable_enctypes,
-- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB)
-- AC_CHECK_LIB(gssapi_krb5, gss_krb5_ccache_name,
-- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB)
-+ gssapi_lib=gssapi_krb5
- break
- dnl The following ugly hack brought on by the split installation
- dnl of Heimdal Kerberos on SuSe
- elif test \( -f $dir/include/heim_err.h -o\
- -f $dir/include/heimdal/heim_err.h \) -a \
- -f $dir/lib/libroken.a; then
-- AC_DEFINE(HAVE_HEIMDAL)
-+ AC_DEFINE(HAVE_HEIMDAL, 1, [Define this if you have Heimdal Kerberos libraries])
- KRBDIR="$dir"
-- K5VERS=`$K5CONFIG --version | head -1 | awk '{split($2,v,"."); print v[[1]]v[[2]]v[[3]] }'`
-- AC_DEFINE_UNQUOTED(KRB5_VERSION,$K5VERS)
-- KRBLIB=`$K5CONFIG --libs gssapi`
-- AC_CHECK_LIB(gssapi, gss_krb5_export_lucid_sec_context,
-- AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT),,$KRBLIB)
-- AC_CHECK_LIB(gssapi, gss_krb5_set_allowable_enctypes,
-- AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES),,$KRBLIB)
-- AC_CHECK_LIB(gssapi, gss_krb5_ccache_name,
-- AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME),,$KRBLIB)
-+ gssapi_lib=gssapi
- break
- fi
-- CFLAGS=$CFLAGS `K5CONFIG --cflags`
- fi
- done
- dnl We didn't find a usable Kerberos environment
- if test "x$KRBDIR" = "x"; then
-- AC_MSG_RESULT("no")
- if test "x$krb5_with" = "x"; then
- AC_MSG_ERROR(Kerberos v5 with GSS support not found: consider --disable-gss or --with-krb5=)
- else
- AC_MSG_ERROR(Kerberos v5 with GSS support not found at $krb5_with)
- fi
- fi
-+ CFLAGS="$CFLAGS `$K5CONFIG --cflags`"
- AC_MSG_RESULT($KRBDIR)
-+
-+ dnl Now check for functions within gssapi library
-+ AC_CHECK_LIB($gssapi_lib, gss_krb5_export_lucid_sec_context,
-+ AC_DEFINE(HAVE_LUCID_CONTEXT_SUPPORT, 1, [Define this if the Kerberos GSS library supports gss_krb5_export_lucid_sec_context]), ,$KRBLIB)
-+ AC_CHECK_LIB($gssapi_lib, gss_krb5_set_allowable_enctypes,
-+ AC_DEFINE(HAVE_SET_ALLOWABLE_ENCTYPES, 1, [Define this if the Kerberos GSS library supports gss_krb5_set_allowable_enctypes]), ,$KRBLIB)
-+ AC_CHECK_LIB($gssapi_lib, gss_krb5_ccache_name,
-+ AC_DEFINE(HAVE_GSS_KRB5_CCACHE_NAME, 1, [Define this if the Kerberos GSS library supports gss_krb5_ccache_name]), ,$KRBLIB)
-+
- dnl If they specified a directory and it didn't work, give them a warning
- if test "x$krb5_with" != "x" -a "$krb5_with" != "$KRBDIR"; then
- AC_MSG_WARN(Using $KRBDIR instead of requested value of $krb5_with for Kerberos!)
- fi
-
-+ dnl This is not done until here because we need to have KRBLIB set
-+ dnl "librpcsecgss=1" is so that it doesn't get added to LIBS
-+ AC_CHECK_LIB(rpcsecgss, authgss_create_default, [librpcsecgss=1], [AC_MSG_ERROR(librpcsecgss needed for nfsv4 support)], $KRBLIB)
-+ AC_CHECK_LIB(rpcsecgss, authgss_set_debug_level,
-+ AC_DEFINE(HAVE_AUTHGSS_SET_DEBUG_LEVEL, 1, [Define this if the rpcsec_gss library has the function authgss_set_debug_level]),, $KRBLIB)
-+
- AC_SUBST([KRBDIR])
- AC_SUBST([KRBLIB])
-+ AC_SUBST([KRBINC])
- AC_SUBST([K5VERS])
- fi
-
-@@ -229,6 +238,8 @@ dnl ************************************
- dnl Check for headers
- dnl *************************************************************
- dnl AC_HAVE_HEADERS(string.h)
-+AC_HAVE_HEADERS(com_err.h)
-+AC_HAVE_HEADERS(et/com_err.h)
-
- dnl *************************************************************
- dnl Check for functions
-@@ -236,9 +247,17 @@ dnl ************************************
- AC_HAVE_FUNCS(innetgr)
-
- dnl *************************************************************
-+dnl Check for data sizes
-+dnl *************************************************************
-+AC_CHECK_SIZEOF(short)
-+AC_CHECK_SIZEOF(int)
-+AC_CHECK_SIZEOF(long)
-+AC_CHECK_SIZEOF(size_t)
-+
-+dnl *************************************************************
- dnl Export some path names to config.h
- dnl *************************************************************
--AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir")
-+AC_DEFINE_UNQUOTED(NFS_STATEDIR, "$statedir", [This defines the location of the NFS state files. Warning: this must match definitions in config.mk!])
-
- AC_SUBST(LDFLAGS)
- AC_SUBST(CXXFLAGS)
-diff -puN support/include/config.h.in~CITI_NFS4_ALL support/include/config.h.in
---- nfs-utils-1.0.7/support/include/config.h.in~CITI_NFS4_ALL 2005-05-06 15:19:22.383384000 -0400
-+++ nfs-utils-1.0.7-kwc/support/include/config.h.in 2005-05-06 15:19:26.028447000 -0400
-@@ -5,6 +5,12 @@
- /* Define this if you have string.h */
- #undef HAVE_STRING_H
-
-+/* Define this if you have com_err.h */
-+#undef HAVE_COM_ERR_H
-+
-+/* Define this if you have <et/com_err.h> */
-+#undef HAVE_ET_COM_ERR_H
-+
- /* Define this if you have netgroup support
- */
- #undef HAVE_INNETGR
-@@ -43,3 +49,28 @@
- /* Define this if the Kerberos gssapi library has function
- * gss_krb5_cache_name */
- #undef HAVE_GSS_KRB5_CCACHE_NAME
-+
-+/* Define this if the rpcsec_gss library has the function
-+ * authgss_set_debug_level */
-+#undef HAVE_AUTHGSS_SET_DEBUG_LEVEL
-+
-+/* Define this if we want to use the private Kerberos
-+ * gssapi library function, gss_krb5_cache_name, to
-+ * specify the credentials cache file to be used by
-+ * the gssapi library.
-+ * (For MIT releases 1.3.1 and before, this must
-+ * be defined. For later releases we can simply
-+ * set the KRB5CCNAME environment variable.) */
-+#undef USE_GSS_KRB5_CCACHE_NAME
-+
-+/* The size of a `int', as computed by sizeof. */
-+#undef SIZEOF_INT
-+
-+/* The size of a `long', as computed by sizeof. */
-+#undef SIZEOF_LONG
-+
-+/* The size of a `short', as computed by sizeof. */
-+#undef SIZEOF_SHORT
-+
-+/* The size of a `size_t', as computed by sizeof. */
-+#undef SIZEOF_SIZE_T
-diff -puN utils/svcgssd/Makefile~CITI_NFS4_ALL utils/svcgssd/Makefile
---- nfs-utils-1.0.7/utils/svcgssd/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:22.441326000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/svcgssd/Makefile 2005-05-06 15:19:26.017448000 -0400
-@@ -6,18 +6,23 @@ PROGRAM = svcgssd
- PREFIX = rpc.
- OBJS = svcgssd.o svcgssd_main_loop.o svcgssd_proc.o err_util.o gss_util.o \
- gss_oids.o context.o context_heimdal.o cacheio.o svcgssd_mech2file.o
--LIBDEPS = $(TOP)support/lib/librpc.a $(TOP)support/lib/libgssapi.a
--LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpc -lgssapi -ldl $(KRBLIB) -lnfsidmap
-+LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpcsecgss -lgssapi -ldl $(KRBLIB) -lnfsidmap
- MAN8 = svcgssd
-
--predep ::
-- - ln ../gssd/err_util.c
-- - ln ../gssd/gss_util.c
-- - ln ../gssd/gss_oids.c
-- - ln ../gssd/context.c
-- - ln ../gssd/context_heimdal.c
--
- include $(TOP)rules.mk
-
- CFLAGS += -I../gssd -DKRB5_VERSION=$(KRB5_VERSION) \
-- -I$(TOP)support/rpc/include/ -I$(KRBDIR)/include
-+ -I$(TOP)support/rpc/include/
-+predep ::
-+ - ln -s ../gssd/err_util.c
-+ - ln -s ../gssd/gss_util.c
-+ - ln -s ../gssd/gss_oids.c
-+ - ln -s ../gssd/context.c
-+ - ln -s ../gssd/context_heimdal.c
-+
-+distclean ::
-+ - rm err_util.c
-+ - rm gss_util.c
-+ - rm gss_oids.c
-+ - rm context.c
-+ - rm context_heimdal.c
-diff -puN support/include/gssapi/gssapi.h~CITI_NFS4_ALL support/include/gssapi/gssapi.h
---- nfs-utils-1.0.7/support/include/gssapi/gssapi.h~CITI_NFS4_ALL 2005-05-06 15:19:22.696320000 -0400
-+++ nfs-utils-1.0.7-kwc/support/include/gssapi/gssapi.h 2005-05-06 15:19:22.781320000 -0400
-@@ -1,25 +1,3 @@
--/* This is the gssapi.h prologue. */
--/* It contains some choice pieces of autoconf.h */
--#define SIZEOF_INT 4
--#define SIZEOF_LONG 4
--#define SIZEOF_SHORT 2
--#define HAVE_STDARG_H 1
--/* #undef HAVE_VARARGS_H */
--/* #undef HAVE_MACSOCK_H */
--#define HAVE_NETINET_IN_H 1
--#define HAVE_STDDEF_H 1
--#define HAVE_STDLIB_H 1
--#define HAVE_STRING_H 1
--#define HAVE_SYS_FILE_H 1
--#define HAVE_SYS_PARAM_H 1
--#define HAVE_SYS_SOCKET_H 1
--#define HAVE_SYS_STAT_H 1
--#define HAVE_SYS_TIME_H 1
--#define HAVE_SYS_TYPES_H 1
--#define HAVE_UNISTD_H 1
--/* #undef HAVE_XOM_H */
--#define USE_DIRENT_H 1
--/* End of gssapi.h prologue. */
- /*
- * Copyright 1993 by OpenVision Technologies, Inc.
- *
-@@ -45,6 +23,8 @@
- #ifndef _GSSAPI_H_
- #define _GSSAPI_H_
-
-+#include "config.h"
-+
- /*
- * Determine platform-dependent configuration.
- */
-diff -puN utils/gssd/write_bytes.h~CITI_NFS4_ALL utils/gssd/write_bytes.h
---- nfs-utils-1.0.7/utils/gssd/write_bytes.h~CITI_NFS4_ALL 2005-05-06 15:19:22.755320000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/write_bytes.h 2005-05-06 15:19:22.771320000 -0400
-@@ -53,12 +53,13 @@ write_bytes(char **ptr, const char *end,
- inline static int
- write_buffer(char **p, char *end, gss_buffer_desc *arg)
- {
-- if (WRITE_BYTES(p, end, arg->length))
-+ int len = (int)arg->length; /* make an int out of size_t */
-+ if (WRITE_BYTES(p, end, len))
- return -1;
- if (*p + arg->length > end)
- return -1;
-- memcpy(*p, arg->value, arg->length);
-- *p += arg->length;
-+ memcpy(*p, arg->value, len);
-+ *p += len;
- return 0;
- }
-
-@@ -80,8 +81,10 @@ get_buffer(char **ptr, const char *end,
- {
- char *p, *q;
- p = *ptr;
-- if (get_bytes(&p, end, &res->length, sizeof(res->length)))
-+ int len;
-+ if (get_bytes(&p, end, &len, sizeof(len)))
- return -1;
-+ res->length = len; /* promote to size_t if necessary */
- q = p + res->length;
- if (q > end || q < p)
- return -1;
-@@ -105,9 +108,11 @@ static inline int
- xdr_get_buffer(u_int32_t **ptr, const u_int32_t *end, gss_buffer_desc *res)
- {
- u_int32_t *p, *q;
-+ u_int32_t len;
- p = *ptr;
-- if (xdr_get_u32(&p, end, &res->length))
-+ if (xdr_get_u32(&p, end, &len))
- return -1;
-+ res->length = len;
- q = p + ((res->length + 3) >> 2);
- if (q > end || q < p)
- return -1;
-@@ -130,7 +135,8 @@ xdr_write_u32(u_int32_t **ptr, const u_i
- static inline int
- xdr_write_buffer(u_int32_t **ptr, const u_int32_t *end, gss_buffer_desc *arg)
- {
-- if (xdr_write_u32(ptr, end, arg->length))
-+ int len = arg->length;
-+ if (xdr_write_u32(ptr, end, len))
- return -1;
- return write_bytes((char **)ptr, (char *)end, arg->value,
- (arg->length + 3) & ~3);
-diff -puN utils/idmapd/idmapd.c~CITI_NFS4_ALL utils/idmapd/idmapd.c
---- nfs-utils-1.0.7/utils/idmapd/idmapd.c~CITI_NFS4_ALL 2005-05-06 15:19:22.926320000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/idmapd/idmapd.c 2005-05-06 15:19:23.940029000 -0400
-@@ -141,6 +141,34 @@ static struct idmap_client nfsd_ic[2];
- /* Used by cfg.c */
- char *conf_path;
-
-+static int
-+flush_nfsd_cache(char *path, time_t now)
-+{
-+ int fd;
-+ char stime[20];
-+
-+ sprintf(stime, "%ld\n", now);
-+ fd = open(path, O_RDWR);
-+ if (fd == -1)
-+ return -1;
-+ write(fd, stime, strlen(stime));
-+ close(fd);
-+ return 0;
-+}
-+
-+static int
-+flush_nfsd_idmap_cache(void)
-+{
-+ time_t now = time(NULL);
-+ int ret;
-+
-+ ret = flush_nfsd_cache("/proc/net/rpc/nfs4.idtoname/flush", now);
-+ if (ret)
-+ return ret;
-+ ret = flush_nfsd_cache("/proc/net/rpc/nfs4.nametoid/flush", now);
-+ return ret;
-+}
-+
- int
- main(int argc, char **argv)
- {
-@@ -153,6 +181,7 @@ main(int argc, char **argv)
- struct stat sb;
- char *xpipefsdir = NULL;
- int serverstart = 1, clientstart = 1;
-+ int ret;
-
- conf_path = _PATH_IDMAPDCONF;
- nobodyuser = NFS4NOBODY_USER;
-@@ -230,8 +259,14 @@ main(int argc, char **argv)
-
- event_init();
-
-- if (serverstart)
-+ if (serverstart) {
- nfsdret = nfsdopen(NFSD_DIR);
-+ if (nfsdret == 0) {
-+ ret = flush_nfsd_idmap_cache();
-+ if (ret)
-+ errx(1, "Failed to flush nfsd idmap cache\n");
-+ }
-+ }
-
- if (clientstart) {
- struct timeval now = {
-@@ -565,10 +600,8 @@ nfsdreopen_one(struct idmap_client *ic)
- if (ic->ic_fd != -1)
- close(ic->ic_fd);
- ic->ic_event.ev_fd = ic->ic_fd = fd;
-- if ((ic->ic_event.ev_flags & EVLIST_INIT) == 0) {
-- event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfsdcb, ic);
-- event_add(&ic->ic_event, NULL);
-- }
-+ event_set(&ic->ic_event, ic->ic_fd, EV_READ, nfsdcb, ic);
-+ event_add(&ic->ic_event, NULL);
- } else {
- warnx("nfsdreopen: Opening '%s' failed: errno %d (%s)",
- ic->ic_path, errno, strerror(errno));
-@@ -681,9 +714,7 @@ idtonameres(struct idmap_msg *im)
- sizeof(im->im_name));
- break;
- }
-- /* XXX Hack? would rather return failure instead of writing nobody
-- * as above, but kernel seems not to deal well with that as of
-- * 2.6.8-rc3. */
-+ /* XXX Hack? */
- im->im_status = IDMAP_STATUS_SUCCESS;
- }
-
-@@ -692,6 +723,14 @@ nametoidres(struct idmap_msg *im)
- {
- int ret = 0;
-
-+ /* XXX: nobody fallbacks shouldn't always happen:
-+ * server id -> name should be OK
-+ * client name -> id should be OK
-+ * but not otherwise */
-+ /* XXX: move nobody stuff to library calls
-+ * (nfs4_get_nobody_user(domain), nfs4_get_nobody_group(domain)) */
-+ /* XXX: should make this call higher up in the call chain (so we'd
-+ * have a chance on looking up server/whatever. */
- switch (im->im_type) {
- case IDMAP_TYPE_USER:
- ret = nfs4_name_to_uid(im->im_name, &im->im_id);
-@@ -704,9 +743,7 @@ nametoidres(struct idmap_msg *im)
- im->im_id = nobodygid;
- break;
- }
-- /* XXX Hack? would rather return failure instead of writing nobody
-- * as above, but kernel seems not to deal well with that as of
-- * 2.6.8-rc3. */
-+ /* XXX? */
- im->im_status = IDMAP_STATUS_SUCCESS;
- }
-
-diff -puN utils/gssd/krb5_util.c~CITI_NFS4_ALL utils/gssd/krb5_util.c
---- nfs-utils-1.0.7/utils/gssd/krb5_util.c~CITI_NFS4_ALL 2005-05-06 15:19:23.197280000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/krb5_util.c 2005-05-06 15:19:26.501156000 -0400
-@@ -131,7 +131,7 @@ static int select_krb5_ccache(const stru
- static int gssd_find_existing_krb5_ccache(uid_t uid, struct dirent **d);
- static int gssd_get_single_krb5_cred(krb5_context context,
- krb5_keytab kt, struct gssd_k5_kt_princ *ple);
--static int gssd_have_realm_ple(krb5_data *realm);
-+static int gssd_have_realm_ple(void *realm);
- static int gssd_process_krb5_keytab(krb5_context context, krb5_keytab kt,
- char *kt_name);
-
-@@ -270,11 +270,7 @@ limit_krb5_enctypes(struct rpc_gss_sec *
- {
- u_int maj_stat, min_stat;
- gss_cred_id_t credh;
--/* krb5_enctype enctypes[] = {ENCTYPE_DES3_CBC_SHA1};
-- ENCTYPE_ARCFOUR_HMAC, */
-- krb5_enctype enctypes[] = {ENCTYPE_DES3_CBC_SHA1,
-- ENCTYPE_DES_CBC_MD5,
-- ENCTYPE_DES_CBC_CRC};
-+ krb5_enctype enctypes[] = { ENCTYPE_DES_CBC_CRC };
- int num_enctypes = sizeof(enctypes) / sizeof(enctypes[0]);
-
- maj_stat = gss_acquire_cred(&min_stat, NULL, 0,
-@@ -349,7 +345,7 @@ gssd_get_single_krb5_cred(krb5_context c
- krb5_get_init_creds_opt_set_tkt_life(&options, 5*60);
- #endif
- if ((code = krb5_get_init_creds_keytab(context, &my_creds, ple->princ,
-- kt, 0, 0, &options))) {
-+ kt, 0, NULL, &options))) {
- char *pname;
- if ((krb5_unparse_name(context, ple->princ, &pname))) {
- pname = NULL;
-@@ -358,7 +354,11 @@ gssd_get_single_krb5_cred(krb5_context c
- "principal '%s' from keytab '%s'\n",
- error_message(code),
- pname ? pname : "<unparsable>", kt_name);
-+#ifdef HAVE_KRB5
- if (pname) krb5_free_unparsed_name(context, pname);
-+#else
-+ if (pname) free(pname);
-+#endif
- goto out;
- }
-
-@@ -410,13 +410,22 @@ gssd_get_single_krb5_cred(krb5_context c
- * 1 => found ple for given realm
- */
- static int
--gssd_have_realm_ple(krb5_data *realm)
-+gssd_have_realm_ple(void *r)
- {
- struct gssd_k5_kt_princ *ple;
-+#ifdef HAVE_KRB5
-+ krb5_data *realm = (krb5_data *)r;
-+#else
-+ char *realm = (char *)r;
-+#endif
-
- for (ple = gssd_k5_kt_princ_list; ple; ple = ple->next) {
-+#ifdef HAVE_KRB5
- if ((realm->length == strlen(ple->realm)) &&
- (strncmp(realm->data, ple->realm, realm->length) == 0)) {
-+#else
-+ if (strcmp(realm, ple->realm) == 0) {
-+#endif
- return 1;
- }
- }
-@@ -466,16 +475,27 @@ gssd_process_krb5_keytab(krb5_context co
- }
- printerr(2, "Processing keytab entry for principal '%s'\n",
- pname);
-+#ifdef HAVE_KRB5
- if ( (kte.principal->data[0].length == GSSD_SERVICE_NAME_LEN) &&
- (strncmp(kte.principal->data[0].data, GSSD_SERVICE_NAME,
- GSSD_SERVICE_NAME_LEN) == 0) &&
-- (!gssd_have_realm_ple(&kte.principal->realm)) ) {
-+#else
-+ if ( (strlen(kte.principal->name.name_string.val[0]) == GSSD_SERVICE_NAME_LEN) &&
-+ (strncmp(kte.principal->name.name_string.val[0], GSSD_SERVICE_NAME,
-+ GSSD_SERVICE_NAME_LEN) == 0) &&
-+
-+#endif
-+ (!gssd_have_realm_ple((void *)&kte.principal->realm)) ) {
- printerr(2, "We will use this entry (%s)\n", pname);
- ple = malloc(sizeof(struct gssd_k5_kt_princ));
- if (ple == NULL) {
- printerr(0, "ERROR: could not allocate storage "
- "for principal list entry\n");
-+#ifdef HAVE_KRB5
- krb5_free_unparsed_name(context, pname);
-+#else
-+ free(pname);
-+#endif
- retval = ENOMEM;
- goto out;
- }
-@@ -484,13 +504,21 @@ gssd_process_krb5_keytab(krb5_context co
- ple->ccname = NULL;
- ple->endtime = 0;
- if ((ple->realm =
-+#ifdef HAVE_KRB5
- strndup(kte.principal->realm.data,
- kte.principal->realm.length))
-+#else
-+ strdup(kte.principal->realm))
-+#endif
- == NULL) {
- printerr(0, "ERROR: %s while copying realm to "
- "principal list entry\n",
- "not enough memory");
-+#ifdef HAVE_KRB5
- krb5_free_unparsed_name(context, pname);
-+#else
-+ free(pname);
-+#endif
- retval = ENOMEM;
- goto out;
- }
-@@ -499,7 +527,11 @@ gssd_process_krb5_keytab(krb5_context co
- printerr(0, "ERROR: %s while copying principal "
- "to principal list entry\n",
- error_message(code));
-+#ifdef HAVE_KRB5
- krb5_free_unparsed_name(context, pname);
-+#else
-+ free(pname);
-+#endif
- retval = code;
- goto out;
- }
-@@ -514,7 +546,11 @@ gssd_process_krb5_keytab(krb5_context co
- printerr(2, "We will NOT use this entry (%s)\n",
- pname);
- }
-+#ifdef HAVE_KRB5
- krb5_free_unparsed_name(context, pname);
-+#else
-+ free(pname);
-+#endif
- }
-
- if ((code = krb5_kt_end_seq_get(context, kt, &cursor))) {
-@@ -528,6 +564,36 @@ gssd_process_krb5_keytab(krb5_context co
- return retval;
- }
-
-+/*
-+ * Depending on the version of Kerberos, we either need to use
-+ * a private function, or simply set the environment variable.
-+ */
-+static void
-+gssd_set_krb5_ccache_name(char *ccname)
-+{
-+#ifdef USE_GSS_KRB5_CCACHE_NAME
-+ u_int maj_stat, min_stat;
-+
-+ printerr(2, "using gss_krb5_ccache_name to select krb5 ccache %s\n",
-+ ccname);
-+ maj_stat = gss_krb5_ccache_name(&min_stat, ccname, NULL);
-+ if (maj_stat != GSS_S_COMPLETE) {
-+ printerr(0, "WARNING: gss_krb5_ccache_name with "
-+ "name '%s' failed (%s)\n",
-+ ccname, error_message(min_stat));
-+ }
-+#else
-+ /*
-+ * Set the KRB5CCNAME environment variable to tell the krb5 code
-+ * which credentials cache to use. (Instead of using the private
-+ * function above for which there is no generic gssapi
-+ * equivalent.)
-+ */
-+ printerr(2, "using environment variable to select krb5 ccache %s\n",
-+ ccname);
-+ setenv("KRB5CCNAME", ccname, 1);
-+#endif
-+}
-
- /*==========================*/
- /*=== External routines ===*/
-@@ -545,9 +611,6 @@ void
- gssd_setup_krb5_user_gss_ccache(uid_t uid, char *servername)
- {
- char buf[MAX_NETOBJ_SZ];
--#ifdef HAVE_GSS_KRB5_CCACHE_NAME
-- u_int min_stat;
--#endif
- struct dirent *d;
-
- printerr(2, "getting credentials for client with uid %u for "
-@@ -564,17 +627,7 @@ gssd_setup_krb5_user_gss_ccache(uid_t ui
- GSSD_DEFAULT_CRED_PREFIX, uid);
- printerr(2, "using %s as credentials cache for client with "
- "uid %u for server %s\n", buf, uid, servername);
--#ifdef HAVE_GSS_KRB5_CCACHE_NAME
-- gss_krb5_ccache_name(&min_stat, buf, NULL);
--#else
-- /*
-- * Set the KRB5CCNAME environment variable to tell the krb5 code
-- * which credentials cache to use. (Instead of using the private
-- * function above for which there is no generic gssapi
-- * equivalent.)
-- */
-- setenv("KRB5CCNAME", buf, 1);
--#endif
-+ gssd_set_krb5_ccache_name(buf);
- }
-
- /*
-@@ -586,22 +639,9 @@ gssd_setup_krb5_user_gss_ccache(uid_t ui
- void
- gssd_setup_krb5_machine_gss_ccache(char *ccname)
- {
--#ifdef HAVE_GSS_KRB5_CCACHE_NAME
-- u_int min_stat;
--#endif
- printerr(2, "using %s as credentials cache for machine creds\n",
- ccname);
--#ifdef HAVE_GSS_KRB5_CCACHE_NAME
-- gss_krb5_ccache_name(&min_stat, ccname, NULL);
--#else
-- /*
-- * Set the KRB5CCNAME environment variable to tell the krb5 code
-- * which credentials cache to use. (Instead of using the private
-- * function above for which there is no generic gssapi
-- * equivalent.)
-- */
-- setenv("KRB5CCNAME", ccname, 1);
--#endif
-+ gssd_set_krb5_ccache_name(ccname);
- }
-
- /*
-diff -puN utils/svcgssd/svcgssd_main_loop.c~CITI_NFS4_ALL utils/svcgssd/svcgssd_main_loop.c
---- nfs-utils-1.0.7/utils/svcgssd/svcgssd_main_loop.c~CITI_NFS4_ALL 2005-05-06 15:19:23.823030000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_main_loop.c 2005-05-06 15:19:23.839029000 -0400
-@@ -58,19 +58,24 @@ gssd_run()
- f = fopen(NULLRPC_FILE, "rw");
-
- if (!f) {
-- printerr(0, "failed to open %s\n", NULLRPC_FILE);
-+ printerr(0, "failed to open %s: %s\n",
-+ NULLRPC_FILE, strerror(errno));
- exit(1);
- }
- pollfd.fd = fileno(f);
- pollfd.events = POLLIN;
- while (1) {
-+ int save_err;
-+
- pollfd.revents = 0;
- printerr(1, "entering poll\n");
- ret = poll(&pollfd, 1, -1);
-+ save_err = errno;
- printerr(1, "leaving poll\n");
- if (ret < 0) {
-- if (errno != EINTR)
-- printerr(0, "error return from poll\n");
-+ if (save_err != EINTR)
-+ printerr(0, "error return from poll: %s\n",
-+ strerror(save_err));
- } else if (ret == 0) {
- /* timeout; shouldn't happen. */
- } else {
-diff -puN utils/svcgssd/svcgssd_proc.c~CITI_NFS4_ALL utils/svcgssd/svcgssd_proc.c
---- nfs-utils-1.0.7/utils/svcgssd/svcgssd_proc.c~CITI_NFS4_ALL 2005-05-06 15:19:24.071029000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd_proc.c 2005-05-06 15:19:24.087029000 -0400
-@@ -52,11 +52,6 @@
- #include "context.h"
- #include "cacheio.h"
-
--/* XXX: ? */
--#ifndef NGROUPS
--#define NGROUPS 32
--#endif
--
- extern char * mech2file(gss_OID mech);
- #define SVCGSSD_CONTEXT_CHANNEL "/proc/net/rpc/auth.rpcsec.context/channel"
- #define SVCGSSD_INIT_CHANNEL "/proc/net/rpc/auth.rpcsec.init/channel"
-@@ -162,6 +157,30 @@ send_response(FILE *f, gss_buffer_desc *
- #define rpcsec_gsserr_credproblem 13
- #define rpcsec_gsserr_ctxproblem 14
-
-+static void
-+add_supplementary_groups(char *secname, char *name, struct svc_cred *cred)
-+{
-+ int ret;
-+ static gid_t *groups = NULL;
-+
-+ cred->cr_ngroups = NGROUPS;
-+ ret = nfs4_gss_princ_to_grouplist(secname, name,
-+ cred->cr_groups, &cred->cr_ngroups);
-+ if (ret < 0) {
-+ groups = realloc(groups, cred->cr_ngroups*sizeof(gid_t));
-+ ret = nfs4_gss_princ_to_grouplist(secname, name,
-+ groups, &cred->cr_ngroups);
-+ if (ret < 0)
-+ cred->cr_ngroups = 0;
-+ else {
-+ if (cred->cr_ngroups > NGROUPS)
-+ cred->cr_ngroups = NGROUPS;
-+ memcpy(cred->cr_groups, groups,
-+ cred->cr_ngroups*sizeof(gid_t));
-+ }
-+ }
-+}
-+
- static int
- get_ids(gss_name_t client_name, gss_OID mech, struct svc_cred *cred)
- {
-@@ -172,6 +191,7 @@ get_ids(gss_name_t client_name, gss_OID
- uid_t uid, gid;
- gss_OID name_type;
- char *secname;
-+ gid_t *groups;
-
- maj_stat = gss_display_name(&min_stat, client_name, &name, &name_type);
- if (maj_stat != GSS_S_COMPLETE)
-@@ -190,8 +210,7 @@ get_ids(gss_name_t client_name, gss_OID
- goto out_free;
- cred->cr_uid = uid;
- cred->cr_gid = gid;
-- /*XXX: want add_supplementary_groups(secname, sname, cred)? */
-- cred->cr_ngroups = 0;
-+ add_supplementary_groups(secname, sname, cred);
- res = 0;
- out_free:
- free(sname);
-diff -puN utils/mountd/mountd.c~CITI_NFS4_ALL utils/mountd/mountd.c
---- nfs-utils-1.0.7/utils/mountd/mountd.c~CITI_NFS4_ALL 2005-05-06 15:19:24.223963000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/mountd/mountd.c 2005-05-06 15:19:24.241945000 -0400
-@@ -234,7 +234,10 @@ mount_pathconf_2_svc(struct svc_req *rqs
- bool_t
- mount_mnt_3_svc(struct svc_req *rqstp, dirpath *path, mountres3 *res)
- {
-- static int flavors[] = { AUTH_NULL, AUTH_UNIX };
-+#define AUTH_GSS_KRB5 390003
-+#define AUTH_GSS_KRB5I 390004
-+#define AUTH_GSS_KRB5P 390005
-+ static int flavors[] = { AUTH_NULL, AUTH_UNIX, AUTH_GSS_KRB5, AUTH_GSS_KRB5I, AUTH_GSS_KRB5P};
- struct nfs_fh_len *fh;
-
- xlog(D_CALL, "MNT3(%s) called", *path);
-@@ -243,7 +246,8 @@ mount_mnt_3_svc(struct svc_req *rqstp, d
-
- ok->fhandle.fhandle3_len = fh->fh_size;
- ok->fhandle.fhandle3_val = fh->fh_handle;
-- ok->auth_flavors.auth_flavors_len = 2;
-+ ok->auth_flavors.auth_flavors_len
-+ = sizeof(flavors)/sizeof(flavors[0]);
- ok->auth_flavors.auth_flavors_val = flavors;
- }
- return 1;
-diff -puN debian/control~CITI_NFS4_ALL debian/control
---- nfs-utils-1.0.7/debian/control~CITI_NFS4_ALL 2005-05-06 15:19:24.380806000 -0400
-+++ nfs-utils-1.0.7-kwc/debian/control 2005-05-06 15:19:25.937448000 -0400
-@@ -2,7 +2,7 @@ Source: nfs-utils
- Priority: standard
- Section: net
- Maintainer: Chip Salzenberg <chip@debian.org>
--Build-Depends: debhelper (>= 4.1.16), libwrap0-dev, libevent-dev, libnfsidmap-dev, libkrb5-dev
-+Build-Depends: debhelper (>= 4.1.16), libwrap0-dev, libevent-dev, libnfsidmap-dev, libkrb5-dev, libgssapi-dev, librpcsecgss-dev
- Standards-Version: 3.1.1.1
-
- Package: nfs-kernel-server
-diff -puN -L debian/gssapi_mech.conf debian/gssapi_mech.conf~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/debian/gssapi_mech.conf
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,19 +0,0 @@
--# GSSAPI Mechanism Definitions
--#
--# This configuration file determines which GSS-API mechanisms
--# the gssd code should use
--#
--# NOTE:
--# The initiaiization function "mechglue_internal_krb5_init"
--# is used for the MIT krb5 gssapi mechanism. This special
--# function name indicates that an internal function should
--# be used to determine the entry points for the MIT gssapi
--# mechanism funtions.
--#
--# library initialization function
--# ================================ ==========================
--# The MIT K5 gssapi library, use special function for initialization.
--/usr/lib/libgssapi_krb5.so.2 mechglue_internal_krb5_init
--#
--# The SPKM3 gssapi library function. Use the function spkm3_gss_initialize.
--#/usr/local/gss_mechs/spkm/spkm3/libgssapi_spkm3.so spkm3_gss_initialize
-diff -puN debian/nfs-common.conffiles~CITI_NFS4_ALL debian/nfs-common.conffiles
---- nfs-utils-1.0.7/debian/nfs-common.conffiles~CITI_NFS4_ALL 2005-05-06 15:19:24.495740000 -0400
-+++ nfs-utils-1.0.7-kwc/debian/nfs-common.conffiles 2005-05-06 15:19:24.693739000 -0400
-@@ -1,4 +1,3 @@
- /etc/default/nfs-common
- /etc/init.d/nfs-common
- /etc/idmapd.conf
--/etc/gssapi_mech.conf
-diff -puN debian/nfs-common.install~CITI_NFS4_ALL debian/nfs-common.install
---- nfs-utils-1.0.7/debian/nfs-common.install~CITI_NFS4_ALL 2005-05-06 15:19:24.553740000 -0400
-+++ nfs-utils-1.0.7-kwc/debian/nfs-common.install 2005-05-06 15:19:24.698741000 -0400
-@@ -1,2 +1 @@
- debian/idmapd.conf etc
--debian/gssapi_mech.conf etc
-diff -puN support/Makefile~CITI_NFS4_ALL support/Makefile
---- nfs-utils-1.0.7/support/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:24.614738000 -0400
-+++ nfs-utils-1.0.7-kwc/support/Makefile 2005-05-06 15:19:25.944448000 -0400
-@@ -2,7 +2,7 @@
- # Makefile for linux-nfs/support
- #
-
--SUBDIRS = include nfs export lib misc rpc gssapi
-+SUBDIRS = include nfs export lib misc
- .DEFAULT: all
-
- include $(TOP)rules.mk
-diff -puN utils/gssd/Makefile~CITI_NFS4_ALL utils/gssd/Makefile
---- nfs-utils-1.0.7/utils/gssd/Makefile~CITI_NFS4_ALL 2005-05-06 15:19:24.671739000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/Makefile 2005-05-06 15:19:26.010447000 -0400
-@@ -6,8 +6,7 @@ PROGRAM = gssd
- PREFIX = rpc.
- OBJS = gssd.o gssd_main_loop.o gssd_proc.o err_util.o gss_util.o \
- gss_oids.o context.o context_heimdal.o krb5_util.o
--LIBDEPS = $(TOP)support/lib/librpc.a $(TOP)support/lib/libgssapi.a
--LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpc -lgssapi -ldl $(KRBLIB)
-+LIBS = -Wl,-rpath=$(KRBDIR)/lib -lrpcsecgss -lgssapi -ldl $(KRBLIB)
- MAN8 = gssd
-
- include $(TOP)rules.mk
-diff -puN -L support/rpc/auth_gss.c support/rpc/auth_gss.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/auth_gss.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,628 +0,0 @@
--/*
-- auth_gss.c
--
-- RPCSEC_GSS client routines.
--
-- Copyright (c) 2000 The Regents of the University of Michigan.
-- All rights reserved.
--
-- Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
-- All rights reserved, all wrongs reversed.
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions
-- are met:
--
-- 1. Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- 2. Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- 3. Neither the name of the University nor the names of its
-- contributors may be used to endorse or promote products derived
-- from this software without specific prior written permission.
--
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-- DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--*/
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <unistd.h>
--#include <string.h>
--#include <errno.h>
--#include <rpc/types.h>
--#include <rpc/xdr.h>
--#include <rpc/auth.h>
--#include <rpc/auth_gss.h>
--#include <rpc/clnt.h>
--#include <netinet/in.h>
--#include <gssapi/gssapi.h>
--
--static void authgss_nextverf();
--static bool_t authgss_marshal();
--static bool_t authgss_refresh();
--static bool_t authgss_validate();
--static void authgss_destroy();
--static void authgss_destroy_context();
--static bool_t authgss_wrap();
--static bool_t authgss_unwrap();
--
--
--/*
-- * from mit-krb5-1.2.1 mechglue/mglueP.h:
-- * Array of context IDs typed by mechanism OID
-- */
--typedef struct gss_union_ctx_id_t {
-- gss_OID mech_type;
-- gss_ctx_id_t internal_ctx_id;
--} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
--
--static struct auth_ops authgss_ops = {
-- authgss_nextverf,
-- authgss_marshal,
-- authgss_validate,
-- authgss_refresh,
-- authgss_destroy,
-- authgss_wrap,
-- authgss_unwrap
--};
--
--#ifdef DEBUG
--
--/* useful as i add more mechanisms */
--void
--print_rpc_gss_sec(struct rpc_gss_sec *ptr)
--{
--int i;
--char *p;
--
-- log_debug("rpc_gss_sec:");
-- if(ptr->mech == NULL)
-- log_debug("NULL gss_OID mech");
-- else {
-- fprintf(stderr, " mechanism_OID: {");
-- p = (char *)ptr->mech->elements;
-- for (i=0; i < ptr->mech->length; i++)
-- /* First byte of OIDs encoded to save a byte */
-- if (i == 0) {
-- int first, second;
-- if (*p < 40) {
-- first = 0;
-- second = *p;
-- }
-- else if (40 <= *p && *p < 80) {
-- first = 1;
-- second = *p - 40;
-- }
-- else if (80 <= *p && *p < 127) {
-- first = 2;
-- second = *p - 80;
-- }
-- else {
-- /* Invalid value! */
-- first = -1;
-- second = -1;
-- }
-- fprintf(stderr, " %u %u", first, second);
-- p++;
-- }
-- else {
-- fprintf(stderr, " %u", (unsigned char)*p++);
-- }
-- fprintf(stderr, " }\n");
-- }
-- fprintf(stderr, " qop: %d\n", ptr->qop);
-- fprintf(stderr, " service: %d\n", ptr->svc);
-- fprintf(stderr, " cred: %p\n", ptr->cred);
--}
--#endif /*DEBUG*/
--
--struct rpc_gss_data {
-- bool_t established; /* context established */
-- gss_buffer_desc gc_wire_verf; /* save GSS_S_COMPLETE NULL RPC verfier
-- * to process at end of context negotiation*/
-- CLIENT *clnt; /* client handle */
-- gss_name_t name; /* service name */
-- struct rpc_gss_sec sec; /* security tuple */
-- gss_ctx_id_t ctx; /* context id */
-- struct rpc_gss_cred gc; /* client credentials */
-- u_int win; /* sequence window */
--};
--
--#define AUTH_PRIVATE(auth) ((struct rpc_gss_data *)auth->ah_private)
--
--static struct timeval AUTH_TIMEOUT = { 25, 0 };
--
--AUTH *
--authgss_create(CLIENT *clnt, gss_name_t name, struct rpc_gss_sec *sec)
--{
-- AUTH *auth, *save_auth;
-- struct rpc_gss_data *gd;
-- OM_uint32 min_stat = 0;
--
-- log_debug("in authgss_create()");
--
-- memset(&rpc_createerr, 0, sizeof(rpc_createerr));
--
-- if ((auth = calloc(sizeof(*auth), 1)) == NULL) {
-- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
-- rpc_createerr.cf_error.re_errno = ENOMEM;
-- return (NULL);
-- }
-- if ((gd = calloc(sizeof(*gd), 1)) == NULL) {
-- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
-- rpc_createerr.cf_error.re_errno = ENOMEM;
-- free(auth);
-- return (NULL);
-- }
--#ifdef DEBUG
-- fprintf(stderr, "authgss_create: name is %p\n", name);
--#endif
-- if (name != GSS_C_NO_NAME) {
-- if (gss_duplicate_name(&min_stat, name, &gd->name)
-- != GSS_S_COMPLETE) {
-- rpc_createerr.cf_stat = RPC_SYSTEMERROR;
-- rpc_createerr.cf_error.re_errno = ENOMEM;
-- free(auth);
-- return (NULL);
-- }
-- }
-- else
-- gd->name = name;
--
--#ifdef DEBUG
-- fprintf(stderr, "authgss_create: gd->name is %p\n", gd->name);
--#endif
-- gd->clnt = clnt;
-- gd->ctx = GSS_C_NO_CONTEXT;
-- gd->sec = *sec;
--
-- gd->gc.gc_v = RPCSEC_GSS_VERSION;
-- gd->gc.gc_proc = RPCSEC_GSS_INIT;
-- gd->gc.gc_svc = gd->sec.svc;
--
-- auth->ah_ops = &authgss_ops;
-- auth->ah_private = (caddr_t)gd;
--
-- save_auth = clnt->cl_auth;
-- clnt->cl_auth = auth;
--
-- if (!authgss_refresh(auth))
-- auth = NULL;
--
-- clnt->cl_auth = save_auth;
--
-- return (auth);
--}
--
--AUTH *
--authgss_create_default(CLIENT *clnt, char *service, struct rpc_gss_sec *sec)
--{
-- AUTH *auth;
-- OM_uint32 maj_stat = 0, min_stat = 0;
-- gss_buffer_desc sname;
-- gss_name_t name = GSS_C_NO_NAME;
--
-- log_debug("in authgss_create_default()");
--
--
-- sname.value = service;
-- sname.length = strlen(service);
--
-- maj_stat = gss_import_name(&min_stat, &sname,
-- GSS_C_NT_HOSTBASED_SERVICE,
-- &name);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_import_name", maj_stat, min_stat);
-- rpc_createerr.cf_stat = RPC_AUTHERROR;
-- return (NULL);
-- }
--
-- auth = authgss_create(clnt, name, sec);
--
-- if (name != GSS_C_NO_NAME) {
--#ifdef DEBUG
-- fprintf(stderr, "authgss_create_default: freeing name %p\n", name);
--#endif
-- gss_release_name(&min_stat, &name);
-- }
--
-- return (auth);
--}
--
--bool_t
--authgss_get_private_data(AUTH *auth, struct authgss_private_data *pd)
--{
-- struct rpc_gss_data *gd;
--
-- log_debug("in authgss_get_private_data()");
--
-- if (!auth || !pd)
-- return (FALSE);
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (!gd || !gd->established)
-- return (FALSE);
--
-- pd->pd_ctx = gd->ctx;
-- pd->pd_ctx_hndl = gd->gc.gc_ctx;
-- pd->pd_seq_win = gd->win;
--
-- return (TRUE);
--}
--
--static void
--authgss_nextverf(AUTH *auth)
--{
-- log_debug("in authgss_nextverf()");
-- /* no action necessary */
--}
--
--static bool_t
--authgss_marshal(AUTH *auth, XDR *xdrs)
--{
-- XDR tmpxdrs;
-- char tmp[MAX_AUTH_BYTES];
-- struct rpc_gss_data *gd;
-- gss_buffer_desc rpcbuf, checksum;
-- OM_uint32 maj_stat, min_stat;
-- bool_t xdr_stat;
--
-- log_debug("in authgss_marshal()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (gd->established)
-- gd->gc.gc_seq++;
--
-- xdrmem_create(&tmpxdrs, tmp, sizeof(tmp), XDR_ENCODE);
--
-- if (!xdr_rpc_gss_cred(&tmpxdrs, &gd->gc)) {
-- XDR_DESTROY(&tmpxdrs);
-- return (FALSE);
-- }
-- auth->ah_cred.oa_flavor = RPCSEC_GSS;
-- auth->ah_cred.oa_base = tmp;
-- auth->ah_cred.oa_length = XDR_GETPOS(&tmpxdrs);
--
-- XDR_DESTROY(&tmpxdrs);
--
-- if (!xdr_opaque_auth(xdrs, &auth->ah_cred))
-- return (FALSE);
--
-- if (gd->gc.gc_proc == RPCSEC_GSS_INIT ||
-- gd->gc.gc_proc == RPCSEC_GSS_CONTINUE_INIT) {
-- return (xdr_opaque_auth(xdrs, &_null_auth));
-- }
-- /* Checksum serialized RPC header, up to and including credential. */
-- rpcbuf.length = XDR_GETPOS(xdrs);
-- XDR_SETPOS(xdrs, 0);
-- rpcbuf.value = XDR_INLINE(xdrs, rpcbuf.length);
--
-- maj_stat = gss_get_mic(&min_stat, gd->ctx, gd->sec.qop,
-- &rpcbuf, &checksum);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_get_mic", maj_stat, min_stat);
-- if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
-- gd->established = FALSE;
-- authgss_destroy_context(auth);
-- }
-- return (FALSE);
-- }
-- auth->ah_verf.oa_flavor = RPCSEC_GSS;
-- auth->ah_verf.oa_base = checksum.value;
-- auth->ah_verf.oa_length = checksum.length;
--
-- xdr_stat = xdr_opaque_auth(xdrs, &auth->ah_verf);
-- gss_release_buffer(&min_stat, &checksum);
--
-- return (xdr_stat);
--}
--
--static bool_t
--authgss_validate(AUTH *auth, struct opaque_auth *verf)
--{
-- struct rpc_gss_data *gd;
-- u_int num, qop_state;
-- gss_buffer_desc signbuf, checksum;
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in authgss_validate()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (gd->established == FALSE) {
-- /* would like to do this only on NULL rpc --
-- * gc->established is good enough.
-- * save the on the wire verifier to validate last
-- * INIT phase packet after decode if the major
-- * status is GSS_S_COMPLETE
-- */
-- if ((gd->gc_wire_verf.value =
-- mem_alloc(verf->oa_length)) == NULL) {
-- fprintf(stderr, "gss_validate: out of memory\n");
-- return (FALSE);
-- }
-- memcpy(gd->gc_wire_verf.value, verf->oa_base, verf->oa_length);
-- gd->gc_wire_verf.length = verf->oa_length;
-- return (TRUE);
-- }
--
-- if (gd->gc.gc_proc == RPCSEC_GSS_INIT ||
-- gd->gc.gc_proc == RPCSEC_GSS_CONTINUE_INIT) {
-- num = htonl(gd->win);
-- }
-- else num = htonl(gd->gc.gc_seq);
--
-- signbuf.value = #
-- signbuf.length = sizeof(num);
--
-- checksum.value = verf->oa_base;
-- checksum.length = verf->oa_length;
--
-- maj_stat = gss_verify_mic(&min_stat, gd->ctx, &signbuf,
-- &checksum, &qop_state);
-- if (maj_stat != GSS_S_COMPLETE || qop_state != gd->sec.qop) {
-- log_status("gss_verify_mic", maj_stat, min_stat);
-- if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
-- gd->established = FALSE;
-- authgss_destroy_context(auth);
-- }
-- return (FALSE);
-- }
-- return (TRUE);
--}
--
--static bool_t
--authgss_refresh(AUTH *auth)
--{
-- struct rpc_gss_data *gd;
-- struct rpc_gss_init_res gr;
-- gss_buffer_desc *recv_tokenp, send_token;
-- OM_uint32 maj_stat, min_stat, call_stat, ret_flags;
-- OM_uint32 req_flags=0;
--
-- log_debug("in authgss_refresh()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (gd->established)
-- return (TRUE);
--
-- /* GSS context establishment loop. */
-- memset(&gr, 0, sizeof(gr));
-- recv_tokenp = GSS_C_NO_BUFFER;
--
--#ifdef DEBUG
-- print_rpc_gss_sec(&gd->sec);
--#endif /*DEBUG*/
--
-- for (;;) {
--#ifdef DEBUG
-- /* print the token we just received */
-- if (recv_tokenp != GSS_C_NO_BUFFER) {
-- log_debug("The token we just received (length %d):",
-- recv_tokenp->length);
-- log_hexdump(recv_tokenp->value, recv_tokenp->length, 0);
-- }
--#endif
-- maj_stat = gss_init_sec_context(&min_stat,
-- gd->sec.cred,
-- &gd->ctx,
-- gd->name,
-- gd->sec.mech,
-- gd->sec.req_flags,
-- 0, /* time req */
-- NULL, /* channel */
-- recv_tokenp,
-- NULL, /* used mech */
-- &send_token,
-- &ret_flags,
-- NULL); /* time rec */
--
-- if (recv_tokenp != GSS_C_NO_BUFFER) {
-- gss_release_buffer(&min_stat, &gr.gr_token);
-- recv_tokenp = GSS_C_NO_BUFFER;
-- }
-- if (maj_stat != GSS_S_COMPLETE &&
-- maj_stat != GSS_S_CONTINUE_NEEDED) {
-- log_status("gss_init_sec_context", maj_stat, min_stat);
-- break;
-- }
-- if (send_token.length != 0) {
-- memset(&gr, 0, sizeof(gr));
--
--#ifdef DEBUG
-- /* print the token we are about to send */
-- log_debug("The token being sent (length %d):",
-- send_token.length);
-- log_hexdump(send_token.value, send_token.length, 0);
--#endif
--
-- call_stat = clnt_call(gd->clnt, NULLPROC,
-- xdr_rpc_gss_init_args,
-- &send_token,
-- xdr_rpc_gss_init_res,
-- (caddr_t)&gr, AUTH_TIMEOUT);
--
-- gss_release_buffer(&min_stat, &send_token);
--
-- if (call_stat != RPC_SUCCESS ||
-- (gr.gr_major != GSS_S_COMPLETE &&
-- gr.gr_major != GSS_S_CONTINUE_NEEDED))
-- return FALSE;
--
-- if (gr.gr_ctx.length != 0) {
-- if (gd->gc.gc_ctx.value)
-- gss_release_buffer(&min_stat,
-- &gd->gc.gc_ctx);
-- gd->gc.gc_ctx = gr.gr_ctx;
-- }
-- if (gr.gr_token.length != 0) {
-- if (maj_stat != GSS_S_CONTINUE_NEEDED)
-- break;
-- recv_tokenp = &gr.gr_token;
-- }
-- gd->gc.gc_proc = RPCSEC_GSS_CONTINUE_INIT;
-- }
--
-- /* GSS_S_COMPLETE => check gss header verifier,
-- * usually checked in gss_validate
-- */
-- if (maj_stat == GSS_S_COMPLETE) {
-- gss_buffer_desc bufin;
-- gss_buffer_desc bufout;
-- u_int seq, qop_state = 0;
--
-- seq = htonl(gr.gr_win);
-- bufin.value = (unsigned char *)&seq;
-- bufin.length = sizeof(seq);
-- bufout.value = (unsigned char *)gd->gc_wire_verf.value;
-- bufout.length = gd->gc_wire_verf.length;
--
-- maj_stat = gss_verify_mic(&min_stat, gd->ctx,
-- &bufin, &bufout, &qop_state);
--
-- if (maj_stat != GSS_S_COMPLETE
-- || qop_state != gd->sec.qop) {
-- log_status("gss_verify_mic", maj_stat, min_stat);
-- if (maj_stat == GSS_S_CONTEXT_EXPIRED) {
-- gd->established = FALSE;
-- authgss_destroy_context(auth);
-- }
-- return (FALSE);
-- }
-- gd->established = TRUE;
-- gd->gc.gc_proc = RPCSEC_GSS_DATA;
-- gd->gc.gc_seq = 0;
-- gd->win = gr.gr_win;
-- break;
-- }
-- }
-- /* End context negotiation loop. */
-- if (gd->gc.gc_proc != RPCSEC_GSS_DATA) {
-- if (gr.gr_token.length != 0)
-- gss_release_buffer(&min_stat, &gr.gr_token);
--
-- authgss_destroy(auth);
-- auth = NULL;
-- rpc_createerr.cf_stat = RPC_AUTHERROR;
--
-- return (FALSE);
-- }
-- return (TRUE);
--}
--
--bool_t
--authgss_service(AUTH *auth, int svc)
--{
-- struct rpc_gss_data *gd;
--
-- log_debug("in authgss_service()");
--
-- if (!auth)
-- return(FALSE);
-- gd = AUTH_PRIVATE(auth);
-- if (!gd || !gd->established)
-- return (FALSE);
-- gd->sec.svc = svc;
-- gd->gc.gc_svc = svc;
-- return (TRUE);
--}
--
--static void
--authgss_destroy_context(AUTH *auth)
--{
-- struct rpc_gss_data *gd;
-- OM_uint32 min_stat;
--
-- log_debug("in authgss_destroy_context()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (gd->gc.gc_ctx.length != 0) {
-- if (gd->established) {
-- gd->gc.gc_proc = RPCSEC_GSS_DESTROY;
-- clnt_call(gd->clnt, NULLPROC, xdr_void, NULL,
-- xdr_void, NULL, AUTH_TIMEOUT);
-- }
-- gss_release_buffer(&min_stat, &gd->gc.gc_ctx);
-- /* XXX ANDROS check size of context - should be 8 */
-- memset(&gd->gc.gc_ctx, 0, sizeof(gd->gc.gc_ctx));
-- }
-- if (gd->ctx != GSS_C_NO_CONTEXT) {
-- gss_delete_sec_context(&min_stat, &gd->ctx, NULL);
-- gd->ctx = GSS_C_NO_CONTEXT;
-- }
-- gd->established = FALSE;
--}
--
--static void
--authgss_destroy(AUTH *auth)
--{
-- struct rpc_gss_data *gd;
-- OM_uint32 min_stat;
--
-- log_debug("in authgss_destroy()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- authgss_destroy_context(auth);
--
--#ifdef DEBUG
-- fprintf(stderr, "authgss_destroy: freeing name %p\n", gd->name);
--#endif
-- if (gd->name != GSS_C_NO_NAME)
-- gss_release_name(&min_stat, &gd->name);
--
-- free(gd);
-- free(auth);
--}
--
--bool_t
--authgss_wrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
--{
-- struct rpc_gss_data *gd;
--
-- log_debug("in authgss_wrap()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
-- return ((*xdr_func)(xdrs, xdr_ptr));
-- }
-- return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
-- gd->ctx, gd->sec.qop,
-- gd->sec.svc, gd->gc.gc_seq));
--}
--
--bool_t
--authgss_unwrap(AUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
--{
-- struct rpc_gss_data *gd;
--
-- log_debug("in authgss_unwrap()");
--
-- gd = AUTH_PRIVATE(auth);
--
-- if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
-- return ((*xdr_func)(xdrs, xdr_ptr));
-- }
-- return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
-- gd->ctx, gd->sec.qop,
-- gd->sec.svc, gd->gc.gc_seq));
--}
-diff -puN -L support/rpc/authgss_prot.c support/rpc/authgss_prot.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/authgss_prot.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,355 +0,0 @@
--/*
-- authgss_prot.c
--
-- Copyright (c) 2000 The Regents of the University of Michigan.
-- All rights reserved.
--
-- Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
-- All rights reserved, all wrongs reversed.
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions
-- are met:
--
-- 1. Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- 2. Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- 3. Neither the name of the University nor the names of its
-- contributors may be used to endorse or promote products derived
-- from this software without specific prior written permission.
--
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-- DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
--*/
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <stdarg.h>
--#include <rpc/types.h>
--#include <rpc/xdr.h>
--#include <rpc/auth.h>
--#include <rpc/auth_gss.h>
--#include <rpc/rpc.h>
--#include <gssapi/gssapi.h>
--
--bool_t
--xdr_rpc_gss_cred(XDR *xdrs, struct rpc_gss_cred *p)
--{
-- bool_t xdr_stat;
--
-- xdr_stat = (xdr_u_int(xdrs, &p->gc_v) &&
-- xdr_enum(xdrs, (enum_t *)&p->gc_proc) &&
-- xdr_u_int(xdrs, &p->gc_seq) &&
-- xdr_enum(xdrs, (enum_t *)&p->gc_svc) &&
-- xdr_bytes(xdrs, (char **)&p->gc_ctx.value,
-- &p->gc_ctx.length, MAX_AUTH_BYTES));
--
-- log_debug("xdr_rpc_gss_cred: %s %s "
-- "(v %d, proc %d, seq %d, svc %d, ctx %p:%d)",
-- (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
-- (xdr_stat == TRUE) ? "success" : "failure",
-- p->gc_v, p->gc_proc, p->gc_seq, p->gc_svc,
-- p->gc_ctx.value, p->gc_ctx.length);
--
-- return (xdr_stat);
--}
--
--bool_t
--xdr_rpc_gss_init_args(XDR *xdrs, gss_buffer_desc *p)
--{
-- bool_t xdr_stat;
--
-- xdr_stat = xdr_bytes(xdrs, (char **)&p->value,
-- &p->length, MAX_NETOBJ_SZ);
--
-- log_debug("xdr_rpc_gss_init_args: %s %s (token %p:%d)",
-- (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
-- (xdr_stat == TRUE) ? "success" : "failure",
-- p->value, p->length);
--
-- return (xdr_stat);
--}
--
--bool_t
--xdr_rpc_gss_init_res(XDR *xdrs, struct rpc_gss_init_res *p)
--{
-- bool_t xdr_stat;
--
-- xdr_stat = (xdr_bytes(xdrs, (char **)&p->gr_ctx.value,
-- &p->gr_ctx.length, MAX_NETOBJ_SZ) &&
-- xdr_u_int(xdrs, &p->gr_major) &&
-- xdr_u_int(xdrs, &p->gr_minor) &&
-- xdr_u_int(xdrs, &p->gr_win) &&
-- xdr_bytes(xdrs, (char **)&p->gr_token.value,
-- &p->gr_token.length, MAX_NETOBJ_SZ));
--
-- log_debug("xdr_rpc_gss_init_res %s %s "
-- "(ctx %p:%d, maj %d, min %d, win %d, token %p:%d)",
-- (xdrs->x_op == XDR_ENCODE) ? "encode" : "decode",
-- (xdr_stat == TRUE) ? "success" : "failure",
-- p->gr_ctx.value, p->gr_ctx.length,
-- p->gr_major, p->gr_minor, p->gr_win,
-- p->gr_token.value, p->gr_token.length);
--
-- return (xdr_stat);
--}
--
--bool_t
--xdr_rpc_gss_wrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
-- gss_ctx_id_t ctx, gss_qop_t qop,
-- rpc_gss_svc_t svc, u_int seq)
--{
-- gss_buffer_desc databuf, wrapbuf;
-- OM_uint32 maj_stat, min_stat;
-- int start, end, conf_state;
-- bool_t xdr_stat;
--
-- /* Skip databody length. */
-- start = XDR_GETPOS(xdrs);
-- XDR_SETPOS(xdrs, start + 4);
--
-- /* Marshal rpc_gss_data_t (sequence number + arguments). */
-- if (!xdr_u_int(xdrs, &seq) || !(*xdr_func)(xdrs, xdr_ptr))
-- return (FALSE);
-- end = XDR_GETPOS(xdrs);
--
-- /* Set databuf to marshalled rpc_gss_data_t. */
-- databuf.length = end - start - 4;
-- XDR_SETPOS(xdrs, start + 4);
-- databuf.value = XDR_INLINE(xdrs, databuf.length);
--
-- xdr_stat = FALSE;
--
-- if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
-- /* Marshal databody_integ length. */
-- XDR_SETPOS(xdrs, start);
-- if (!xdr_u_int(xdrs, &databuf.length))
-- return (FALSE);
--
-- /* Checksum rpc_gss_data_t. */
-- maj_stat = gss_get_mic(&min_stat, ctx, qop,
-- &databuf, &wrapbuf);
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_debug("gss_get_mic failed");
-- return (FALSE);
-- }
-- /* Marshal checksum. */
-- XDR_SETPOS(xdrs, end);
-- xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
-- &wrapbuf.length, MAX_NETOBJ_SZ);
-- gss_release_buffer(&min_stat, &wrapbuf);
-- }
-- else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
-- /* Encrypt rpc_gss_data_t. */
-- maj_stat = gss_wrap(&min_stat, ctx, TRUE, qop, &databuf,
-- &conf_state, &wrapbuf);
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_wrap", maj_stat, min_stat);
-- return (FALSE);
-- }
-- /* Marshal databody_priv. */
-- XDR_SETPOS(xdrs, start);
-- xdr_stat = xdr_bytes(xdrs, (char **)&wrapbuf.value,
-- &wrapbuf.length, MAX_NETOBJ_SZ);
-- gss_release_buffer(&min_stat, &wrapbuf);
-- }
-- return (xdr_stat);
--}
--
--bool_t
--xdr_rpc_gss_unwrap_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
-- gss_ctx_id_t ctx, gss_qop_t qop,
-- rpc_gss_svc_t svc, u_int seq)
--{
-- XDR tmpxdrs;
-- gss_buffer_desc databuf, wrapbuf;
-- OM_uint32 maj_stat, min_stat;
-- u_int seq_num, conf_state, qop_state;
-- bool_t xdr_stat;
--
-- if (xdr_func == xdr_void || xdr_ptr == NULL)
-- return (TRUE);
--
-- memset(&databuf, 0, sizeof(databuf));
-- memset(&wrapbuf, 0, sizeof(wrapbuf));
--
-- if (svc == RPCSEC_GSS_SVC_INTEGRITY) {
-- /* Decode databody_integ. */
-- if (!xdr_bytes(xdrs, (char **)&databuf.value, &databuf.length,
-- MAX_NETOBJ_SZ)) {
-- log_debug("xdr decode databody_integ failed");
-- return (FALSE);
-- }
-- /* Decode checksum. */
-- if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
-- MAX_NETOBJ_SZ)) {
-- gss_release_buffer(&min_stat, &databuf);
-- log_debug("xdr decode checksum failed");
-- return (FALSE);
-- }
-- /* Verify checksum and QOP. */
-- maj_stat = gss_verify_mic(&min_stat, ctx, &databuf,
-- &wrapbuf, &qop_state);
-- gss_release_buffer(&min_stat, &wrapbuf);
--
-- if (maj_stat != GSS_S_COMPLETE || qop_state != qop) {
-- gss_release_buffer(&min_stat, &databuf);
-- log_status("gss_verify_mic", maj_stat, min_stat);
-- return (FALSE);
-- }
-- }
-- else if (svc == RPCSEC_GSS_SVC_PRIVACY) {
-- /* Decode databody_priv. */
-- if (!xdr_bytes(xdrs, (char **)&wrapbuf.value, &wrapbuf.length,
-- MAX_NETOBJ_SZ)) {
-- log_debug("xdr decode databody_priv failed");
-- return (FALSE);
-- }
-- /* Decrypt databody. */
-- maj_stat = gss_unwrap(&min_stat, ctx, &wrapbuf, &databuf,
-- &conf_state, &qop_state);
--
-- gss_release_buffer(&min_stat, &wrapbuf);
--
-- /* Verify encryption and QOP. */
-- if (maj_stat != GSS_S_COMPLETE || qop_state != qop ||
-- conf_state != TRUE) {
-- gss_release_buffer(&min_stat, &databuf);
-- log_status("gss_unwrap", maj_stat, min_stat);
-- return (FALSE);
-- }
-- }
-- /* Decode rpc_gss_data_t (sequence number + arguments). */
-- xdrmem_create(&tmpxdrs, databuf.value, databuf.length, XDR_DECODE);
-- xdr_stat = (xdr_u_int(&tmpxdrs, &seq_num) &&
-- (*xdr_func)(&tmpxdrs, xdr_ptr));
-- XDR_DESTROY(&tmpxdrs);
-- gss_release_buffer(&min_stat, &databuf);
--
-- /* Verify sequence number. */
-- if (xdr_stat == TRUE && seq_num != seq) {
-- log_debug("wrong sequence number in databody");
-- return (FALSE);
-- }
-- return (xdr_stat);
--}
--
--bool_t
--xdr_rpc_gss_data(XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr,
-- gss_ctx_id_t ctx, gss_qop_t qop,
-- rpc_gss_svc_t svc, u_int seq)
--{
-- switch (xdrs->x_op) {
--
-- case XDR_ENCODE:
-- return (xdr_rpc_gss_wrap_data(xdrs, xdr_func, xdr_ptr,
-- ctx, qop, svc, seq));
-- case XDR_DECODE:
-- return (xdr_rpc_gss_unwrap_data(xdrs, xdr_func, xdr_ptr,
-- ctx, qop,svc, seq));
-- case XDR_FREE:
-- return (TRUE);
-- }
-- return (FALSE);
--}
--
--#ifdef DEBUG
--#include <ctype.h>
--
--void
--log_debug(const char *fmt, ...)
--{
-- va_list ap;
--
-- va_start(ap, fmt);
-- fprintf(stderr, "rpcsec_gss: ");
-- vfprintf(stderr, fmt, ap);
-- fprintf(stderr, "\n");
-- va_end(ap);
--}
--
--void
--log_status(char *m, OM_uint32 maj_stat, OM_uint32 min_stat)
--{
-- OM_uint32 min;
-- gss_buffer_desc msg;
-- int msg_ctx = 0;
--
-- fprintf(stderr, "rpcsec_gss: %s: ", m);
--
-- gss_display_status(&min, maj_stat, GSS_C_GSS_CODE, GSS_C_NULL_OID,
-- &msg_ctx, &msg);
-- fprintf(stderr, "%s - ", (char *)msg.value);
-- gss_release_buffer(&min, &msg);
--
-- gss_display_status(&min, min_stat, GSS_C_MECH_CODE, GSS_C_NULL_OID,
-- &msg_ctx, &msg);
-- fprintf(stderr, "%s\n", (char *)msg.value);
-- gss_release_buffer(&min, &msg);
--}
--
--void
--log_hexdump(const u_char *buf, int len, int offset)
--{
-- u_int i, j, jm;
-- int c;
--
-- fprintf(stderr, "\n");
-- for (i = 0; i < len; i += 0x10) {
-- fprintf(stderr, " %04x: ", (u_int)(i + offset));
-- jm = len - i;
-- jm = jm > 16 ? 16 : jm;
--
-- for (j = 0; j < jm; j++) {
-- if ((j % 2) == 1)
-- fprintf(stderr, "%02x ", (u_int) buf[i+j]);
-- else
-- fprintf(stderr, "%02x", (u_int) buf[i+j]);
-- }
-- for (; j < 16; j++) {
-- if ((j % 2) == 1) printf(" ");
-- else fprintf(stderr, " ");
-- }
-- fprintf(stderr, " ");
--
-- for (j = 0; j < jm; j++) {
-- c = buf[i+j];
-- c = isprint(c) ? c : '.';
-- fprintf(stderr, "%c", c);
-- }
-- fprintf(stderr, "\n");
-- }
--}
--
--#else
--
--void
--log_debug(const char *fmt, ...)
--{
--}
--
--void
--log_status(char *m, OM_uint32 maj_stat, OM_uint32 min_stat)
--{
--}
--
--void
--log_hexdump(const u_char *buf, int len, int offset)
--{
--}
--
--#endif
--
--
-diff -puN -L support/rpc/DISCLAIMER support/rpc/DISCLAIMER~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/DISCLAIMER
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,30 +0,0 @@
--/* $OpenBSD: DISCLAIMER,v 1.2 1996/07/20 06:12:14 deraadt Exp $ */
--
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
-diff -puN support/rpc/include/rpc/auth_gss.h~CITI_NFS4_ALL support/rpc/include/rpc/auth_gss.h
---- nfs-utils-1.0.7/support/rpc/include/rpc/auth_gss.h~CITI_NFS4_ALL 2005-05-06 15:19:25.015738000 -0400
-+++ nfs-utils-1.0.7-kwc/support/rpc/include/rpc/auth_gss.h 2005-05-06 15:19:25.961448000 -0400
-@@ -37,9 +37,8 @@
- #ifndef _RPC_AUTH_GSS_H
- #define _RPC_AUTH_GSS_H
-
--#include "config.h"
- #include <rpc/clnt.h>
--#include "../../../include/gssapi/gssapi.h"
-+#include <gssapi/gssapi.h>
-
- /* RPCSEC_GSS control procedures. */
- typedef enum {
-diff -puN -L support/rpc/Makefile support/rpc/Makefile~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/Makefile
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,18 +0,0 @@
--#
--# librpc.a
--# rpc library with rpcsec_gss
--#
--
--LIBNAME = librpc.a
--SRCS = auth_gss.c authgss_prot.c svc.c svc_run.c svc_auth.c \
-- svc_auth_none.c svc_auth_unix.c svc_auth_gss.c \
-- svc_raw.c svc_simple.c svc_tcp.c svc_udp.c \
-- rpc_commondata.c
--OBJS = $(SRCS:.c=.o)
--
--include $(TOP)rules.mk
--
--CFLAGS += -I$(TOP)support/rpc/include -DDEBUG
--
--install::
-- @:
-diff -puN -L support/rpc/README support/rpc/README~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/README
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,233 +0,0 @@
--RPCSRC 4.0 7/11/89
--
--This distribution contains Sun Microsystem's implementation of the
--RPC and XDR protocols and is compatible with 4.2BSD and 4.3BSD. Also
--included is complete documentation, utilities, RPC service
--specification files, and demonstration services in the format used by
--the RPC protocol compiler (rpcgen). See WHAT'S NEW below for
--details.
--
--NOTE ABOUT SECURE RPC:
--
--This release of RPCSRC contains most of the code needed to implement
--Secure RPC (see "DES Authentication" in the RPC Protocol Specification,
--doc/rpc.rfc.ms). Due to legal considerations, we are unable to
--distribute an implementation of DES, the Data Encryption Standard, which
--Secure RPC requires. For this reason, all of the files, documentation, and
--programs associated with Secure RPC have been placed into a separate
--directory, secure_rpc. The RPC library contained in the main body of this
--release *DOES NOT* support Secure RPC. See secure_rpc/README for more
--details. (A DES library was posted in Volume 18 of comp.sources.unix.)
--
--If you wish to report bugs found in this release, send mail to:
--
--Portable ONC/NFS
--Sun Microsystems, Inc
--MS 12-33
--2550 Garcia Avenue
--Mountain View, CA 94043
--
--or send Email to nfsnet@sun.com (the Internet) or sun!nfsnet (Usenet).
--
--ROADMAP
--
--The directory hierarchy is as follows:
--
-- demo/ Various demonstration services
-- demo/dir Remote directory lister
-- demo/msg Remote console message delivery service
-- demo/sort Remote sort service
--
-- doc/ Documentation for RPC, XDR and NFS in "-ms" format.
--
-- etc/ Utilities (rpcinfo and portmap). portmap must be
-- started by root before any other RPC network services are
-- used. SEE BELOW FOR BUGFIX TO 4.3BSD COMPILER.
--
-- man/ Manual pages for RPC library, rpcgen, and utilities.
--
-- rpc/ The RPC and XDR library. SEE BELOW
-- FOR BUGFIX TO 4.2BSD COMPILER.
--
-- rpcgen/ The RPC Language compiler (for .x files)
--
-- rpcsvc/ Service definition files for various services and the
-- server and client code for the Remote Status service.
--
-- secure_rpc/ The files in this directory are used to build a version of
-- the RPC library with DES Authentication. See the README
-- file in that directory for more details.
--
--BUILD INSTRUCTIONS
--
--Makefiles can be found in all directories except for man. The
--Makefile in the top directory will cause these others to be invoked
--(except for in the doc, man and demo directories), in turn building the
--entire release.
--
--WARNING! THE DEFAULT INSTALLATION PROCEDURES WILL INSTALL FILES
--IN /usr/include, /usr/lib, /usr/bin and /etc.
--
--The master RPC include file, rpc/rpc.h, is used by all programs and
--routines that use RPC. It includes other RPC and system include files
--needed by the RPC system. PLEASE NOTE: If your system has NFS, it
--may have been based on Sun's NFS Source. The include files installed
--by this package may duplicate include files you will find on your NFS
--system. The RPCSRC 4.0 include files are upwardly compatible to all
--NFS Source include files as of the date of this distribution (not
--including any new definitions or declarations added by your system
--vendor). HOWEVER: Please read the comments towards the end of
--rpc/rpc.h regarding rpc/netdb.h. You may need to uncomment the
--inclusion of that file if the structures it defines are already
--defined by your system's include files.
--
--After making any compiler fixes that are needed (see below), at
--the top directory, type:
--
-- make install
--
--For all installations, the Makefile macro DESTDIR is prepended to the
--installation path. It is defined to be null in the Makefiles, so
--installations are relative to root. (You will probably need root
--privileges for installing the files under the default path.) To
--install the files under some other tree (e.g., /usr/local), use the
--command:
--
-- make install DESTDIR=/usr/local
--
--This will place the include files in /usr/local/usr/include, the RPC
--library in /usr/local/usr/lib, rpcgen in /usr/local/usr/bin, and the
--utilities in /usr/local/etc. You'll have to edit the Makefiles or
--install the files by hand if you want to do anything other than this
--kind of relocation of the installation tree.
--
--The RPC library will be built and installed first. By default it is
--installed in /usr/lib as "librpclib.a". The directory
--/usr/include/rpc will also be created, and several header files will
--be installed there. ALL RPC SERVICES INCLUDE THESE HEADER FILES.
--
--The programs in etc/ link in routines from librpclib.a. If you change
--where it is installed, be sure to edit etc/'s Makefile to reflect this.
--These programs are installed in /etc. PORTMAP MUST BE RUNNING ON
--YOUR SYSTEM BEFORE YOU START ANY OTHER RPC SERVICE.
--
--rpcgen is installed in /usr/bin. This program is required to build
--the demonstration services in demo and the rstat client and server in
--rpcsvc/.
--
--The rpcsvc/ directory will install its files in the directory
--/usr/include/rpcsvc. The Remote Status service (rstat_svc) will be
--compiled and installed in /etc. If you wish to make this service
--available, you should either start this service when needed or have
--it started at boot time by invoking it in your /etc/rc.local script.
--(Be sure that portmap is started first!) Sun has modified its
--version of inetd to automatically start RPC services. (Use "make
--LIB=" when building rstat on a Sun Workstation.) The Remote Status
--client (rstat) will be installed in /usr/bin. This program queries
--the rstat_svc on a remote host and prints a system status summary
--similar to the one printed by "uptime".
--
--The documentation is not built during the "make install" command.
--Typing "make" in the doc directory will cause all of the manuals to
--be formatted using nroff into a single file. We have had a report
--that certain "troff" equivalents have trouble processing the full
--manual. If you have trouble, try building the manuals individually
--(see the Makefile).
--
--The demonstration services in the demo directory are not built by the
--top-level "make install" command. To build these, cd to the demo
--directory and enter "make". The three services will be built.
--RPCGEN MUST BE INSTALLED in a path that make can find. To run the
--services, start the portmap program as root and invoke the service
--(you probably will want to put it in the background). rpcinfo can be
--used to check that the service succeeded in getting registered with
--portmap, and to ping the service (see rpcinfo's man page). You can
--then use the corresponding client program to exercise the service.
--To build these services on a Sun workstation, you must prevent the
--Makefile from trying to link the RPC library (as these routines are
--already a part of Sun's libc). Use: "make LIB=".
--
--BUGFIX FOR 4.3BSD COMPILER
--
--The use of a 'void *' declaration for one of the arguments in
--the reply_proc() procedure in etc/rpcinfo.c will trigger a bug
--in the 4.3BSD compiler. The bug is fixed by the following change to
--the compiler file mip/manifest.h:
--
--*** manifest.h.r1.1 Thu Apr 30 13:52:25 1987
----- manifest.h.r1.2 Mon Nov 23 18:58:17 1987
--***************
--*** 21,27 ****
-- /*
-- * Bogus type values
-- */
--! #define TNULL PTR /* pointer to UNDEF */
-- #define TVOID FTN /* function returning UNDEF (for void) */
--
-- /*
----- 21,27 ----
-- /*
-- * Bogus type values
-- */
--! #define TNULL INCREF(MOETY) /* pointer to MOETY -- impossible type */
-- #define TVOID FTN /* function returning UNDEF (for void) */
--
-- /*
--
--If you cannot fix your compiler, change the declaration in reply_proc()
--from 'void *' to 'char *'.
--
--BUGFIX FOR 4.2BSD COMPILER
--
--Unpatched 4.2BSD compilers complain about valid C. You can make old
--compilers happy by changing some voids to ints. However, the fix to
--the 4.2 VAX compiler is as follows (to mip/trees.c):
--
--*** trees.c.r1.1 Mon May 11 13:47:58 1987
----- trees.c.r1.2 Wed Jul 2 18:28:52 1986
--***************
--*** 1247,1253 ****
-- if(o==CAST && mt1==0)return(TYPL+TYMATCH);
-- if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
-- else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
--! else if( mt12 == 0 ) break;
-- else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
-- else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
-- break;
----- 1261,1269 ----
-- if(o==CAST && mt1==0)return(TYPL+TYMATCH);
-- if( mt12 & MDBI ) return( TYPL+LVAL+TYMATCH );
-- else if( (mt1&MENU)||(mt2&MENU) ) return( LVAL+NCVT+TYPL+PTMATCH+PUN );
--! /* if right is TVOID and looks like a CALL, is not ok */
--! else if (mt2 == 0 && (p->in.right->in.op == CALL || p->in.right->in.op == UNARY CALL))
--! break;
-- else if( mt1 & MPTR ) return( LVAL+PTMATCH+PUN );
-- else if( mt12 & MPTI ) return( TYPL+LVAL+TYMATCH+PUN );
-- break;
--
--WHAT'S NEW IN THIS RELEASE: RPCSRC 4.0
--
--The previous release was RPCSRC 3.9. As with all previous releases,
--this release is based directly on files from Sun Microsystem's
--implementation.
--
--Upgrade from RPCSRC 3.9
--
--1) RPCSRC 4.0 upgrades RPCSRC 3.9. Improvements from SunOS 4.0 have
-- been integrated into this release.
--
--Secure RPC (in the secure_rpc/ directory)
--
--2) DES Authentication routines and programs are provided.
--3) A new manual, "Secure NFS" is provided, which describes Secure RPC
-- and Secure NFS.
--4) Skeleton routines and manual pages are provided which describe the
-- DES encryption procedures required by Secure RPC. HOWEVER, NO DES
-- ROUTINE IS PROVIDED.
--
--New Functionality
--
--5) rpcinfo can now be used to de-register services from the portmapper
-- which may have terminated abnormally.
--6) A new client, rstat, is provided which queries the rstat_svc and
-- prints a status line similar to the one displayed by "uptime".
-diff -puN -L support/rpc/rpc_commondata.c support/rpc/rpc_commondata.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/rpc_commondata.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,42 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: rpc_commondata.c,v 1.3 1996/08/19 08:31:47 tholo Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--#include <rpc/rpc.h>
--/*
-- * This file should only contain common data (global data) that is exported
-- * by public interfaces
-- */
--struct opaque_auth _null_auth;
--fd_set svc_fdset;
--int svc_maxfd = -1;
--struct rpc_createerr rpc_createerr;
-diff -puN -L support/rpc/svc_auth.c support/rpc/svc_auth.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_auth.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,113 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_auth.c,v 1.4 1998/03/19 00:27:22 millert Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_auth_nodes.c, Server-side rpc authenticator interface,
-- * *WITHOUT* DES authentication.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <rpc/rpc.h>
--
--/*
-- * svcauthsw is the bdevsw of server side authentication.
-- *
-- * Server side authenticators are called from authenticate by
-- * using the client auth struct flavor field to index into svcauthsw.
-- * The server auth flavors must implement a routine that looks
-- * like:
-- *
-- * enum auth_stat
-- * flavorx_auth(rqst, msg)
-- * register struct svc_req *rqst;
-- * register struct rpc_msg *msg;
-- *
-- */
--
--enum auth_stat _svcauth_none(); /* no authentication */
--enum auth_stat _svcauth_unix(); /* unix style (uid, gids) */
--enum auth_stat _svcauth_short(); /* short hand unix style */
--enum auth_stat _svcauth_gss(); /* RPCSEC_GSS */
--
--static struct {
-- enum auth_stat (*authenticator)();
--} svcauthsw[] = {
-- { _svcauth_none }, /* AUTH_NONE */
-- { _svcauth_unix }, /* AUTH_UNIX */
-- { _svcauth_short }, /* AUTH_SHORT */
-- { _svcauth_none }, /* AUTH_DES - does not exist */
-- { _svcauth_none },
-- { _svcauth_none },
-- { _svcauth_gss } /* RPCSEC_GSS */
--};
--#define AUTH_MAX 6 /* HIGHEST AUTH NUMBER */
--
--/*
-- * The call rpc message, msg has been obtained from the wire. The msg contains
-- * the raw form of credentials and verifiers. authenticate returns AUTH_OK
-- * if the msg is successfully authenticated. If AUTH_OK then the routine also
-- * does the following things:
-- * set rqst->rq_xprt->verf to the appropriate response verifier;
-- * sets rqst->rq_clntcred to the "cooked" form of the credentials.
-- *
-- * NB: rqst->rq_xprt->verf must be pre-alloctaed;
-- * its length is set appropriately.
-- *
-- * The caller still owns and is responsible for msg->u.cmb.cred and
-- * msg->u.cmb.verf. The authentication system retains ownership of
-- * rqst->rq_clntcred, the cooked credentials.
-- *
-- * There is an assumption that any flavour less than AUTH_NONE is
-- * invalid.
-- */
--enum auth_stat
--_authenticate(rqst, msg, no_dispatch)
-- register struct svc_req *rqst;
-- struct rpc_msg *msg;
-- bool_t *no_dispatch;
--{
-- register int cred_flavor;
--
-- rqst->rq_cred = msg->rm_call.cb_cred;
-- rqst->rq_xprt->xp_verf.oa_flavor = _null_auth.oa_flavor;
-- rqst->rq_xprt->xp_verf.oa_length = 0;
-- cred_flavor = rqst->rq_cred.oa_flavor;
-- *no_dispatch = FALSE;
--
-- if ((cred_flavor <= AUTH_MAX) && (cred_flavor >= AUTH_NONE)) {
-- return ((*(svcauthsw[cred_flavor].authenticator))(rqst, msg, no_dispatch));
-- }
--
-- return (AUTH_REJECTEDCRED);
--}
-diff -puN -L support/rpc/svc_auth_gss.c support/rpc/svc_auth_gss.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_auth_gss.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,582 +0,0 @@
--/*
-- svc_auth_gss.c
--
-- Copyright (c) 2000 The Regents of the University of Michigan.
-- All rights reserved.
--
-- Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
-- All rights reserved, all wrongs reversed.
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions
-- are met:
--
-- 1. Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- 2. Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- 3. Neither the name of the University nor the names of its
-- contributors may be used to endorse or promote products derived
-- from this software without specific prior written permission.
--
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-- DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
-- */
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <rpc/rpc.h>
--#include <gssapi/gssapi.h>
--
--extern SVCAUTH svc_auth_none;
--
--/*
-- * from mit-krb5-1.2.1 mechglue/mglueP.h:
-- * Array of context IDs typed by mechanism OID
-- */
--typedef struct gss_union_ctx_id_t {
-- gss_OID mech_type;
-- gss_ctx_id_t internal_ctx_id;
--} gss_union_ctx_id_desc, *gss_union_ctx_id_t;
--
--
--
--static bool_t svcauth_gss_destroy();
--static bool_t svcauth_gss_wrap();
--static bool_t svcauth_gss_unwrap();
--
--struct svc_auth_ops svc_auth_gss_ops = {
-- svcauth_gss_wrap,
-- svcauth_gss_unwrap,
-- svcauth_gss_destroy
--};
--
--struct svc_rpc_gss_data {
-- bool_t established; /* context established */
-- gss_ctx_id_t ctx; /* context id */
-- struct rpc_gss_sec sec; /* security triple */
-- gss_buffer_desc cname; /* GSS client name */
-- u_int seq; /* sequence number */
-- u_int win; /* sequence window */
-- u_int seqlast; /* last sequence number */
-- u_int32_t seqmask; /* bitmask of seqnums */
-- gss_name_t client_name; /* unparsed name string */
--};
--
--#define SVCAUTH_PRIVATE(auth) \
-- ((struct svc_rpc_gss_data *)(auth)->svc_ah_private)
--
--/* Global server credentials. */
--gss_cred_id_t _svcauth_gss_creds;
--static gss_name_t _svcauth_gss_name = NULL;
--
--bool_t
--svcauth_gss_set_svc_name(gss_name_t name)
--{
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in svcauth_gss_set_svc_name()");
--
-- if (_svcauth_gss_name != NULL) {
-- maj_stat = gss_release_name(&min_stat, &_svcauth_gss_name);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_release_name", maj_stat, min_stat);
-- return (FALSE);
-- }
-- _svcauth_gss_name = NULL;
-- }
-- maj_stat = gss_duplicate_name(&min_stat, name, &_svcauth_gss_name);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_duplicate_name", maj_stat, min_stat);
-- return (FALSE);
-- }
--
-- return (TRUE);
--}
--
--static bool_t
--svcauth_gss_import_name(char *service)
--{
-- gss_name_t name;
-- gss_buffer_desc namebuf;
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in svcauth_gss_import_name()");
--
-- namebuf.value = service;
-- namebuf.length = strlen(service);
--
-- maj_stat = gss_import_name(&min_stat, &namebuf,
-- GSS_C_NT_HOSTBASED_SERVICE, &name);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_import_name", maj_stat, min_stat);
-- return (FALSE);
-- }
-- if (svcauth_gss_set_svc_name(name) != TRUE) {
-- gss_release_name(&min_stat, &name);
-- return (FALSE);
-- }
-- return (TRUE);
--}
--
--static bool_t
--svcauth_gss_acquire_cred(void)
--{
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in svcauth_gss_acquire_cred()");
--
-- maj_stat = gss_acquire_cred(&min_stat, _svcauth_gss_name, 0,
-- GSS_C_NULL_OID_SET, GSS_C_ACCEPT,
-- &_svcauth_gss_creds, NULL, NULL);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_acquire_cred", maj_stat, min_stat);
-- return (FALSE);
-- }
-- return (TRUE);
--}
--
--static bool_t
--svcauth_gss_release_cred(void)
--{
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in svcauth_gss_release_cred()");
--
-- maj_stat = gss_release_cred(&min_stat, &_svcauth_gss_creds);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_release_cred", maj_stat, min_stat);
-- return (FALSE);
-- }
--
-- _svcauth_gss_creds = NULL;
--
-- return (TRUE);
--}
--
--static bool_t
--svcauth_gss_accept_sec_context(struct svc_req *rqst,
-- struct rpc_gss_init_res *gr)
--{
-- struct svc_rpc_gss_data *gd;
-- struct rpc_gss_cred *gc;
-- gss_buffer_desc recv_tok, seqbuf, checksum;
-- gss_OID mech;
-- OM_uint32 maj_stat = 0, min_stat = 0, ret_flags, seq;
--
-- log_debug("in svcauth_gss_accept_context()");
--
-- gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
-- gc = (struct rpc_gss_cred *)rqst->rq_clntcred;
-- memset(gr, 0, sizeof(*gr));
--
-- /* Deserialize arguments. */
-- memset(&recv_tok, 0, sizeof(recv_tok));
--
-- if (!svc_getargs(rqst->rq_xprt, xdr_rpc_gss_init_args,
-- (caddr_t)&recv_tok))
-- return (FALSE);
--
-- gr->gr_major = gss_accept_sec_context(&gr->gr_minor,
-- &gd->ctx,
-- _svcauth_gss_creds,
-- &recv_tok,
-- GSS_C_NO_CHANNEL_BINDINGS,
-- &gd->client_name,
-- &mech,
-- &gr->gr_token,
-- &ret_flags,
-- NULL,
-- NULL);
--
-- if (gr->gr_major != GSS_S_COMPLETE &&
-- gr->gr_major != GSS_S_CONTINUE_NEEDED) {
-- log_status("accept_sec_context", gr->gr_major, gr->gr_minor);
-- gd->ctx = GSS_C_NO_CONTEXT;
-- gss_release_buffer(&min_stat, &gr->gr_token);
-- return (FALSE);
-- }
-- /* ANDROS: krb5 mechglue returns ctx of size 8 - two pointers,
-- * one to the mechanism oid, one to the internal_ctx_id */
-- if ((gr->gr_ctx.value = mem_alloc(sizeof(gss_union_ctx_id_desc))) == NULL) {
-- fprintf(stderr, "svcauth_gss_accept_context: out of memory\n");
-- return (FALSE);
-- }
-- memcpy(gr->gr_ctx.value, gd->ctx, sizeof(gss_union_ctx_id_desc));
-- gr->gr_ctx.length = sizeof(gss_union_ctx_id_desc);
--
-- /* ANDROS: change for debugging linux kernel version...
-- gr->gr_win = sizeof(gd->seqmask) * 8;
-- */
-- gr->gr_win = 0x00000005;
--
-- /* Save client info. */
-- gd->sec.mech = mech;
-- gd->sec.qop = GSS_C_QOP_DEFAULT;
-- gd->sec.svc = gc->gc_svc;
-- gd->seq = gc->gc_seq;
-- gd->win = gr->gr_win;
--
-- if (gr->gr_major == GSS_S_COMPLETE) {
-- maj_stat = gss_display_name(&min_stat, gd->client_name,
-- &gd->cname, &gd->sec.mech);
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("display_name", maj_stat, min_stat);
-- return (FALSE);
-- }
--#ifdef DEBUG
--#ifdef HAVE_KRB5
-- {
-- gss_buffer_desc mechname;
--
-- gss_oid_to_str(&min_stat, mech, &mechname);
--
-- log_debug("accepted context for %.*s with "
-- "<mech %.*s, qop %d, svc %d>",
-- gd->cname.length, (char *)gd->cname.value,
-- mechname.length, (char *)mechname.value,
-- gd->sec.qop, gd->sec.svc);
--
-- gss_release_buffer(&min_stat, &mechname);
-- }
--#elif HAVE_HEIMDAL
-- log_debug("accepted context for %.*s with "
-- "<mech {}, qop %d, svc %d>",
-- gd->cname.length, (char *)gd->cname.value,
-- gd->sec.qop, gd->sec.svc);
--#endif
--#endif /* DEBUG */
-- seq = htonl(gr->gr_win);
-- seqbuf.value = &seq;
-- seqbuf.length = sizeof(seq);
--
-- maj_stat = gss_sign(&min_stat, gd->ctx, GSS_C_QOP_DEFAULT,
-- &seqbuf, &checksum);
--
-- if (maj_stat != GSS_S_COMPLETE)
-- return (FALSE);
--
-- rqst->rq_xprt->xp_verf.oa_flavor = RPCSEC_GSS;
-- rqst->rq_xprt->xp_verf.oa_base = checksum.value;
-- rqst->rq_xprt->xp_verf.oa_length = checksum.length;
-- }
-- return (TRUE);
--}
--
--static bool_t
--svcauth_gss_validate(struct svc_rpc_gss_data *gd, struct rpc_msg *msg)
--{
-- struct opaque_auth *oa;
-- gss_buffer_desc rpcbuf, checksum;
-- OM_uint32 maj_stat, min_stat, qop_state;
-- u_char rpchdr[128];
-- int32_t *buf;
--
-- log_debug("in svcauth_gss_validate()");
--
-- memset(rpchdr, 0, sizeof(rpchdr));
--
-- /* XXX - Reconstruct RPC header for signing (from xdr_callmsg). */
-- buf = (int32_t *)rpchdr;
-- IXDR_PUT_LONG(buf, msg->rm_xid);
-- IXDR_PUT_ENUM(buf, msg->rm_direction);
-- IXDR_PUT_LONG(buf, msg->rm_call.cb_rpcvers);
-- IXDR_PUT_LONG(buf, msg->rm_call.cb_prog);
-- IXDR_PUT_LONG(buf, msg->rm_call.cb_vers);
-- IXDR_PUT_LONG(buf, msg->rm_call.cb_proc);
-- oa = &msg->rm_call.cb_cred;
-- IXDR_PUT_ENUM(buf, oa->oa_flavor);
-- IXDR_PUT_LONG(buf, oa->oa_length);
-- if (oa->oa_length) {
-- memcpy((caddr_t)buf, oa->oa_base, oa->oa_length);
-- buf += RNDUP(oa->oa_length) / sizeof(int32_t);
-- }
-- rpcbuf.value = rpchdr;
-- rpcbuf.length = (u_char *)buf - rpchdr;
--
-- checksum.value = msg->rm_call.cb_verf.oa_base;
-- checksum.length = msg->rm_call.cb_verf.oa_length;
--
-- maj_stat = gss_verify_mic(&min_stat, gd->ctx, &rpcbuf, &checksum,
-- &qop_state);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_verify_mic", maj_stat, min_stat);
-- return (FALSE);
-- }
-- return (TRUE);
--}
--
--bool_t
--svcauth_gss_nextverf(struct svc_req *rqst, u_int num)
--{
-- struct svc_rpc_gss_data *gd;
-- gss_buffer_desc signbuf, checksum;
-- OM_uint32 maj_stat, min_stat;
--
-- log_debug("in svcauth_gss_nextverf()");
--
-- if (rqst->rq_xprt->xp_auth == NULL)
-- return (FALSE);
--
-- gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
--
-- signbuf.value = #
-- signbuf.length = sizeof(num);
--
-- maj_stat = gss_get_mic(&min_stat, gd->ctx, gd->sec.qop,
-- &signbuf, &checksum);
--
-- if (maj_stat != GSS_S_COMPLETE) {
-- log_status("gss_get_mic", maj_stat, min_stat);
-- return (FALSE);
-- }
-- rqst->rq_xprt->xp_verf.oa_flavor = RPCSEC_GSS;
-- rqst->rq_xprt->xp_verf.oa_base = (caddr_t)checksum.value;
-- rqst->rq_xprt->xp_verf.oa_length = (u_int)checksum.length;
--
-- return (TRUE);
--}
--
--enum auth_stat
--_svcauth_gss(struct svc_req *rqst, struct rpc_msg *msg, bool_t *no_dispatch)
--{
-- XDR xdrs;
-- SVCAUTH *auth;
-- struct svc_rpc_gss_data *gd;
-- struct rpc_gss_cred *gc;
-- struct rpc_gss_init_res gr;
-- int call_stat, offset;
--
-- log_debug("in svcauth_gss()");
--
-- /* Initialize reply. */
-- rqst->rq_xprt->xp_verf = _null_auth;
--
-- /* Allocate and set up server auth handle. */
-- if (rqst->rq_xprt->xp_auth == NULL ||
-- rqst->rq_xprt->xp_auth == &svc_auth_none) {
-- if ((auth = calloc(sizeof(*auth), 1)) == NULL) {
-- fprintf(stderr, "svcauth_gss: out_of_memory\n");
-- return (AUTH_FAILED);
-- }
-- if ((gd = calloc(sizeof(*gd), 1)) == NULL) {
-- fprintf(stderr, "svcauth_gss: out_of_memory\n");
-- return (AUTH_FAILED);
-- }
-- auth->svc_ah_ops = &svc_auth_gss_ops;
-- SVCAUTH_PRIVATE(auth) = gd;
-- rqst->rq_xprt->xp_auth = auth;
-- }
-- else gd = SVCAUTH_PRIVATE(rqst->rq_xprt->xp_auth);
--
-- /* Deserialize client credentials. */
-- if (rqst->rq_cred.oa_length <= 0)
-- return (AUTH_BADCRED);
--
-- gc = (struct rpc_gss_cred *)rqst->rq_clntcred;
-- memset(gc, 0, sizeof(*gc));
--
-- xdrmem_create(&xdrs, rqst->rq_cred.oa_base,
-- rqst->rq_cred.oa_length, XDR_DECODE);
--
-- if (!xdr_rpc_gss_cred(&xdrs, gc)) {
-- XDR_DESTROY(&xdrs);
-- return (AUTH_BADCRED);
-- }
-- XDR_DESTROY(&xdrs);
--
-- /* Check version. */
-- if (gc->gc_v != RPCSEC_GSS_VERSION)
-- return (AUTH_BADCRED);
--
-- /* Check RPCSEC_GSS service. */
-- if (gc->gc_svc != RPCSEC_GSS_SVC_NONE &&
-- gc->gc_svc != RPCSEC_GSS_SVC_INTEGRITY &&
-- gc->gc_svc != RPCSEC_GSS_SVC_PRIVACY)
-- return (AUTH_BADCRED);
--
-- /* Check sequence number. */
-- if (gd->established) {
-- if (gc->gc_seq > MAXSEQ)
-- return (RPCSEC_GSS_CTXPROBLEM);
--
-- if ((offset = gd->seqlast - gc->gc_seq) < 0) {
-- gd->seqlast = gc->gc_seq;
-- offset = 0 - offset;
-- gd->seqmask <<= offset;
-- offset = 0;
-- }
-- else if (offset >= gd->win || (gd->seqmask & (1 << offset))) {
-- *no_dispatch = 1;
-- return (RPCSEC_GSS_CTXPROBLEM);
-- }
-- gd->seq = gc->gc_seq;
-- gd->seqmask |= (1 << offset);
-- }
--
-- if (gd->established) {
-- rqst->rq_clntname = (char *)gd->client_name;
-- rqst->rq_svcname = (char *)gd->ctx;
-- }
--
-- /* Handle RPCSEC_GSS control procedure. */
-- switch (gc->gc_proc) {
--
-- case RPCSEC_GSS_INIT:
-- case RPCSEC_GSS_CONTINUE_INIT:
-- if (rqst->rq_proc != NULLPROC)
-- return (AUTH_FAILED); /* XXX ? */
--
-- if (_svcauth_gss_name == NULL) {
-- if (!svcauth_gss_import_name("nfs"))
-- return (AUTH_FAILED);
-- }
--
-- if (!svcauth_gss_acquire_cred())
-- return (AUTH_FAILED);
--
-- if (!svcauth_gss_accept_sec_context(rqst, &gr))
-- return (AUTH_REJECTEDCRED);
--
-- if (!svcauth_gss_nextverf(rqst, htonl(gr.gr_win)))
-- return (AUTH_FAILED);
--
-- *no_dispatch = TRUE;
--
-- call_stat = svc_sendreply(rqst->rq_xprt, xdr_rpc_gss_init_res,
-- (caddr_t)&gr);
--
-- if (!call_stat)
-- return (AUTH_FAILED);
--
-- if (gr.gr_major == GSS_S_COMPLETE)
-- gd->established = TRUE;
--
-- break;
--
-- case RPCSEC_GSS_DATA:
-- if (!svcauth_gss_validate(gd, msg))
-- return (RPCSEC_GSS_CREDPROBLEM);
--
-- if (!svcauth_gss_nextverf(rqst, htonl(gc->gc_seq)))
-- return (AUTH_FAILED);
-- break;
--
-- case RPCSEC_GSS_DESTROY:
-- if (rqst->rq_proc != NULLPROC)
-- return (AUTH_FAILED); /* XXX ? */
--
-- if (!svcauth_gss_validate(gd, msg))
-- return (RPCSEC_GSS_CREDPROBLEM);
--
-- if (!svcauth_gss_nextverf(rqst, htonl(gc->gc_seq)))
-- return (AUTH_FAILED);
--
-- if (!svcauth_gss_release_cred())
-- return (AUTH_FAILED);
--
-- SVCAUTH_DESTROY(rqst->rq_xprt->xp_auth);
-- rqst->rq_xprt->xp_auth = &svc_auth_none;
--
-- break;
--
-- default:
-- return (AUTH_REJECTEDCRED);
-- break;
-- }
-- return (AUTH_OK);
--}
--
--bool_t
--svcauth_gss_destroy(SVCAUTH *auth)
--{
-- struct svc_rpc_gss_data *gd;
-- OM_uint32 min_stat;
--
-- log_debug("in svcauth_gss_destroy()");
--
-- gd = SVCAUTH_PRIVATE(auth);
--
-- gss_delete_sec_context(&min_stat, &gd->ctx, GSS_C_NO_BUFFER);
-- gss_release_buffer(&min_stat, &gd->cname);
--
-- if (gd->client_name)
-- gss_release_name(&min_stat, &gd->client_name);
--
-- mem_free(gd, sizeof(*gd));
-- mem_free(auth, sizeof(*auth));
--
-- return (TRUE);
--}
--
--bool_t
--svcauth_gss_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
--{
-- struct svc_rpc_gss_data *gd;
--
-- log_debug("in svcauth_gss_wrap()");
--
-- gd = SVCAUTH_PRIVATE(auth);
--
-- if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
-- return ((*xdr_func)(xdrs, xdr_ptr));
-- }
-- return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
-- gd->ctx, gd->sec.qop,
-- gd->sec.svc, gd->seq));
--}
--
--bool_t
--svcauth_gss_unwrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr)
--{
-- struct svc_rpc_gss_data *gd;
--
-- log_debug("in svcauth_gss_unwrap()");
--
-- gd = SVCAUTH_PRIVATE(auth);
--
-- if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) {
-- return ((*xdr_func)(xdrs, xdr_ptr));
-- }
-- return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr,
-- gd->ctx, gd->sec.qop,
-- gd->sec.svc, gd->seq));
--}
--
--char *
--svcauth_gss_get_principal(SVCAUTH *auth)
--{
-- struct svc_rpc_gss_data *gd;
-- char *pname;
--
-- gd = SVCAUTH_PRIVATE(auth);
--
-- if (gd->cname.length == 0)
-- return (NULL);
--
-- if ((pname = malloc(gd->cname.length + 1)) == NULL)
-- return (NULL);
--
-- memcpy(pname, gd->cname.value, gd->cname.length);
-- pname[gd->cname.length] = '\0';
--
-- return (pname);
--}
-diff -puN -L support/rpc/svc_auth_none.c support/rpc/svc_auth_none.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_auth_none.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,73 +0,0 @@
--/*
-- svc_auth_none.c
--
-- Copyright (c) 2000 The Regents of the University of Michigan.
-- All rights reserved.
--
-- Copyright (c) 2000 Dug Song <dugsong@UMICH.EDU>.
-- All rights reserved, all wrongs reversed.
--
-- Redistribution and use in source and binary forms, with or without
-- modification, are permitted provided that the following conditions
-- are met:
--
-- 1. Redistributions of source code must retain the above copyright
-- notice, this list of conditions and the following disclaimer.
-- 2. Redistributions in binary form must reproduce the above copyright
-- notice, this list of conditions and the following disclaimer in the
-- documentation and/or other materials provided with the distribution.
-- 3. Neither the name of the University nor the names of its
-- contributors may be used to endorse or promote products derived
-- from this software without specific prior written permission.
--
-- THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
-- WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-- MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-- DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-- FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
-- BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-- LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-- NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--
-- $Id$
-- */
--
--#include <rpc/rpc.h>
--
--static bool_t svcauth_none_destroy();
--static bool_t svcauth_none_wrap();
--
--struct svc_auth_ops svc_auth_none_ops = {
-- svcauth_none_wrap,
-- svcauth_none_wrap,
-- svcauth_none_destroy
--};
--
--SVCAUTH svc_auth_none = {
-- &svc_auth_none_ops,
-- NULL,
--};
--
--static bool_t
--svcauth_none_destroy(SVCAUTH *auth)
--{
-- return (TRUE);
--}
--
--static bool_t
--svcauth_none_wrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func,
-- caddr_t xdr_ptr)
--{
-- return ((*xdr_func)(xdrs, xdr_ptr));
--}
--
--enum auth_stat
--_svcauth_none(struct svc_req *rqst, struct rpc_msg *msg)
--{
-- rqst->rq_xprt->xp_auth = &svc_auth_none;
--
-- return (AUTH_OK);
--}
-diff -puN -L support/rpc/svc_auth_unix.c support/rpc/svc_auth_unix.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_auth_unix.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,140 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_auth_unix.c,v 1.6 1998/11/22 07:38:25 deraadt Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_auth_unix.c
-- * Handles UNIX flavor authentication parameters on the service side of rpc.
-- * There are two svc auth implementations here: AUTH_UNIX and AUTH_SHORT.
-- * _svcauth_unix does full blown unix style uid,gid+gids auth,
-- * _svcauth_short uses a shorthand auth to index into a cache of longhand auths.
-- * Note: the shorthand has been gutted for efficiency.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <stdio.h>
--#include <rpc/rpc.h>
--#include <string.h>
--
--extern SVCAUTH svc_auth_none;
--
--/*
-- * Unix longhand authenticator
-- */
--enum auth_stat
--_svcauth_unix(rqst, msg)
-- register struct svc_req *rqst;
-- register struct rpc_msg *msg;
--{
-- register enum auth_stat stat;
-- XDR xdrs;
-- register struct authunix_parms *aup;
-- register int32_t *buf;
-- struct area {
-- struct authunix_parms area_aup;
-- char area_machname[MAX_MACHINE_NAME+1];
-- int area_gids[NGRPS];
-- } *area;
-- u_int auth_len;
-- u_int str_len, gid_len;
-- register u_int i;
--
-- rqst->rq_xprt->xp_auth = &svc_auth_none;
--
-- area = (struct area *) rqst->rq_clntcred;
-- aup = &area->area_aup;
-- aup->aup_machname = area->area_machname;
-- aup->aup_gids = area->area_gids;
-- auth_len = (u_int)msg->rm_call.cb_cred.oa_length;
-- xdrmem_create(&xdrs, msg->rm_call.cb_cred.oa_base, auth_len,XDR_DECODE);
-- buf = XDR_INLINE(&xdrs, auth_len);
-- if (buf != NULL) {
-- aup->aup_time = IXDR_GET_LONG(buf);
-- str_len = IXDR_GET_U_LONG(buf);
-- if (str_len > MAX_MACHINE_NAME) {
-- stat = AUTH_BADCRED;
-- goto done;
-- }
-- memcpy(aup->aup_machname, (caddr_t)buf, (u_int)str_len);
-- aup->aup_machname[str_len] = 0;
-- str_len = RNDUP(str_len);
-- buf += str_len / sizeof (int32_t);
-- aup->aup_uid = IXDR_GET_LONG(buf);
-- aup->aup_gid = IXDR_GET_LONG(buf);
-- gid_len = IXDR_GET_U_LONG(buf);
-- if (gid_len > NGRPS) {
-- stat = AUTH_BADCRED;
-- goto done;
-- }
-- aup->aup_len = gid_len;
-- for (i = 0; i < gid_len; i++) {
-- aup->aup_gids[i] = IXDR_GET_LONG(buf);
-- }
-- /*
-- * five is the smallest unix credentials structure -
-- * timestamp, hostname len (0), uid, gid, and gids len (0).
-- */
-- if ((5 + gid_len) * BYTES_PER_XDR_UNIT + str_len > auth_len) {
-- (void) printf("bad auth_len gid %u str %u auth %u\n",
-- gid_len, str_len, auth_len);
-- stat = AUTH_BADCRED;
-- goto done;
-- }
-- } else if (! xdr_authunix_parms(&xdrs, aup)) {
-- xdrs.x_op = XDR_FREE;
-- (void)xdr_authunix_parms(&xdrs, aup);
-- stat = AUTH_BADCRED;
-- goto done;
-- }
-- rqst->rq_xprt->xp_verf.oa_flavor = AUTH_NULL;
-- rqst->rq_xprt->xp_verf.oa_length = 0;
-- stat = AUTH_OK;
--done:
-- XDR_DESTROY(&xdrs);
-- return (stat);
--}
--
--
--/*
-- * Shorthand unix authenticator
-- * Looks up longhand in a cache.
-- */
--enum auth_stat
--_svcauth_short(rqst, msg)
-- struct svc_req *rqst;
-- struct rpc_msg *msg;
--{
-- rqst->rq_xprt->xp_auth = &svc_auth_none;
--
-- return (AUTH_REJECTEDCRED);
--}
-diff -puN -L support/rpc/svc.c support/rpc/svc.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,508 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc.c,v 1.11 1998/02/25 12:21:18 deraadt Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc.c, Server-side remote procedure call interface.
-- *
-- * There are two sets of procedures here. The xprt routines are
-- * for handling transport handles. The svc routines handle the
-- * list of service routines.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <stdlib.h>
--#include <string.h>
--
--#include <sys/param.h>
--#include <sys/errno.h>
--#include <rpc/rpc.h>
--#include <rpc/pmap_clnt.h>
--
--static SVCXPRT **xports;
--static int xportssize;
--
--#define NULL_SVC ((struct svc_callout *)0)
--#define RQCRED_SIZE 1024 /* this size is excessive */
--
--#define max(a, b) (a > b ? a : b)
--
--#if 0
--#ifdef __linux__
--#define fds_bits __fds_bits /* XXX - Linux sux */
--#endif
--#endif
--
--/*
-- * The services list
-- * Each entry represents a set of procedures (an rpc program).
-- * The dispatch routine takes request structs and runs the
-- * apropriate procedure.
-- */
--static struct svc_callout {
-- struct svc_callout *sc_next;
-- u_long sc_prog;
-- u_long sc_vers;
-- void (*sc_dispatch)();
--} *svc_head;
--
--static struct svc_callout *svc_find();
--
--int __svc_fdsetsize;
--fd_set *__svc_fdset;
--
--/* *************** SVCXPRT related stuff **************** */
--
--/*
-- * Activate a transport handle.
-- */
--void
--xprt_register(xprt)
-- SVCXPRT *xprt;
--{
-- register int sock = xprt->xp_sock;
--
-- if (sock+1 > __svc_fdsetsize) {
-- int bytes = howmany(sock+1, NFDBITS) * sizeof(fd_mask);
-- fd_set *fds;
--
-- fds = (fd_set *)malloc(bytes);
-- memset(fds, 0, bytes);
-- if (__svc_fdset) {
-- memcpy(fds, __svc_fdset, howmany(__svc_fdsetsize,
-- NFDBITS) * sizeof(fd_mask));
-- free(__svc_fdset);
-- }
-- __svc_fdset = fds;
-- __svc_fdsetsize = sock+1;
-- }
--
-- if (sock < FD_SETSIZE)
-- FD_SET(sock, &svc_fdset);
-- FD_SET(sock, __svc_fdset);
--
-- if (xports == NULL || sock+1 > xportssize) {
-- SVCXPRT **xp;
-- int size = FD_SETSIZE;
--
-- if (sock+1 > size)
-- size = sock+1;
-- xp = (SVCXPRT **)mem_alloc(size * sizeof(SVCXPRT *));
-- memset(xp, 0, size * sizeof(SVCXPRT *));
-- if (xports) {
-- memcpy(xp, xports, xportssize * sizeof(SVCXPRT *));
-- free(xports);
-- }
-- xportssize = size;
-- xports = xp;
-- }
-- xports[sock] = xprt;
-- svc_maxfd = max(svc_maxfd, sock);
--}
--
--/*
-- * De-activate a transport handle.
-- */
--void
--xprt_unregister(xprt)
-- SVCXPRT *xprt;
--{
-- register int sock = xprt->xp_sock;
--
-- if (xports[sock] == xprt) {
-- xports[sock] = (SVCXPRT *)0;
-- if (sock < FD_SETSIZE)
-- FD_CLR(sock, &svc_fdset);
-- FD_CLR(sock, __svc_fdset);
-- if (sock == svc_maxfd) {
-- for (svc_maxfd--; svc_maxfd>=0; svc_maxfd--)
-- if (xports[svc_maxfd])
-- break;
-- }
-- /*
-- * XXX could use svc_maxfd as a hint to
-- * decrease the size of __svc_fdset
-- */
-- }
--}
--
--
--/* ********************** CALLOUT list related stuff ************* */
--
--/*
-- * Add a service program to the callout list.
-- * The dispatch routine will be called when a rpc request for this
-- * program number comes in.
-- */
--bool_t
--svc_register(xprt, prog, vers, dispatch, protocol)
-- SVCXPRT *xprt;
-- u_long prog;
-- u_long vers;
-- void (*dispatch)();
-- int protocol;
--{
-- struct svc_callout *prev;
-- register struct svc_callout *s;
--
-- if ((s = svc_find(prog, vers, &prev)) != NULL_SVC) {
-- if (s->sc_dispatch == dispatch)
-- goto pmap_it; /* he is registering another xptr */
-- return (FALSE);
-- }
-- s = (struct svc_callout *)mem_alloc(sizeof(struct svc_callout));
-- if (s == (struct svc_callout *)0) {
-- return (FALSE);
-- }
-- s->sc_prog = prog;
-- s->sc_vers = vers;
-- s->sc_dispatch = dispatch;
-- s->sc_next = svc_head;
-- svc_head = s;
--pmap_it:
-- /* now register the information with the local binder service */
-- if (protocol) {
-- return (pmap_set(prog, vers, protocol, xprt->xp_port));
-- }
-- return (TRUE);
--}
--
--/*
-- * Remove a service program from the callout list.
-- */
--void
--svc_unregister(prog, vers)
-- u_long prog;
-- u_long vers;
--{
-- struct svc_callout *prev;
-- register struct svc_callout *s;
--
-- if ((s = svc_find(prog, vers, &prev)) == NULL_SVC)
-- return;
-- if (prev == NULL_SVC) {
-- svc_head = s->sc_next;
-- } else {
-- prev->sc_next = s->sc_next;
-- }
-- s->sc_next = NULL_SVC;
-- mem_free((char *) s, (u_int) sizeof(struct svc_callout));
-- /* now unregister the information with the local binder service */
-- (void)pmap_unset(prog, vers);
--}
--
--/*
-- * Search the callout list for a program number, return the callout
-- * struct.
-- */
--static struct svc_callout *
--svc_find(prog, vers, prev)
-- u_long prog;
-- u_long vers;
-- struct svc_callout **prev;
--{
-- register struct svc_callout *s, *p;
--
-- p = NULL_SVC;
-- for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
-- if ((s->sc_prog == prog) && (s->sc_vers == vers))
-- goto done;
-- p = s;
-- }
--done:
-- *prev = p;
-- return (s);
--}
--
--/* ******************* REPLY GENERATION ROUTINES ************ */
--
--/*
-- * Send a reply to an rpc request
-- */
--bool_t
--svc_sendreply(xprt, xdr_results, xdr_location)
-- register SVCXPRT *xprt;
-- xdrproc_t xdr_results;
-- caddr_t xdr_location;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = SUCCESS;
-- rply.acpted_rply.ar_results.where = xdr_location;
-- rply.acpted_rply.ar_results.proc = xdr_results;
-- return (SVC_REPLY(xprt, &rply));
--}
--
--/*
-- * No procedure error reply
-- */
--void
--svcerr_noproc(xprt)
-- register SVCXPRT *xprt;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = PROC_UNAVAIL;
-- SVC_REPLY(xprt, &rply);
--}
--
--/*
-- * Can't decode args error reply
-- */
--void
--svcerr_decode(xprt)
-- register SVCXPRT *xprt;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = GARBAGE_ARGS;
-- SVC_REPLY(xprt, &rply);
--}
--
--/*
-- * Some system error
-- */
--void
--svcerr_systemerr(xprt)
-- register SVCXPRT *xprt;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = SYSTEM_ERR;
-- SVC_REPLY(xprt, &rply);
--}
--
--/*
-- * Authentication error reply
-- */
--void
--svcerr_auth(xprt, why)
-- SVCXPRT *xprt;
-- enum auth_stat why;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_DENIED;
-- rply.rjcted_rply.rj_stat = AUTH_ERROR;
-- rply.rjcted_rply.rj_why = why;
-- SVC_REPLY(xprt, &rply);
--}
--
--/*
-- * Auth too weak error reply
-- */
--void
--svcerr_weakauth(xprt)
-- SVCXPRT *xprt;
--{
--
-- svcerr_auth(xprt, AUTH_TOOWEAK);
--}
--
--/*
-- * Program unavailable error reply
-- */
--void
--svcerr_noprog(xprt)
-- register SVCXPRT *xprt;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = PROG_UNAVAIL;
-- SVC_REPLY(xprt, &rply);
--}
--
--/*
-- * Program version mismatch error reply
-- */
--void
--svcerr_progvers(xprt, low_vers, high_vers)
-- register SVCXPRT *xprt;
-- u_long low_vers;
-- u_long high_vers;
--{
-- struct rpc_msg rply;
--
-- rply.rm_direction = REPLY;
-- rply.rm_reply.rp_stat = MSG_ACCEPTED;
-- rply.acpted_rply.ar_verf = xprt->xp_verf;
-- rply.acpted_rply.ar_stat = PROG_MISMATCH;
-- rply.acpted_rply.ar_vers.low = low_vers;
-- rply.acpted_rply.ar_vers.high = high_vers;
-- SVC_REPLY(xprt, &rply);
--}
--
--/* ******************* SERVER INPUT STUFF ******************* */
--
--/*
-- * Get server side input from some transport.
-- *
-- * Statement of authentication parameters management:
-- * This function owns and manages all authentication parameters, specifically
-- * the "raw" parameters (msg.rm_call.cb_cred and msg.rm_call.cb_verf) and
-- * the "cooked" credentials (rqst->rq_clntcred).
-- * However, this function does not know the structure of the cooked
-- * credentials, so it make the following assumptions:
-- * a) the structure is contiguous (no pointers), and
-- * b) the cred structure size does not exceed RQCRED_SIZE bytes.
-- * In all events, all three parameters are freed upon exit from this routine.
-- * The storage is trivially management on the call stack in user land, but
-- * is mallocated in kernel land.
-- */
--
--void
--svc_getreq(rdfds)
-- int rdfds;
--{
-- fd_set readfds;
--
-- FD_ZERO(&readfds);
-- readfds.fds_bits[0] = rdfds;
-- svc_getreqset(&readfds);
--}
--
--void svc_getreqset2 __P((fd_set *, int));
--
--void
--svc_getreqset(readfds)
-- fd_set *readfds;
--{
-- svc_getreqset2(readfds, FD_SETSIZE);
--}
--
--void
--svc_getreqset2(readfds, width)
-- fd_set *readfds;
-- int width;
--{
-- enum xprt_stat stat;
-- struct rpc_msg msg;
-- int prog_found;
-- u_long low_vers;
-- u_long high_vers;
-- struct svc_req r;
-- register SVCXPRT *xprt;
-- register int bit;
-- register fd_mask mask, *maskp;
-- register int sock;
-- bool_t no_dispatch;
-- char cred_area[2*MAX_AUTH_BYTES + RQCRED_SIZE];
-- msg.rm_call.cb_cred.oa_base = cred_area;
-- msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
-- r.rq_clntcred = &(cred_area[2*MAX_AUTH_BYTES]);
--
-- maskp = readfds->fds_bits;
-- for (sock = 0; sock < width; sock += NFDBITS) {
-- for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) {
-- /* sock has input waiting */
-- xprt = xports[sock + bit - 1];
-- if (xprt == NULL)
-- /* But do we control sock? */
-- continue;
-- /* now receive msgs from xprtprt (support batch calls) */
-- do {
-- if (SVC_RECV(xprt, &msg)) {
--
-- /* now find the exported program and call it */
-- register struct svc_callout *s;
-- enum auth_stat why;
--
-- r.rq_xprt = xprt;
-- r.rq_prog = msg.rm_call.cb_prog;
-- r.rq_vers = msg.rm_call.cb_vers;
-- r.rq_proc = msg.rm_call.cb_proc;
-- r.rq_cred = msg.rm_call.cb_cred;
--
-- no_dispatch = FALSE;
--
-- /* first authenticate the message */
-- if ((why = _authenticate(&r, &msg, &no_dispatch)) != AUTH_OK) {
-- svcerr_auth(xprt, why);
-- goto call_done;
-- }
-- else if (no_dispatch) {
-- goto call_done;
-- }
-- /* now match message with a registered service*/
-- prog_found = FALSE;
-- low_vers = (u_long) -1;
-- high_vers = 0;
-- for (s = svc_head; s != NULL_SVC; s = s->sc_next) {
-- if (s->sc_prog == r.rq_prog) {
-- if (s->sc_vers == r.rq_vers) {
-- (*s->sc_dispatch)(&r, xprt);
-- goto call_done;
-- } /* found correct version */
-- prog_found = TRUE;
-- if (s->sc_vers < low_vers)
-- low_vers = s->sc_vers;
-- if (s->sc_vers > high_vers)
-- high_vers = s->sc_vers;
-- } /* found correct program */
-- }
-- /*
-- * if we got here, the program or version
-- * is not served ...
-- */
-- if (prog_found)
-- svcerr_progvers(xprt,
-- low_vers, high_vers);
-- else
-- svcerr_noprog(xprt);
-- /* Fall through to ... */
-- }
-- call_done:
-- if ((stat = SVC_STAT(xprt)) == XPRT_DIED) {
-- SVC_DESTROY(xprt);
-- break;
-- }
-- } while (stat == XPRT_MOREREQS);
-- }
-- }
--}
-diff -puN -L support/rpc/svc_raw.c support/rpc/svc_raw.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_raw.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,171 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_raw.c,v 1.4 1996/09/15 09:31:39 tholo Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_raw.c, This a toy for simple testing and timing.
-- * Interface to create an rpc client and server in the same UNIX process.
-- * This lets us similate rpc and get rpc (round trip) overhead, without
-- * any interference from the kernal.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <stdlib.h>
--#include <rpc/rpc.h>
--
--
--/*
-- * This is the "network" that we will be moving data over
-- */
--static struct svcraw_private {
-- char _raw_buf[UDPMSGSIZE];
-- SVCXPRT server;
-- XDR xdr_stream;
-- char verf_body[MAX_AUTH_BYTES];
--} *svcraw_private;
--
--static bool_t svcraw_recv();
--static enum xprt_stat svcraw_stat();
--static bool_t svcraw_getargs();
--static bool_t svcraw_reply();
--static bool_t svcraw_freeargs();
--static void svcraw_destroy();
--
--static struct xp_ops server_ops = {
-- svcraw_recv,
-- svcraw_stat,
-- svcraw_getargs,
-- svcraw_reply,
-- svcraw_freeargs,
-- svcraw_destroy
--};
--
--SVCXPRT *
--svcraw_create()
--{
-- register struct svcraw_private *srp = svcraw_private;
--
-- if (srp == 0) {
-- srp = (struct svcraw_private *)calloc(1, sizeof (*srp));
-- if (srp == 0)
-- return (0);
-- }
-- srp->server.xp_sock = 0;
-- srp->server.xp_port = 0;
-- srp->server.xp_ops = &server_ops;
-- srp->server.xp_verf.oa_base = srp->verf_body;
-- xdrmem_create(&srp->xdr_stream, srp->_raw_buf, UDPMSGSIZE, XDR_FREE);
-- return (&srp->server);
--}
--
--static enum xprt_stat
--svcraw_stat()
--{
--
-- return (XPRT_IDLE);
--}
--
--/* ARGSUSED */
--static bool_t
--svcraw_recv(xprt, msg)
-- SVCXPRT *xprt;
-- struct rpc_msg *msg;
--{
-- register struct svcraw_private *srp = svcraw_private;
-- register XDR *xdrs;
--
-- if (srp == 0)
-- return (0);
-- xdrs = &srp->xdr_stream;
-- xdrs->x_op = XDR_DECODE;
-- XDR_SETPOS(xdrs, 0);
-- if (! xdr_callmsg(xdrs, msg))
-- return (FALSE);
-- return (TRUE);
--}
--
--/* ARGSUSED */
--static bool_t
--svcraw_reply(xprt, msg)
-- SVCXPRT *xprt;
-- struct rpc_msg *msg;
--{
-- register struct svcraw_private *srp = svcraw_private;
-- register XDR *xdrs;
--
-- if (srp == 0)
-- return (FALSE);
-- xdrs = &srp->xdr_stream;
-- xdrs->x_op = XDR_ENCODE;
-- XDR_SETPOS(xdrs, 0);
-- if (! xdr_replymsg(xdrs, msg))
-- return (FALSE);
-- (void)XDR_GETPOS(xdrs); /* called just for overhead */
-- return (TRUE);
--}
--
--/* ARGSUSED */
--static bool_t
--svcraw_getargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- register struct svcraw_private *srp = svcraw_private;
--
-- if (srp == 0)
-- return (FALSE);
-- return ((*xdr_args)(&srp->xdr_stream, args_ptr));
--}
--
--/* ARGSUSED */
--static bool_t
--svcraw_freeargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- register struct svcraw_private *srp = svcraw_private;
-- register XDR *xdrs;
--
-- if (srp == 0)
-- return (FALSE);
-- xdrs = &srp->xdr_stream;
-- xdrs->x_op = XDR_FREE;
-- return ((*xdr_args)(xdrs, args_ptr));
--}
--
--static void
--svcraw_destroy()
--{
--}
-diff -puN -L support/rpc/svc_run.c support/rpc/svc_run.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_run.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,84 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_run.c,v 1.10 1998/03/19 00:27:24 millert Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * This is the rpc server side idle loop
-- * Wait for input, call server program.
-- */
--#include <rpc/rpc.h>
--#include <sys/param.h>
--#include <sys/errno.h>
--#include <unistd.h>
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--
--extern int __svc_fdsetsize;
--extern fd_set *__svc_fdset;
--
--void svc_getreqset2 __P((fd_set *, int));
--
--void
--svc_run()
--{
-- fd_set *fds;
--
-- for (;;) {
-- if (__svc_fdset) {
-- int bytes = howmany(__svc_fdsetsize, NFDBITS) *
-- sizeof(fd_mask);
-- fds = (fd_set *)malloc(bytes);
-- memcpy(fds, __svc_fdset, bytes);
-- } else
-- fds = NULL;
-- switch (select(svc_maxfd+1, fds, 0, 0, (struct timeval *)0)) {
-- case -1:
-- if (errno == EINTR) {
-- if (fds)
-- free(fds);
-- continue;
-- }
-- perror("svc_run: - select failed");
-- if (fds)
-- free(fds);
-- return;
-- case 0:
-- if (fds)
-- free(fds);
-- continue;
-- default:
-- svc_getreqset2(fds, svc_maxfd+1);
-- free(fds);
-- }
-- }
--}
-diff -puN -L support/rpc/svc_simple.c support/rpc/svc_simple.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_simple.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,149 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_simple.c,v 1.6 1998/11/22 07:38:25 deraadt Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_simple.c
-- * Simplified front end to rpc.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <rpc/rpc.h>
--#include <rpc/pmap_clnt.h>
--#include <sys/socket.h>
--#include <netdb.h>
--
--static struct proglst {
-- char *(*p_progname)();
-- int p_prognum;
-- int p_procnum;
-- xdrproc_t p_inproc, p_outproc;
-- struct proglst *p_nxt;
--} *proglst;
--static void universal();
--static SVCXPRT *transp;
--struct proglst *pl;
--
--int
--registerrpc(prognum, versnum, procnum, progname, inproc, outproc)
-- int prognum, versnum, procnum;
-- char *(*progname)();
-- xdrproc_t inproc, outproc;
--{
--
-- if (procnum == NULLPROC) {
-- (void) fprintf(stderr,
-- "can't reassign procedure number %u\n", NULLPROC);
-- return (-1);
-- }
-- if (transp == 0) {
-- transp = svcudp_create(RPC_ANYSOCK);
-- if (transp == NULL) {
-- (void) fprintf(stderr, "couldn't create an rpc server\n");
-- return (-1);
-- }
-- }
-- (void) pmap_unset((u_long)prognum, (u_long)versnum);
-- if (!svc_register(transp, (u_long)prognum, (u_long)versnum,
-- universal, IPPROTO_UDP)) {
-- (void) fprintf(stderr, "couldn't register prog %d vers %d\n",
-- prognum, versnum);
-- return (-1);
-- }
-- pl = (struct proglst *)malloc(sizeof(struct proglst));
-- if (pl == NULL) {
-- (void) fprintf(stderr, "registerrpc: out of memory\n");
-- return (-1);
-- }
-- pl->p_progname = progname;
-- pl->p_prognum = prognum;
-- pl->p_procnum = procnum;
-- pl->p_inproc = inproc;
-- pl->p_outproc = outproc;
-- pl->p_nxt = proglst;
-- proglst = pl;
-- return (0);
--}
--
--static void
--universal(rqstp, transp)
-- struct svc_req *rqstp;
-- SVCXPRT *transp;
--{
-- int prog, proc;
-- char *outdata;
-- char xdrbuf[UDPMSGSIZE];
-- struct proglst *pl;
--
-- /*
-- * enforce "procnum 0 is echo" convention
-- */
-- if (rqstp->rq_proc == NULLPROC) {
-- if (svc_sendreply(transp, xdr_void, NULL) == FALSE) {
-- (void) fprintf(stderr, "xxx\n");
-- exit(1);
-- }
-- return;
-- }
-- prog = rqstp->rq_prog;
-- proc = rqstp->rq_proc;
-- for (pl = proglst; pl != NULL; pl = pl->p_nxt)
-- if (pl->p_prognum == prog && pl->p_procnum == proc) {
-- /* decode arguments into a CLEAN buffer */
-- memset(xdrbuf, 0, sizeof(xdrbuf)); /* required ! */
-- if (!svc_getargs(transp, pl->p_inproc, xdrbuf)) {
-- svcerr_decode(transp);
-- return;
-- }
-- outdata = (*(pl->p_progname))(xdrbuf);
-- if (outdata == NULL &&
-- pl->p_outproc != xdr_void)
-- /* there was an error */
-- return;
-- if (!svc_sendreply(transp, pl->p_outproc, outdata)) {
-- (void) fprintf(stderr,
-- "trouble replying to prog %d\n",
-- pl->p_prognum);
-- exit(1);
-- }
-- /* free the decoded arguments */
-- (void)svc_freeargs(transp, pl->p_inproc, xdrbuf);
-- return;
-- }
-- (void) fprintf(stderr, "never registered prog %d\n", prog);
-- exit(1);
--}
--
-diff -puN -L support/rpc/svc_tcp.c support/rpc/svc_tcp.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_tcp.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,528 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_tcp.c,v 1.18 1998/05/22 04:23:01 deraadt Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_tcp.c, Server side for TCP/IP based RPC.
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- *
-- * Actually implements two flavors of transporter -
-- * a tcp rendezvouser (a listner and connection establisher)
-- * and a record/tcp stream.
-- */
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <unistd.h>
--#include <rpc/rpc.h>
--#include <sys/param.h>
--#include <sys/socket.h>
--#include <errno.h>
--
--#include <netinet/in_systm.h>
--#include <netinet/in.h>
--#include <netinet/ip.h>
--#ifndef __linux__
--#include <netinet/ip_var.h>
--#endif
--
--/*
-- * Ops vector for TCP/IP based rpc service handle
-- */
--static bool_t svctcp_recv();
--static enum xprt_stat svctcp_stat();
--static bool_t svctcp_getargs();
--static bool_t svctcp_reply();
--static bool_t svctcp_freeargs();
--static void svctcp_destroy();
--
--static struct xp_ops svctcp_op = {
-- svctcp_recv,
-- svctcp_stat,
-- svctcp_getargs,
-- svctcp_reply,
-- svctcp_freeargs,
-- svctcp_destroy
--};
--
--/*
-- * Ops vector for TCP/IP rendezvous handler
-- */
--static bool_t rendezvous_request();
--static enum xprt_stat rendezvous_stat();
--
--static struct xp_ops svctcp_rendezvous_op = {
-- rendezvous_request,
-- rendezvous_stat,
-- (bool_t (*)())abort,
-- (bool_t (*)())abort,
-- (bool_t (*)())abort,
-- svctcp_destroy
--};
--
--static int readtcp(), writetcp();
--static SVCXPRT *makefd_xprt();
--
--struct tcp_rendezvous { /* kept in xprt->xp_p1 */
-- u_int sendsize;
-- u_int recvsize;
--};
--
--struct tcp_conn { /* kept in xprt->xp_p1 */
-- enum xprt_stat strm_stat;
-- u_long x_id;
-- XDR xdrs;
-- char verf_body[MAX_AUTH_BYTES];
--};
--
--/*
-- * Usage:
-- * xprt = svctcp_create(sock, send_buf_size, recv_buf_size);
-- *
-- * Creates, registers, and returns a (rpc) tcp based transporter.
-- * Once *xprt is initialized, it is registered as a transporter
-- * see (svc.h, xprt_register). This routine returns
-- * a NULL if a problem occurred.
-- *
-- * If sock<0 then a socket is created, else sock is used.
-- * If the socket, sock is not bound to a port then svctcp_create
-- * binds it to an arbitrary port. The routine then starts a tcp
-- * listener on the socket's associated port. In any (successful) case,
-- * xprt->xp_sock is the registered socket number and xprt->xp_port is the
-- * associated port number.
-- *
-- * Since tcp streams do buffered io similar to stdio, the caller can specify
-- * how big the send and receive buffers are via the second and third parms;
-- * 0 => use the system default.
-- */
--SVCXPRT *
--svctcp_create(sock, sendsize, recvsize)
-- register int sock;
-- u_int sendsize;
-- u_int recvsize;
--{
-- bool_t madesock = FALSE;
-- register SVCXPRT *xprt;
-- register struct tcp_rendezvous *r;
-- struct sockaddr_in addr;
-- int len = sizeof(struct sockaddr_in);
--
-- if (sock == RPC_ANYSOCK) {
-- if ((sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
-- perror("svctcp_.c - udp socket creation problem");
-- return ((SVCXPRT *)NULL);
-- }
-- madesock = TRUE;
-- }
-- memset(&addr, 0, sizeof (addr));
--#ifndef __linux__
-- addr.sin_len = sizeof(struct sockaddr_in);
--#endif
-- addr.sin_family = AF_INET;
-- if (bindresvport(sock, &addr)) {
-- addr.sin_port = 0;
-- (void)bind(sock, (struct sockaddr *)&addr, len);
-- }
-- if ((getsockname(sock, (struct sockaddr *)&addr, &len) != 0) ||
-- (listen(sock, 2) != 0)) {
-- perror("svctcp_.c - cannot getsockname or listen");
-- if (madesock)
-- (void)close(sock);
-- return ((SVCXPRT *)NULL);
-- }
-- r = (struct tcp_rendezvous *)mem_alloc(sizeof(*r));
-- if (r == NULL) {
-- (void)fprintf(stderr, "svctcp_create: out of memory\n");
-- if (madesock)
-- (void)close(sock);
-- return (NULL);
-- }
-- r->sendsize = sendsize;
-- r->recvsize = recvsize;
-- xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
-- if (xprt == NULL) {
-- (void)fprintf(stderr, "svctcp_create: out of memory\n");
-- if (madesock)
-- (void)close(sock);
-- free(r);
-- return (NULL);
-- }
-- xprt->xp_p2 = NULL;
-- xprt->xp_p1 = (caddr_t)r;
-- xprt->xp_auth = NULL;
-- xprt->xp_verf = _null_auth;
-- xprt->xp_ops = &svctcp_rendezvous_op;
-- xprt->xp_port = ntohs(addr.sin_port);
-- xprt->xp_sock = sock;
-- xprt_register(xprt);
-- return (xprt);
--}
--
--/*
-- * Like svtcp_create(), except the routine takes any *open* UNIX file
-- * descriptor as its first input.
-- */
--SVCXPRT *
--svcfd_create(fd, sendsize, recvsize)
-- int fd;
-- u_int sendsize;
-- u_int recvsize;
--{
--
-- return (makefd_xprt(fd, sendsize, recvsize));
--}
--
--static SVCXPRT *
--makefd_xprt(fd, sendsize, recvsize)
-- int fd;
-- u_int sendsize;
-- u_int recvsize;
--{
-- register SVCXPRT *xprt;
-- register struct tcp_conn *cd;
--
-- xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
-- if (xprt == (SVCXPRT *)NULL) {
-- (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
-- goto done;
-- }
-- cd = (struct tcp_conn *)mem_alloc(sizeof(struct tcp_conn));
-- if (cd == (struct tcp_conn *)NULL) {
-- (void) fprintf(stderr, "svc_tcp: makefd_xprt: out of memory\n");
-- mem_free((char *) xprt, sizeof(SVCXPRT));
-- xprt = (SVCXPRT *)NULL;
-- goto done;
-- }
-- cd->strm_stat = XPRT_IDLE;
-- xdrrec_create(&(cd->xdrs), sendsize, recvsize,
-- (caddr_t)xprt, readtcp, writetcp);
-- xprt->xp_p2 = NULL;
-- xprt->xp_p1 = (caddr_t)cd;
-- xprt->xp_auth = NULL;
-- xprt->xp_verf.oa_base = cd->verf_body;
-- xprt->xp_addrlen = 0;
-- xprt->xp_ops = &svctcp_op; /* truely deals with calls */
-- xprt->xp_port = 0; /* this is a connection, not a rendezvouser */
-- xprt->xp_sock = fd;
-- xprt_register(xprt);
-- done:
-- return (xprt);
--}
--
--static bool_t
--rendezvous_request(xprt)
-- register SVCXPRT *xprt;
--{
-- int sock;
-- struct tcp_rendezvous *r;
-- struct sockaddr_in addr;
-- int len;
--
-- r = (struct tcp_rendezvous *)xprt->xp_p1;
-- again:
-- len = sizeof(struct sockaddr_in);
-- if ((sock = accept(xprt->xp_sock, (struct sockaddr *)&addr,
-- &len)) < 0) {
-- if (errno == EINTR)
-- goto again;
-- return (FALSE);
-- }
--
--#ifdef IP_OPTIONS
-- {
--#ifdef __linux__
--#define ipopt_list ip_opts
-- struct ip_opts opts;
--#else
-- struct ipoption opts;
--#endif
-- int optsize = sizeof(opts), i;
--
-- if (!getsockopt(sock, IPPROTO_IP, IP_OPTIONS, (char *)&opts,
-- &optsize) && optsize != 0) {
-- for (i = 0; (char *)&opts.ipopt_list[i] - (char *)&opts <
-- optsize; ) {
-- u_char c = (u_char)opts.ipopt_list[i];
-- if (c == IPOPT_LSRR || c == IPOPT_SSRR) {
-- close(sock);
-- return (FALSE);
-- }
-- if (c == IPOPT_EOL)
-- break;
-- i += (c == IPOPT_NOP) ? 1 :
-- (u_char)opts.ipopt_list[i+1];
-- }
-- }
-- }
--#endif
--
-- /*
-- * XXX careful for ftp bounce attacks. If discovered, close the
-- * socket and look for another connection.
-- */
-- if (addr.sin_port == htons(20)) {
-- close(sock);
-- return (FALSE);
-- }
--
-- /*
-- * make a new transporter (re-uses xprt)
-- */
-- xprt = makefd_xprt(sock, r->sendsize, r->recvsize);
-- xprt->xp_raddr = addr;
-- xprt->xp_addrlen = len;
-- return (FALSE); /* there is never an rpc msg to be processed */
--}
--
--static enum xprt_stat
--rendezvous_stat()
--{
--
-- return (XPRT_IDLE);
--}
--
--static void
--svctcp_destroy(xprt)
-- register SVCXPRT *xprt;
--{
-- register struct tcp_conn *cd = (struct tcp_conn *)xprt->xp_p1;
--
-- xprt_unregister(xprt);
-- if (xprt->xp_sock != -1)
-- (void)close(xprt->xp_sock);
-- xprt->xp_sock = -1;
-- if (xprt->xp_port != 0) {
-- /* a rendezvouser socket */
-- xprt->xp_port = 0;
-- } else {
-- /* an actual connection socket */
-- XDR_DESTROY(&(cd->xdrs));
-- }
-- if (xprt->xp_auth != NULL) {
-- SVCAUTH_DESTROY(xprt->xp_auth);
-- xprt->xp_auth = NULL;
-- }
-- mem_free((caddr_t)cd, sizeof(struct tcp_conn));
-- mem_free((caddr_t)xprt, sizeof(SVCXPRT));
--}
--
--/*
-- * All read operations timeout after 35 seconds.
-- * A timeout is fatal for the connection.
-- */
--static struct timeval wait_per_try = { 35, 0 };
--
--/*
-- * reads data from the tcp conection.
-- * any error is fatal and the connection is closed.
-- * (And a read of zero bytes is a half closed stream => error.)
-- */
--static int
--readtcp(xprt, buf, len)
-- register SVCXPRT *xprt;
-- caddr_t buf;
-- register int len;
--{
-- register int sock = xprt->xp_sock;
-- struct timeval start, delta;
-- struct timeval tmp1, tmp2;
-- fd_set *fds = NULL;
-- int prevbytes = 0, bytes;
-- extern int __svc_fdsetsize;
-- extern fd_set *__svc_fdset;
--
-- delta = wait_per_try;
-- gettimeofday(&start, NULL);
-- do {
-- bytes = howmany(__svc_fdsetsize, NFDBITS) * sizeof(fd_mask);
-- if (bytes != prevbytes) {
-- if (fds)
-- free(fds);
-- fds = (fd_set *)malloc(bytes);
-- prevbytes = bytes;
-- }
-- if (fds == NULL)
-- goto fatal_err;
-- memcpy(fds, __svc_fdset, bytes);
--
-- FD_SET(sock, fds);
-- switch (select(svc_maxfd+1, fds, NULL, NULL, &delta)) {
-- case -1:
-- if (errno != EINTR)
-- goto fatal_err;
-- gettimeofday(&tmp1, NULL);
-- timersub(&tmp1, &start, &tmp2);
-- timersub(&wait_per_try, &tmp2, &tmp1);
-- if (tmp1.tv_sec < 0 || !timerisset(&tmp1))
-- goto fatal_err;
-- delta = tmp1;
-- continue;
-- case 0:
-- goto fatal_err;
-- default:
-- if (!FD_ISSET(sock, fds)) {
-- svc_getreqset2(fds, svc_maxfd+1);
-- gettimeofday(&tmp1, NULL);
-- timersub(&tmp1, &start, &tmp2);
-- timersub(&wait_per_try, &tmp2, &tmp1);
-- if (tmp1.tv_sec < 0 || !timerisset(&tmp1))
-- goto fatal_err;
-- delta = tmp1;
-- continue;
-- }
-- }
-- } while (!FD_ISSET(sock, fds));
-- if ((len = read(sock, buf, len)) > 0) {
-- if (fds)
-- free(fds);
-- return (len);
-- }
--fatal_err:
-- ((struct tcp_conn *)(xprt->xp_p1))->strm_stat = XPRT_DIED;
-- if (fds)
-- free(fds);
-- return (-1);
--}
--
--/*
-- * writes data to the tcp connection.
-- * Any error is fatal and the connection is closed.
-- */
--static int
--writetcp(xprt, buf, len)
-- register SVCXPRT *xprt;
-- caddr_t buf;
-- int len;
--{
-- register int i, cnt;
--
-- for (cnt = len; cnt > 0; cnt -= i, buf += i) {
-- if ((i = write(xprt->xp_sock, buf, cnt)) < 0) {
-- ((struct tcp_conn *)(xprt->xp_p1))->strm_stat =
-- XPRT_DIED;
-- return (-1);
-- }
-- }
-- return (len);
--}
--
--static enum xprt_stat
--svctcp_stat(xprt)
-- SVCXPRT *xprt;
--{
-- register struct tcp_conn *cd =
-- (struct tcp_conn *)(xprt->xp_p1);
--
-- if (cd->strm_stat == XPRT_DIED)
-- return (XPRT_DIED);
-- if (! xdrrec_eof(&(cd->xdrs)))
-- return (XPRT_MOREREQS);
-- return (XPRT_IDLE);
--}
--
--static bool_t
--svctcp_recv(xprt, msg)
-- SVCXPRT *xprt;
-- register struct rpc_msg *msg;
--{
-- register struct tcp_conn *cd =
-- (struct tcp_conn *)(xprt->xp_p1);
-- register XDR *xdrs = &(cd->xdrs);
--
-- xdrs->x_op = XDR_DECODE;
-- (void)xdrrec_skiprecord(xdrs);
-- if (xdr_callmsg(xdrs, msg)) {
-- cd->x_id = msg->rm_xid;
-- return (TRUE);
-- }
-- cd->strm_stat = XPRT_DIED; /* XXX */
-- return (FALSE);
--}
--
--static bool_t
--svctcp_getargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- return (SVCAUTH_UNWRAP(xprt->xp_auth,
-- &(((struct tcp_conn *)(xprt->xp_p1))->xdrs),
-- xdr_args, args_ptr));
--}
--
--static bool_t
--svctcp_freeargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- register XDR *xdrs =
-- &(((struct tcp_conn *)(xprt->xp_p1))->xdrs);
--
-- xdrs->x_op = XDR_FREE;
-- return ((*xdr_args)(xdrs, args_ptr));
--}
--
--static bool_t
--svctcp_reply(xprt, msg)
-- SVCXPRT *xprt;
-- register struct rpc_msg *msg;
--{
-- register struct tcp_conn *cd =
-- (struct tcp_conn *)(xprt->xp_p1);
-- register XDR *xdrs = &(cd->xdrs);
-- xdrproc_t xdr_proc;
-- caddr_t xdr_where;
--
-- xdrs->x_op = XDR_ENCODE;
-- msg->rm_xid = cd->x_id;
--
-- if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
-- msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
-- xdr_proc = msg->acpted_rply.ar_results.proc;
-- xdr_where = msg->acpted_rply.ar_results.where;
-- msg->acpted_rply.ar_results.proc = xdr_void;
-- msg->acpted_rply.ar_results.where = NULL;
--
-- if (!xdr_replymsg(xdrs, msg) ||
-- !SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_proc, xdr_where))
-- return (FALSE);
-- }
-- else if (!xdr_replymsg(xdrs, msg)) {
-- return (FALSE);
-- }
-- (void)xdrrec_endofrecord(xdrs, TRUE);
--
-- return (TRUE);
--}
-diff -puN -L support/rpc/svc_udp.c support/rpc/svc_udp.c~CITI_NFS4_ALL /dev/null
---- nfs-utils-1.0.7/support/rpc/svc_udp.c
-+++ /dev/null 2005-05-05 05:47:05.259725168 -0400
-@@ -1,516 +0,0 @@
--/*
-- * Sun RPC is a product of Sun Microsystems, Inc. and is provided for
-- * unrestricted use provided that this legend is included on all tape
-- * media and as a part of the software program in whole or part. Users
-- * may copy or modify Sun RPC without charge, but are not authorized
-- * to license or distribute it to anyone else except as part of a product or
-- * program developed by the user.
-- *
-- * SUN RPC IS PROVIDED AS IS WITH NO WARRANTIES OF ANY KIND INCLUDING THE
-- * WARRANTIES OF DESIGN, MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
-- * PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE OR TRADE PRACTICE.
-- *
-- * Sun RPC is provided with no support and without any obligation on the
-- * part of Sun Microsystems, Inc. to assist in its use, correction,
-- * modification or enhancement.
-- *
-- * SUN MICROSYSTEMS, INC. SHALL HAVE NO LIABILITY WITH RESPECT TO THE
-- * INFRINGEMENT OF COPYRIGHTS, TRADE SECRETS OR ANY PATENTS BY SUN RPC
-- * OR ANY PART THEREOF.
-- *
-- * In no event will Sun Microsystems, Inc. be liable for any lost revenue
-- * or profits or other special, indirect and consequential damages, even if
-- * Sun has been advised of the possibility of such damages.
-- *
-- * Sun Microsystems, Inc.
-- * 2550 Garcia Avenue
-- * Mountain View, California 94043
-- */
--
--#if defined(LIBC_SCCS) && !defined(lint)
--static char *rcsid = "$OpenBSD: svc_udp.c,v 1.8 1998/03/19 00:27:26 millert Exp $";
--#endif /* LIBC_SCCS and not lint */
--
--/*
-- * svc_udp.c,
-- * Server side for UDP/IP based RPC. (Does some caching in the hopes of
-- * achieving execute-at-most-once semantics.)
-- *
-- * Copyright (C) 1984, Sun Microsystems, Inc.
-- */
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <rpc/rpc.h>
--#include <sys/socket.h>
--#include <errno.h>
--#include <unistd.h>
--
--
--#define rpc_buffer(xprt) ((xprt)->xp_p1)
--#ifndef MAX
--#define MAX(a, b) ((a > b) ? a : b)
--#endif
--
--static bool_t svcudp_recv();
--static bool_t svcudp_reply();
--static enum xprt_stat svcudp_stat();
--static bool_t svcudp_getargs();
--static bool_t svcudp_freeargs();
--static void svcudp_destroy();
--static void cache_set __P((SVCXPRT *, u_long));
--static int cache_get __P((SVCXPRT *, struct rpc_msg *, char **, u_long *));
--
--static struct xp_ops svcudp_op = {
-- svcudp_recv,
-- svcudp_stat,
-- svcudp_getargs,
-- svcudp_reply,
-- svcudp_freeargs,
-- svcudp_destroy
--};
--
--/*
-- * kept in xprt->xp_p2
-- */
--struct svcudp_data {
-- u_int su_iosz; /* byte size of send.recv buffer */
-- u_long su_xid; /* transaction id */
-- XDR su_xdrs; /* XDR handle */
-- char su_verfbody[MAX_AUTH_BYTES]; /* verifier body */
-- char * su_cache; /* cached data, NULL if no cache */
--};
--#define su_data(xprt) ((struct svcudp_data *)(xprt->xp_p2))
--
--/*
-- * Usage:
-- * xprt = svcudp_create(sock);
-- *
-- * If sock<0 then a socket is created, else sock is used.
-- * If the socket, sock is not bound to a port then svcudp_create
-- * binds it to an arbitrary port. In any (successful) case,
-- * xprt->xp_sock is the registered socket number and xprt->xp_port is the
-- * associated port number.
-- * Once *xprt is initialized, it is registered as a transporter;
-- * see (svc.h, xprt_register).
-- * The routines returns NULL if a problem occurred.
-- */
--SVCXPRT *
--svcudp_bufcreate(sock, sendsz, recvsz)
-- register int sock;
-- u_int sendsz, recvsz;
--{
-- bool_t madesock = FALSE;
-- register SVCXPRT *xprt;
-- register struct svcudp_data *su;
-- struct sockaddr_in addr;
-- int len = sizeof(struct sockaddr_in);
--
-- if (sock == RPC_ANYSOCK) {
-- if ((sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0) {
-- perror("svcudp_create: socket creation problem");
-- return ((SVCXPRT *)NULL);
-- }
-- madesock = TRUE;
-- }
-- memset(&addr, 0, sizeof (addr));
--#ifndef __linux__
-- addr.sin_len = sizeof(struct sockaddr_in);
--#endif
-- addr.sin_family = AF_INET;
-- if (bindresvport(sock, &addr)) {
-- addr.sin_port = 0;
-- (void)bind(sock, (struct sockaddr *)&addr, len);
-- }
-- if (getsockname(sock, (struct sockaddr *)&addr, &len) != 0) {
-- perror("svcudp_create - cannot getsockname");
-- if (madesock)
-- (void)close(sock);
-- return ((SVCXPRT *)NULL);
-- }
-- xprt = (SVCXPRT *)mem_alloc(sizeof(SVCXPRT));
-- if (xprt == NULL) {
-- (void)fprintf(stderr, "svcudp_create: out of memory\n");
-- if (madesock)
-- (void)close(sock);
-- return (NULL);
-- }
-- su = (struct svcudp_data *)mem_alloc(sizeof(*su));
-- if (su == NULL) {
-- (void)fprintf(stderr, "svcudp_create: out of memory\n");
-- if (madesock)
-- (void)close(sock);
-- free(xprt);
-- return (NULL);
-- }
-- su->su_iosz = ((MAX(sendsz, recvsz) + 3) / 4) * 4;
-- if ((rpc_buffer(xprt) = mem_alloc(su->su_iosz)) == NULL) {
-- (void)fprintf(stderr, "svcudp_create: out of memory\n");
-- if (madesock)
-- (void)close(sock);
-- free(xprt);
-- free(su);
-- return (NULL);
-- }
-- xdrmem_create(
-- &(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, XDR_DECODE);
-- su->su_cache = NULL;
-- xprt->xp_p2 = (caddr_t)su;
-- xprt->xp_auth = NULL;
-- xprt->xp_verf.oa_base = su->su_verfbody;
-- xprt->xp_ops = &svcudp_op;
-- xprt->xp_port = ntohs(addr.sin_port);
-- xprt->xp_sock = sock;
-- xprt_register(xprt);
-- return (xprt);
--}
--
--SVCXPRT *
--svcudp_create(sock)
-- int sock;
--{
--
-- return(svcudp_bufcreate(sock, UDPMSGSIZE, UDPMSGSIZE));
--}
--
--/* ARGSUSED */
--static enum xprt_stat
--svcudp_stat(xprt)
-- SVCXPRT *xprt;
--{
--
-- return (XPRT_IDLE);
--}
--
--static bool_t
--svcudp_recv(xprt, msg)
-- register SVCXPRT *xprt;
-- struct rpc_msg *msg;
--{
-- register struct svcudp_data *su = su_data(xprt);
-- register XDR *xdrs = &(su->su_xdrs);
-- register int rlen;
-- char *reply;
-- u_long replylen;
--
-- again:
-- xprt->xp_addrlen = sizeof(struct sockaddr_in);
-- rlen = recvfrom(xprt->xp_sock, rpc_buffer(xprt), (int) su->su_iosz,
-- 0, (struct sockaddr *)&(xprt->xp_raddr), &(xprt->xp_addrlen));
-- if (rlen == -1 && errno == EINTR)
-- goto again;
-- if (rlen == -1 || rlen < 4*sizeof(u_int32_t))
-- return (FALSE);
-- xdrs->x_op = XDR_DECODE;
-- XDR_SETPOS(xdrs, 0);
-- if (! xdr_callmsg(xdrs, msg))
-- return (FALSE);
-- su->su_xid = msg->rm_xid;
-- if (su->su_cache != NULL) {
-- if (cache_get(xprt, msg, &reply, &replylen)) {
-- (void) sendto(xprt->xp_sock, reply, (int) replylen, 0,
-- (struct sockaddr *) &xprt->xp_raddr, xprt->xp_addrlen);
-- return (TRUE);
-- }
-- }
-- return (TRUE);
--}
--
--static bool_t
--svcudp_reply(xprt, msg)
-- register SVCXPRT *xprt;
-- struct rpc_msg *msg;
--{
-- register struct svcudp_data *su = su_data(xprt);
-- register XDR *xdrs = &(su->su_xdrs);
-- register int slen;
-- xdrproc_t xdr_proc;
-- caddr_t xdr_where;
--
-- xdrs->x_op = XDR_ENCODE;
-- XDR_SETPOS(xdrs, 0);
-- msg->rm_xid = su->su_xid;
--
-- if (msg->rm_reply.rp_stat == MSG_ACCEPTED &&
-- msg->rm_reply.rp_acpt.ar_stat == SUCCESS) {
-- xdr_proc = msg->acpted_rply.ar_results.proc;
-- xdr_where = msg->acpted_rply.ar_results.where;
-- msg->acpted_rply.ar_results.proc = xdr_void;
-- msg->acpted_rply.ar_results.where = NULL;
--
-- if (!xdr_replymsg(xdrs, msg) ||
-- !SVCAUTH_WRAP(xprt->xp_auth, xdrs, xdr_proc, xdr_where))
-- return (FALSE);
-- }
-- else if (!xdr_replymsg(xdrs, msg)) {
-- return (FALSE);
-- }
-- slen = (int)XDR_GETPOS(xdrs);
--
-- if (sendto(xprt->xp_sock, rpc_buffer(xprt), slen, 0,
-- (struct sockaddr *)&(xprt->xp_raddr), xprt->xp_addrlen)
-- != slen) {
-- return (FALSE);
-- }
-- if (su->su_cache && slen >= 0)
-- cache_set(xprt, (u_long) slen);
--
-- return (TRUE);
--}
--
--static bool_t
--svcudp_getargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- return (SVCAUTH_UNWRAP(xprt->xp_auth, &(su_data(xprt)->su_xdrs),
-- xdr_args, args_ptr));
--}
--
--static bool_t
--svcudp_freeargs(xprt, xdr_args, args_ptr)
-- SVCXPRT *xprt;
-- xdrproc_t xdr_args;
-- caddr_t args_ptr;
--{
-- register XDR *xdrs = &(su_data(xprt)->su_xdrs);
--
-- xdrs->x_op = XDR_FREE;
-- return ((*xdr_args)(xdrs, args_ptr));
--}
--
--static void
--svcudp_destroy(xprt)
-- register SVCXPRT *xprt;
--{
-- register struct svcudp_data *su = su_data(xprt);
--
-- xprt_unregister(xprt);
-- if (xprt->xp_sock != -1)
-- (void)close(xprt->xp_sock);
-- xprt->xp_sock = -1;
-- if (xprt->xp_auth != NULL) {
-- SVCAUTH_DESTROY(xprt->xp_auth);
-- xprt->xp_auth = NULL;
-- }
-- XDR_DESTROY(&(su->su_xdrs));
-- mem_free(rpc_buffer(xprt), su->su_iosz);
-- mem_free((caddr_t)su, sizeof(struct svcudp_data));
-- mem_free((caddr_t)xprt, sizeof(SVCXPRT));
--}
--
--
--/***********this could be a separate file*********************/
--
--/*
-- * Fifo cache for udp server
-- * Copies pointers to reply buffers into fifo cache
-- * Buffers are sent again if retransmissions are detected.
-- */
--
--#define SPARSENESS 4 /* 75% sparse */
--
--#define CACHE_PERROR(msg) \
-- (void) fprintf(stderr,"%s\n", msg)
--
--#define ALLOC(type, size) \
-- (type *) mem_alloc((unsigned) (sizeof(type) * (size)))
--
--#define BZERO(addr, type, size) \
-- memset((char *) addr, 0, sizeof(type) * (int) (size))
--
--/*
-- * An entry in the cache
-- */
--typedef struct cache_node *cache_ptr;
--struct cache_node {
-- /*
-- * Index into cache is xid, proc, vers, prog and address
-- */
-- u_long cache_xid;
-- u_long cache_proc;
-- u_long cache_vers;
-- u_long cache_prog;
-- struct sockaddr_in cache_addr;
-- /*
-- * The cached reply and length
-- */
-- char * cache_reply;
-- u_long cache_replylen;
-- /*
-- * Next node on the list, if there is a collision
-- */
-- cache_ptr cache_next;
--};
--
--
--
--/*
-- * The entire cache
-- */
--struct udp_cache {
-- u_long uc_size; /* size of cache */
-- cache_ptr *uc_entries; /* hash table of entries in cache */
-- cache_ptr *uc_fifo; /* fifo list of entries in cache */
-- u_long uc_nextvictim; /* points to next victim in fifo list */
-- u_long uc_prog; /* saved program number */
-- u_long uc_vers; /* saved version number */
-- u_long uc_proc; /* saved procedure number */
-- struct sockaddr_in uc_addr; /* saved caller's address */
--};
--
--
--/*
-- * the hashing function
-- */
--#define CACHE_LOC(transp, xid) \
-- (xid % (SPARSENESS*((struct udp_cache *) su_data(transp)->su_cache)->uc_size))
--
--
--/*
-- * Enable use of the cache.
-- * Note: there is no disable.
-- */
--int
--svcudp_enablecache(transp, size)
-- SVCXPRT *transp;
-- u_long size;
--{
-- struct svcudp_data *su = su_data(transp);
-- struct udp_cache *uc;
--
-- if (su->su_cache != NULL) {
-- CACHE_PERROR("enablecache: cache already enabled");
-- return(0);
-- }
-- uc = ALLOC(struct udp_cache, 1);
-- if (uc == NULL) {
-- CACHE_PERROR("enablecache: could not allocate cache");
-- return(0);
-- }
-- uc->uc_size = size;
-- uc->uc_nextvictim = 0;
-- uc->uc_entries = ALLOC(cache_ptr, size * SPARSENESS);
-- if (uc->uc_entries == NULL) {
-- CACHE_PERROR("enablecache: could not allocate cache data");
-- return(0);
-- }
-- BZERO(uc->uc_entries, cache_ptr, size * SPARSENESS);
-- uc->uc_fifo = ALLOC(cache_ptr, size);
-- if (uc->uc_fifo == NULL) {
-- CACHE_PERROR("enablecache: could not allocate cache fifo");
-- return(0);
-- }
-- BZERO(uc->uc_fifo, cache_ptr, size);
-- su->su_cache = (char *) uc;
-- return(1);
--}
--
--
--/*
-- * Set an entry in the cache
-- */
--static void
--cache_set(xprt, replylen)
-- SVCXPRT *xprt;
-- u_long replylen;
--{
-- register cache_ptr victim;
-- register cache_ptr *vicp;
-- register struct svcudp_data *su = su_data(xprt);
-- struct udp_cache *uc = (struct udp_cache *) su->su_cache;
-- u_int loc;
-- char *newbuf;
--
-- /*
-- * Find space for the new entry, either by
-- * reusing an old entry, or by mallocing a new one
-- */
-- victim = uc->uc_fifo[uc->uc_nextvictim];
-- if (victim != NULL) {
-- loc = CACHE_LOC(xprt, victim->cache_xid);
-- for (vicp = &uc->uc_entries[loc];
-- *vicp != NULL && *vicp != victim;
-- vicp = &(*vicp)->cache_next)
-- ;
-- if (*vicp == NULL) {
-- CACHE_PERROR("cache_set: victim not found");
-- return;
-- }
-- *vicp = victim->cache_next; /* remote from cache */
-- newbuf = victim->cache_reply;
-- } else {
-- victim = ALLOC(struct cache_node, 1);
-- if (victim == NULL) {
-- CACHE_PERROR("cache_set: victim alloc failed");
-- return;
-- }
-- newbuf = mem_alloc(su->su_iosz);
-- if (newbuf == NULL) {
-- CACHE_PERROR("cache_set: could not allocate new rpc_buffer");
-- return;
-- }
-- }
--
-- /*
-- * Store it away
-- */
-- victim->cache_replylen = replylen;
-- victim->cache_reply = rpc_buffer(xprt);
-- rpc_buffer(xprt) = newbuf;
-- xdrmem_create(&(su->su_xdrs), rpc_buffer(xprt), su->su_iosz, XDR_ENCODE);
-- victim->cache_xid = su->su_xid;
-- victim->cache_proc = uc->uc_proc;
-- victim->cache_vers = uc->uc_vers;
-- victim->cache_prog = uc->uc_prog;
-- victim->cache_addr = uc->uc_addr;
-- loc = CACHE_LOC(xprt, victim->cache_xid);
-- victim->cache_next = uc->uc_entries[loc];
-- uc->uc_entries[loc] = victim;
-- uc->uc_fifo[uc->uc_nextvictim++] = victim;
-- uc->uc_nextvictim %= uc->uc_size;
--}
--
--/*
-- * Try to get an entry from the cache
-- * return 1 if found, 0 if not found
-- */
--static int
--cache_get(xprt, msg, replyp, replylenp)
-- SVCXPRT *xprt;
-- struct rpc_msg *msg;
-- char **replyp;
-- u_long *replylenp;
--{
-- u_int loc;
-- register cache_ptr ent;
-- register struct svcudp_data *su = su_data(xprt);
-- register struct udp_cache *uc = (struct udp_cache *) su->su_cache;
--
--# define EQADDR(a1, a2) (memcmp(&a1, &a2, sizeof(a1)) == 0)
--
-- loc = CACHE_LOC(xprt, su->su_xid);
-- for (ent = uc->uc_entries[loc]; ent != NULL; ent = ent->cache_next) {
-- if (ent->cache_xid == su->su_xid &&
-- ent->cache_proc == uc->uc_proc &&
-- ent->cache_vers == uc->uc_vers &&
-- ent->cache_prog == uc->uc_prog &&
-- EQADDR(ent->cache_addr, uc->uc_addr)) {
-- *replyp = ent->cache_reply;
-- *replylenp = ent->cache_replylen;
-- return(1);
-- }
-- }
-- /*
-- * Failed to find entry
-- * Remember a few things so we can do a set later
-- */
-- uc->uc_proc = msg->rm_call.cb_proc;
-- uc->uc_vers = msg->rm_call.cb_vers;
-- uc->uc_prog = msg->rm_call.cb_prog;
-- uc->uc_addr = xprt->xp_raddr;
-- return(0);
--}
--
-diff -puN utils/gssd/gssd.c~CITI_NFS4_ALL utils/gssd/gssd.c
---- nfs-utils-1.0.7/utils/gssd/gssd.c~CITI_NFS4_ALL 2005-05-06 15:19:26.142447000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/gssd.c 2005-05-06 15:19:26.301305000 -0400
-@@ -36,6 +36,8 @@
-
- */
-
-+#include "config.h"
-+
- #include <sys/param.h>
- #include <sys/socket.h>
- #include <rpc/rpc.h>
-@@ -66,7 +68,7 @@ sig_die(int signal)
- static void
- usage(char *progname)
- {
-- fprintf(stderr, "usage: %s [-f] [-v] [-p pipefsdir] [-k keytab]\n",
-+ fprintf(stderr, "usage: %s [-f] [-v] [-r] [-p pipefsdir] [-k keytab]\n",
- progname);
- exit(1);
- }
-@@ -76,11 +78,12 @@ main(int argc, char *argv[])
- {
- int fg = 0;
- int verbosity = 0;
-+ int rpc_verbosity = 0;
- int opt;
- extern char *optarg;
- char *progname;
-
-- while ((opt = getopt(argc, argv, "fvmp:k:")) != -1) {
-+ while ((opt = getopt(argc, argv, "fvrmp:k:")) != -1) {
- switch (opt) {
- case 'f':
- fg = 1;
-@@ -91,6 +94,9 @@ main(int argc, char *argv[])
- case 'v':
- verbosity++;
- break;
-+ case 'r':
-+ rpc_verbosity++;
-+ break;
- case 'p':
- strncpy(pipefsdir, optarg, sizeof(pipefsdir));
- if (pipefsdir[sizeof(pipefsdir)-1] != '\0')
-@@ -117,6 +123,13 @@ main(int argc, char *argv[])
- progname = argv[0];
-
- initerr(progname, verbosity, fg);
-+#ifdef HAVE_AUTHGSS_SET_DEBUG_LEVEL
-+ authgss_set_debug_level(rpc_verbosity);
-+#else
-+ if (rpc_verbosity > 0)
-+ printerr(0, "Warning: rpcsec_gss library does not "
-+ "support setting debug level\n");
-+#endif
-
- if (!fg && daemon(0, 0) < 0)
- errx(1, "fork");
-diff -puN utils/gssd/gssd.man~CITI_NFS4_ALL utils/gssd/gssd.man
---- nfs-utils-1.0.7/utils/gssd/gssd.man~CITI_NFS4_ALL 2005-05-06 15:19:26.190416000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/gssd.man 2005-05-06 15:19:26.316291000 -0400
-@@ -6,7 +6,7 @@
- .SH NAME
- rpc.gssd \- rpcsec_gss daemon
- .SH SYNOPSIS
--.B "rpc.gssd [-f] [-k keytab] [-p pipefsdir] [-v]"
-+.B "rpc.gssd [-f] [-k keytab] [-p pipefsdir] [-v] [-r]"
- .SH DESCRIPTION
- The rpcsec_gss protocol gives a means of using the gss-api generic security
- api to provide security for protocols using rpc (in particular, nfs). Before
-@@ -50,6 +50,10 @@ where to look for the rpc_pipefs filesys
- .TP
- .B -v
- Increases the verbosity of the output (can be specified multiple times).
-+.TP
-+.B -r
-+If the rpcsec_gss library supports setting debug level,
-+increases the verbosity of the output (can be specified multiple times).
- .SH SEE ALSO
- .BR rpc.svcgssd(8)
- .SH AUTHORS
-diff -puN utils/svcgssd/svcgssd.c~CITI_NFS4_ALL utils/svcgssd/svcgssd.c
---- nfs-utils-1.0.7/utils/svcgssd/svcgssd.c~CITI_NFS4_ALL 2005-05-06 15:19:26.238369000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.c 2005-05-06 15:19:26.309297000 -0400
-@@ -37,6 +37,8 @@
-
- */
-
-+#include "config.h"
-+
- #include <sys/param.h>
- #include <sys/types.h>
- #include <sys/stat.h>
-@@ -146,7 +148,7 @@ sig_die(int signal)
- static void
- usage(char *progname)
- {
-- fprintf(stderr, "usage: %s [-n] [-f] [-v]\n",
-+ fprintf(stderr, "usage: %s [-n] [-f] [-v] [-r]\n",
- progname);
- exit(1);
- }
-@@ -157,11 +159,12 @@ main(int argc, char *argv[])
- int get_creds = 1;
- int fg = 0;
- int verbosity = 0;
-+ int rpc_verbosity = 0;
- int opt;
- extern char *optarg;
- char *progname;
-
-- while ((opt = getopt(argc, argv, "fvnp:")) != -1) {
-+ while ((opt = getopt(argc, argv, "fvrnp:")) != -1) {
- switch (opt) {
- case 'f':
- fg = 1;
-@@ -172,6 +175,9 @@ main(int argc, char *argv[])
- case 'v':
- verbosity++;
- break;
-+ case 'r':
-+ rpc_verbosity++;
-+ break;
- default:
- usage(argv[0]);
- break;
-@@ -184,6 +190,13 @@ main(int argc, char *argv[])
- progname = argv[0];
-
- initerr(progname, verbosity, fg);
-+#ifdef HAVE_AUTHGSS_SET_DEBUG_LEVEL
-+ authgss_set_debug_level(rpc_verbosity);
-+#else
-+ if (rpc_verbosity > 0)
-+ printerr(0, "Warning: rpcsec_gss library does not "
-+ "support setting debug level\n");
-+#endif
-
- if (!fg)
- mydaemon(0, 0);
-diff -puN utils/svcgssd/svcgssd.man~CITI_NFS4_ALL utils/svcgssd/svcgssd.man
---- nfs-utils-1.0.7/utils/svcgssd/svcgssd.man~CITI_NFS4_ALL 2005-05-06 15:19:26.287319000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/svcgssd/svcgssd.man 2005-05-06 15:19:26.323285000 -0400
-@@ -6,7 +6,7 @@
- .SH NAME
- rpc.svcgssd \- server-side rpcsec_gss daemon
- .SH SYNOPSIS
--.B "rpc.svcgssd [-v] [-f] [-p pipefsdir]"
-+.B "rpc.svcgssd [-v] [-r] [-f] [-p pipefsdir]"
- .SH DESCRIPTION
- The rpcsec_gss protocol gives a means of using the gss-api generic security
- api to provide security for protocols using rpc (in particular, nfs). Before
-@@ -27,6 +27,10 @@ in the foreground and sends output to st
- .TP
- .B -v
- Increases the verbosity of the output (can be specified multiple times).
-+.TP
-+.B -r
-+If the rpcsec_gss library supports setting debug level,
-+increases the verbosity of the output (can be specified multiple times).
-
- .SH SEE ALSO
- .BR rpc.gssd(8),
-diff -puN utils/gssd/context_heimdal.c~CITI_NFS4_ALL utils/gssd/context_heimdal.c
---- nfs-utils-1.0.7/utils/gssd/context_heimdal.c~CITI_NFS4_ALL 2005-05-06 15:19:26.436170000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/context_heimdal.c 2005-05-06 15:19:26.510156000 -0400
-@@ -37,9 +37,11 @@
- #include <syslog.h>
- #include <string.h>
- #include <errno.h>
--#include <gssapi.h>
- #include <krb5.h>
-+#include <gssapi.h> /* Must use the heimdal copy! */
-+#ifdef HAVE_COM_ERR_H
- #include <com_err.h>
-+#endif
- #include "err_util.h"
- #include "gss_oids.h"
- #include "write_bytes.h"
-@@ -83,9 +85,14 @@ int write_heimdal_enc_key(char **p, char
- }
-
- memset(&enc_key, 0, sizeof(enc_key));
-- printerr(1, "WARN: write_heimdal_enc_key: "
-- "overriding heimdal keytype\n");
-- enc_key.keytype = 4 /* XXX XXX XXX XXX key->keytype */;
-+ enc_key.keytype = key->keytype;
-+ /* XXX current kernel code only handles des-cbc-raw (4) */
-+ if (enc_key.keytype != 4) {
-+ printerr(1, "WARN: write_heimdal_enc_key: "
-+ "overriding heimdal keytype (%d => %d)\n",
-+ enc_key.keytype, 4);
-+ enc_key.keytype = 4;
-+ }
- enc_key.keyvalue.length = key->keyvalue.length;
- if ((enc_key.keyvalue.data =
- calloc(1, enc_key.keyvalue.length)) == NULL) {
-@@ -135,9 +142,13 @@ int write_heimdal_seq_key(char **p, char
- goto out_err_free_context;
- }
-
-- printerr(1, "WARN: write_heimdal_seq_key: "
-- "overriding heimdal keytype\n");
-- key->keytype = 4; /* XXX XXX XXX XXX XXX */
-+ /* XXX current kernel code only handles des-cbc-raw (4) */
-+ if (key->keytype != 4) {
-+ printerr(1, "WARN: write_heimdal_seq_key: "
-+ "overriding heimdal keytype (%d => %d)\n",
-+ key->keytype, 4);
-+ key->keytype = 4;
-+ }
-
- if (write_heimdal_keyblock(p, end, key)) {
- goto out_err_free_key;
-diff -puN utils/gssd/gss_oids.h~CITI_NFS4_ALL utils/gssd/gss_oids.h
---- nfs-utils-1.0.7/utils/gssd/gss_oids.h~CITI_NFS4_ALL 2005-05-06 15:19:26.484156000 -0400
-+++ nfs-utils-1.0.7-kwc/utils/gssd/gss_oids.h 2005-05-06 15:19:26.517156000 -0400
-@@ -32,7 +32,6 @@
- #define _GSS_OIDS_H_
-
- #include <sys/types.h>
--#include <gssapi/gssapi.h>
-
- extern gss_OID_desc krb5oid;
- extern gss_OID_desc spkm3oid;
-
-_