From owner-p4-projects@FreeBSD.ORG Mon Aug 8 10:35:41 2005 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5892416A421; Mon, 8 Aug 2005 10:35:40 +0000 (GMT) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 2B6A516A41F for ; Mon, 8 Aug 2005 10:35:40 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 99D0043D49 for ; Mon, 8 Aug 2005 10:35:39 +0000 (GMT) (envelope-from soc-bushman@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.1/8.13.1) with ESMTP id j78AZd1c008802 for ; Mon, 8 Aug 2005 10:35:39 GMT (envelope-from soc-bushman@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.1/8.13.1/Submit) id j78AZdnf008799 for perforce@freebsd.org; Mon, 8 Aug 2005 10:35:39 GMT (envelope-from soc-bushman@freebsd.org) Date: Mon, 8 Aug 2005 10:35:39 GMT Message-Id: <200508081035.j78AZdnf008799@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to soc-bushman@freebsd.org using -f From: soc-bushman To: Perforce Change Reviews Cc: Subject: PERFORCE change 81642 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Aug 2005 10:35:41 -0000 http://perforce.freebsd.org/chv.cgi?CH=81642 Change 81642 by soc-bushman@soc-bushman_stinger on 2005/08/08 10:35:28 adding NIS support for openssh keys Affected files ... .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth-rh-rsa.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2-hostbased.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/config.h.in#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/configure.ac#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/initial_copy.sh#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/key.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/make.sh#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth-rh.rsa.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth2-hostbased.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-config.h.in#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-configure#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-configure.ac#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-hostfile.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-hostfile.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-sshconnect.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/Makefile#5 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/distinfo#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/batch.patch#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/gss-serv.c.patch#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth-pam.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth-rh.rsa.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth1.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth2-hostbased.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-auth2.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-clientloop.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-config.h.in#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-configure.ac#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-fake-rfc2553.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-hostfile.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-hostfile.h#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-loginrec.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-regress-test-exec.sh#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-session.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshconnect.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshd.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshd_config#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/patch-sshpty.c#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/servconf.c.patch#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/files/sshd.sh#3 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-descr#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-message#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/port/pkg-plist#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/result_copy.sh#2 edit .. //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/sshconnect.c#3 edit Differences ... ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth-rh-rsa.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth.h#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2-hostbased.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/auth2.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/config.h.in#2 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/configure.ac#2 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.c#3 (text+ko) ==== @@ -59,6 +59,13 @@ #if defined (HAVE_NSDISPATCH) && defined (USE_NSSWITCH) +#ifdef YP +#include +#include +#include +#include +#endif + #ifndef NSDB_SSH_HOSTKEYS #define NSDB_SSH_HOSTKEYS "ssh_hostkeys" #endif /* NSDB_SSH_HOSTKEYS */ @@ -82,6 +89,10 @@ static HostStatus check_host_in_hostfile_by_key_or_type(const char *, const char *, const Key *, int, Key *, int *); +#ifdef YP +static HostStatus check_host_in_nis_by_key_or_type(const char *, + const Key *, int, Key *, int *); +#endif enum constants { CHECK_HOST, @@ -90,10 +101,16 @@ static const ns_src defaultsrc[] = { { NSSRC_FILES, NS_SUCCESS }, +#ifdef YP + { NSSRC_NIS, NS_SUCCESS }, +#endif { NULL, 0 } }; static int files_check_host_by_key_or_type(void *, void *, va_list); +#ifdef YP +static int nis_check_host_by_key_or_type(void *, void *, va_list); +#endif /* files backend implementation */ static int @@ -159,12 +176,181 @@ return (NS_NOTFOUND); } +#ifdef YP +/* NIS backend implementation */ +static HostStatus +check_host_in_hostfile_by_key_or_type(const char *host, const Key *key, + int keytype, Key *found, int *numret) +{ + u_int kbits; + int linenum; + char *cp, *cp2, *hashed_host; + HostStatus end_return; + + char buf[YPMAXRECORD]; + char domain[MAXHOSTNAMELEN]; + + char *lastkey; + char *current; + int current_len; + + char *resultbuf; + int resultbuf_len; + + int rv; + + if (getdomainname(domain, sizeof(domain)) != 0) + return (HOST_NEW); + + current = NULL; + current_len = 0; + resultbuf = NULL; + resultbuf_len = 0; + linenum = 0; + + rv = yp_first(domain, "ssh_hostkeys", ¤t, ¤t_len, + &resultbuf, &resultbuf_len); + + end_return = HOST_NEW; + while (rv) { + cp = resultbuf; + + /* comments, trailing spaces and tabs should be deleted during + NIS map making, but we still should check for them - just in case */ + for (; *cp == ' ' || *cp == '\t'; cp++) + ; + if (!*cp || *cp == '#' || *cp == '\n') + goto next_iter; + + /* Find the end of the host name portion. */ + for (cp2 = cp; *cp2 && *cp2 != ' ' && *cp2 != '\t'; cp2++) + ; + + if (match_hostname(host, cp, (u_int) (cp2 - cp)) != 1) { + if (*cp != HASH_DELIM) + goto next_iter; + hashed_host = host_hash(host, cp, (u_int) (cp2 - cp)); + if (hashed_host == NULL) { + debug("Invalid hashed host line %d of NIS source", + linenum); + goto next_iter; + } + if (strncmp(hashed_host, cp, (u_int) (cp2 - cp)) != 0) + goto next_iter; + } + + /* Got a match. Skip host name. */ + cp = cp2; + + /* + * Extract the key from the line. This will skip any leading + * whitespace. Ignore badly formatted lines. + */ + if (!hostfile_read_key(&cp, &kbits, found)) + goto next_iter; + + if (numret != NULL) + *numret = linenum; + + if (key == NULL) { + /* we found a key of the requested type */ + if (found->type == keytype) { + end_return = HOST_FOUND; + goto fin; + } + goto next_iter; + } + + if (!hostfile_check_key(kbits, found, host, "NIS source", linenum)) + goto next_iter; + + /* Check if the current key is the same as the given key. */ + if (key_equal(key, found)) { + /* Ok, they match. */ + debug3("check_host_in_nis: match line %d", linenum); + end_return = HOST_OK; + goto fin; + } + /* + * They do not match. We will continue to go through the + * file; however, we note that we will not return that it is + * new. + */ + end_return = HOST_CHANGED; + +next_iter: + lastkey = current; + rv = yp_next(domain, "ssh_hostkeys", current, current_len, + resultbuf, resultbuf_len); + free(lastkey); + + ++linenum; + } + +fin: + free(resultbuf); + return (end_return); +} + +static int +nis_check_host_by_key_or_type(void *result, void *mdata, va_list ap) +{ + const char *host; + const Key *key; + Key *found; + int keytype; + + int rv, numret; + enum constants how; + + how = (enum constants)mdata; + switch (how) { + case CHECK_HOST: + host = va_arg(ap, const char *); + key = va_arg(ap, const Key *); + found = va_arg(ap, Key *); + break; + case LOOKUP_KEY_BY_TYPE: + host = va_arg(ap, const char *); + keytype = va_arg(ap, int); + found = va_arg(ap, Key *); + break; + default: + return NS_NOTFOUND; + } + + switch (how) { + case CHECK_HOST: + rv = check_host_in_nis_by_key_or_type(host, key, 0, found, &numret); + + debug3("nis_check_host_by_key_or_type: CHECK_HOST - %d", rv); + if (result != NULL) + *((int *)result) = rv; + return ((rv == HOST_NEW) ? NS_NOTFOUND : NS_SUCCESS); + + case LOOKUP_KEY_BY_TYPE: + rv = (check_host_in_nis_by_key_or_type(host, NULL, keytype, found, + &numret) == HOST_FOUND); + + debug3("nis_check_host_by_key_or_type: LOOKUP_KEY_BY_TYPE - %d", rv); + if (result != NULL) + *((int *)result) = rv; + return ((rv == 0) ? NS_NOTFOUND : NS_SUCCESS); + } + + return (NS_NOTFOUND); +} +#endif + /* nsswitch interface functions implementation */ HostStatus nsswitch_check_host(const char *host, const Key *key, Key *found) { static const ns_dtab dtab[] = { { NSSRC_FILES, files_check_host_by_key_or_type, (void *)CHECK_HOST }, +#ifdef YP + { NSSRC_NIS, nis_check_host_by_key_or_type, (void *)CHECK_HOST }, +#endif { NULL, NULL, NULL } }; @@ -189,6 +375,9 @@ { static const ns_dtab dtab[] = { { NSSRC_FILES, files_check_host_by_key_or_type, (void *)LOOKUP_KEY_BY_TYPE }, +#ifdef YP + { NSSRC_NIS, nis_check_host_by_key_or_type, (void *)LOOKUP_KEY_BY_TYPE }, +#endif { NULL, NULL, NULL } }; ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/hostfile.h#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/initial_copy.sh#2 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/key.h#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/make.sh#2 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth-rh.rsa.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth.h#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-auth2-hostbased.c#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-config.h.in#3 (text+ko) ==== ==== //depot/projects/soc2005/nsswitch_cached/tests/ssh_hostkeys_test/patches/patch-configure#2 (text+ko) ==== @@ -1,19363 +1,0 @@ ---- configure.orig Mon Jul 18 14:12:19 2005 -+++ configure Mon Jul 18 14:12:32 2005 -@@ -1,10 +1,19 @@ - #! /bin/sh - # Guess values for system-dependent variables and create Makefiles. --# Generated by GNU Autoconf 2.59 for OpenSSH Portable. -+# Generated by GNU Autoconf 2.53 for OpenSSH Portable. - # --# Copyright (C) 2003 Free Software Foundation, Inc. -+# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -+# Free Software Foundation, Inc. - # This configure script is free software; the Free Software Foundation - # gives unlimited permission to copy, distribute and modify it. -+ -+if expr a : '\(a\)' >/dev/null 2>&1; then -+ as_expr=expr -+else -+ as_expr=false -+fi -+ -+ - ## --------------------- ## - ## M4sh Initialization. ## - ## --------------------- ## -@@ -13,57 +22,46 @@ - 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 - -+# NLS nuisances. - # Support unset when possible. --if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then -+if (FOO=FOO; unset FOO) >/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 -+(set +x; test -n "`(LANG=C; export LANG) 2>&1`") && -+ { $as_unset LANG || test "${LANG+set}" != set; } || -+ { LANG=C; export LANG; } -+(set +x; test -n "`(LC_ALL=C; export LC_ALL) 2>&1`") && -+ { $as_unset LC_ALL || test "${LC_ALL+set}" != set; } || -+ { LC_ALL=C; export LC_ALL; } -+(set +x; test -n "`(LC_TIME=C; export LC_TIME) 2>&1`") && -+ { $as_unset LC_TIME || test "${LC_TIME+set}" != set; } || -+ { LC_TIME=C; export LC_TIME; } -+(set +x; test -n "`(LC_CTYPE=C; export LC_CTYPE) 2>&1`") && -+ { $as_unset LC_CTYPE || test "${LC_CTYPE+set}" != set; } || -+ { LC_CTYPE=C; export LC_CTYPE; } -+(set +x; test -n "`(LANGUAGE=C; export LANGUAGE) 2>&1`") && -+ { $as_unset LANGUAGE || test "${LANGUAGE+set}" != set; } || -+ { LANGUAGE=C; export LANGUAGE; } -+(set +x; test -n "`(LC_COLLATE=C; export LC_COLLATE) 2>&1`") && -+ { $as_unset LC_COLLATE || test "${LC_COLLATE+set}" != set; } || -+ { LC_COLLATE=C; export LC_COLLATE; } -+(set +x; test -n "`(LC_NUMERIC=C; export LC_NUMERIC) 2>&1`") && -+ { $as_unset LC_NUMERIC || test "${LC_NUMERIC+set}" != set; } || -+ { LC_NUMERIC=C; export LC_NUMERIC; } -+(set +x; test -n "`(LC_MESSAGES=C; export LC_MESSAGES) 2>&1`") && -+ { $as_unset LC_MESSAGES || test "${LC_MESSAGES+set}" != set; } || -+ { LC_MESSAGES=C; export LC_MESSAGES; } - - - # Name of the executable. --as_me=`$as_basename "$0" || -+as_me=`(basename "$0") 2>/dev/null || - $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)$' \| \ -@@ -74,7 +72,6 @@ - /^X\/\(\/\).*/{ s//\1/; q; } - s/.*/./; q'` - -- - # PATH needs CR, and LINENO needs CR and PATH. - # Avoid depending upon Character Ranges. - as_cr_letters='abcdefghijklmnopqrstuvwxyz' -@@ -85,15 +82,15 @@ - - # 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 -+ echo "#! /bin/sh" >conftest.sh -+ echo "exit 0" >>conftest.sh -+ chmod +x conftest.sh -+ if (PATH=".;."; conftest.sh) >/dev/null 2>&1; then - PATH_SEPARATOR=';' - else - PATH_SEPARATOR=: - fi -- rm -f conf$$.sh -+ rm -f conftest.sh - fi - - -@@ -141,8 +138,6 @@ - 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+"$@"} -@@ -215,20 +210,13 @@ - 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'" -+as_tr_cpp="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'" -+as_tr_sh="sed y%*+%pp%;s%[^_$as_cr_alnum]%_%g" - - - # IFS -@@ -238,7 +226,7 @@ - IFS=" $as_nl" - - # CDPATH. --$as_unset CDPATH -+$as_unset CDPATH || test "${CDPATH+set}" != set || { CDPATH=$PATH_SEPARATOR; export CDPATH; } - - - # Name of the host. -@@ -252,7 +240,6 @@ - # Initializations. - # - ac_default_prefix=/usr/local --ac_config_libobj_dir=. - cross_compiling=no - subdirs= - MFLAGS= -@@ -309,8 +296,6 @@ - # include - #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 CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT build build_cpu build_vendor build_os host host_cpu host_vendor host_os AWK CPP RANLIB ac_ct_RANLIB INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA AR CAT KILL PERL SED ENT TEST_MINUS_S_SH SH TEST_SHELL PATH_GROUPADD_PROG PATH_USERADD_PROG MAKE_PACKAGE_SUPPORTED LOGIN_PROGRAM_FALLBACK PATH_PASSWD_PROG LD EGREP LIBWRAP LIBEDIT LIBPAM INSTALL_SSH_RAND_HELPER SSH_PRIVSEP_USER PROG_LS PROG_NETSTAT PROG_ARP PROG_IFCONFIG PROG_JSTAT PROG_PS PROG_SAR PROG_W PROG_WHO PROG_LAST PROG_LASTLOG PROG_DF PROG_VMSTAT PROG_UPTIME PROG_IPCS PROG_TAIL INSTALL_SSH_PRNG_CMDS OPENSC_CONFIG PRIVSEP_PATH xauth_path STRIP_OPT XAUTH_PATH NROFF MANTYPE mansubdir user_path piddir LIBOBJS LTLIBOBJS' --ac_subst_files='' - - # Initialize some variables set by options. - ac_init_help= -@@ -668,7 +653,7 @@ - - # Be sure to have absolute paths. - for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ -- localstatedir libdir includedir oldincludedir infodir mandir -+ localstatedir libdir includedir oldincludedir infodir mandir - do - eval ac_val=$`echo $ac_var` - case $ac_val in -@@ -708,10 +693,10 @@ - # Try the directory containing this script, then its parent. - ac_confdir=`(dirname "$0") 2>/dev/null || - $as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ -- X"$0" : 'X\(//\)[^/]' \| \ -- X"$0" : 'X\(//\)$' \| \ -- X"$0" : 'X\(/\)' \| \ -- . : '\(.\)' 2>/dev/null || -+ X"$0" : 'X\(//\)[^/]' \| \ -+ X"$0" : 'X\(//\)$' \| \ -+ X"$0" : 'X\(/\)' \| \ -+ . : '\(.\)' 2>/dev/null || - echo X"$0" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } - /^X\(\/\/\)[^/].*/{ s//\1/; q; } -@@ -734,9 +719,6 @@ - { (exit 1); exit 1; }; } - fi - fi --(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 -@@ -803,9 +785,9 @@ - cat <<_ACEOF - Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX -- [$ac_default_prefix] -+ [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX -- [PREFIX] -+ [PREFIX] - - By default, \`make install' will install all the files in - \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -@@ -941,45 +923,12 @@ - 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 -+# Don't blindly perform a `cd "$ac_dir"/$ac_foo && pwd` since $ac_foo can be -+# absolute. -+ac_abs_builddir=`cd "$ac_dir" && cd $ac_builddir && pwd` -+ac_abs_top_builddir=`cd "$ac_dir" && cd $ac_top_builddir && pwd` -+ac_abs_srcdir=`cd "$ac_dir" && cd $ac_srcdir && pwd` -+ac_abs_top_srcdir=`cd "$ac_dir" && cd $ac_top_srcdir && pwd` - - cd $ac_dir - # Check for guested configure; otherwise get Cygnus style configure. -@@ -990,7 +939,7 @@ - echo - $SHELL $ac_srcdir/configure --help=recursive - elif test -f $ac_srcdir/configure.ac || -- test -f $ac_srcdir/configure.in; then -+ test -f $ac_srcdir/configure.in; then - echo - $ac_configure --help - else -@@ -1004,9 +953,10 @@ - if $ac_init_version; then - cat <<\_ACEOF - OpenSSH configure Portable --generated by GNU Autoconf 2.59 -+generated by GNU Autoconf 2.53 - --Copyright (C) 2003 Free Software Foundation, Inc. -+Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002 -+Free Software Foundation, Inc. - This configure script is free software; the Free Software Foundation - gives unlimited permission to copy, distribute and modify it. - _ACEOF -@@ -1018,7 +968,7 @@ - running configure, to aid debugging if configure makes a mistake. - - It was created by OpenSSH $as_me Portable, which was --generated by GNU Autoconf 2.59. Invocation command line was -+generated by GNU Autoconf 2.53. Invocation command line was - - $ $0 $@ - -@@ -1070,54 +1020,27 @@ - - # 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 -+for ac_arg - 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 -+ case $ac_arg in -+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ -+ | --no-cr | --no-c | -n ) continue ;; -+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ -+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) -+ continue ;; -+ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) -+ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; -+ esac -+ case " $ac_configure_args " in -+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. -+ *) ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" -+ ac_sep=" " ;; -+ esac -+ # Get rid of the leading space. - 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 -@@ -1128,7 +1051,6 @@ - # Save into config.log some information that might help in debugging. - { - echo -- - cat <<\_ASBOX - ## ---------------- ## - ## Cache variables. ## -@@ -1141,45 +1063,16 @@ - 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" -+ "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" -+ "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 - ## ----------- ## -@@ -1187,14 +1080,14 @@ - ## ----------- ## - _ASBOX - echo -- sed "/^$/d" confdefs.h | sort -+ sed "/^$/d" confdefs.h - 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 -f core core.* *.core && - rm -rf conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status - ' 0 -@@ -1274,7 +1167,7 @@ - # 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 -+ 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" -@@ -1291,13 +1184,13 @@ - ,);; - *) - 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:$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:$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:$LINENO: current value: $ac_new_val" >&5 - echo "$as_me: current value: $ac_new_val" >&2;} -- ac_cache_corrupted=: -+ ac_cache_corrupted=: - fi;; - esac - # Pass precious variables to config.status. -@@ -1354,8 +1247,7 @@ - - - -- -- ac_config_headers="$ac_config_headers config.h" -+ac_config_headers="$ac_config_headers config.h" - - ac_ext=c - ac_cpp='$CPP $CPPFLAGS' -@@ -1561,7 +1453,9 @@ - # 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 -- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" -+ set dummy "$as_dir/$ac_word" ${1+"$@"} -+ shift -+ ac_cv_prog_CC="$@" - fi - fi - fi -@@ -1666,10 +1560,8 @@ - fi - - --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;} -+test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH" >&5 -+echo "$as_me: error: no acceptable C compiler found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - - # Provide some information about the compiler. -@@ -1693,12 +1585,15 @@ - (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. */ -+#line $LINENO "configure" -+#include "confdefs.h" - -+#ifdef F77_DUMMY_MAIN -+# ifdef __cplusplus -+ extern "C" -+# endif -+ int F77_DUMMY_MAIN() { return 1; } -+#endif - int - main () - { -@@ -1708,12 +1603,12 @@ - } - _ACEOF - ac_clean_files_save=$ac_clean_files --ac_clean_files="$ac_clean_files a.out a.exe b.out" -+ac_clean_files="$ac_clean_files a.out a.exe" - # 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 -+echo "$as_me:$LINENO: checking for C compiler default output" >&5 -+echo $ECHO_N "checking for C compiler default output... $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 -@@ -1727,39 +1622,26 @@ - # 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 -+for ac_file in `ls a_out.exe a.exe conftest.exe 2>/dev/null; -+ ls a.out conftest 2>/dev/null; -+ ls a.* conftest.* 2>/dev/null`; do - 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;; -+ *.$ac_ext | *.o | *.obj | *.xcoff | *.tds | *.d | *.pdb | *.xSYM ) ;; -+ a.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 --akim. -+ export ac_cv_exeext -+ break;; -+ * ) break;; - esac - done - else - echo "$as_me: failed program was:" >&5 --sed 's/^/| /' conftest.$ac_ext >&5 -- --{ { 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;} -+cat conftest.$ac_ext >&5 -+{ { echo "$as_me:$LINENO: error: C compiler cannot create executables" >&5 -+echo "$as_me: error: C compiler cannot create executables" >&2;} - { (exit 77); exit 77; }; } - fi - -@@ -1786,11 +1668,9 @@ - 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 -+If you meant to cross compile, use \`--host'." >&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;} -+If you meant to cross compile, use \`--host'." >&2;} - { (exit 1); exit 1; }; } - fi - fi -@@ -1798,7 +1678,7 @@ - echo "$as_me:$LINENO: result: yes" >&5 - echo "${ECHO_T}yes" >&6 - --rm -f a.out a.exe conftest$ac_cv_exeext b.out -+rm -f a.out a.exe conftest$ac_cv_exeext - 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. -@@ -1818,21 +1698,18 @@ - # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will - # work properly (i.e., refer to `conftest.exe'), while it won't with - # `rm'. >>> TRUNCATED FOR MAIL (1000 lines) <<<