summaryrefslogtreecommitdiff
path: root/security/ssh
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2000-04-21 06:18:48 +0000
committerKris Kennaway <kris@FreeBSD.org>2000-04-21 06:18:48 +0000
commit5cbe0e506619827bfcbe70ea8a75b5405b5df92d (patch)
tree1cd631cb1862624f08fcdee4c1c45097d7fe1726 /security/ssh
parentUnbreak for systems posterior to 4.0-RELEASE: (diff)
Convert patch to unidiff; no functional changes.
Notes
Notes: svn path=/head/; revision=27833
Diffstat (limited to 'security/ssh')
-rw-r--r--security/ssh/files/patch-be787
1 files changed, 369 insertions, 418 deletions
diff --git a/security/ssh/files/patch-be b/security/ssh/files/patch-be
index 4bf46bb14df0..c59ff1bef49c 100644
--- a/security/ssh/files/patch-be
+++ b/security/ssh/files/patch-be
@@ -1,419 +1,370 @@
-*** configure.in.orig Wed May 12 13:20:02 1999
---- configure.in Thu Feb 24 17:12:10 2000
-***************
-*** 30,37 ****
---- 30,169 ----
- fi
-
- AC_PROG_CC
-+ AC_PROG_CPP
- AC_ISC_POSIX
-
-+ AC_MSG_CHECKING([whether to enable ipv6])
-+ AC_ARG_ENABLE(ipv6,
-+ [ --enable-ipv6 Enable ipv6 (with ipv4) support
-+ --disable-ipv6 Disable ipv6 support],
-+ [ case "$enableval" in
-+ no)
-+ AC_MSG_RESULT(no)
-+ ipv6=no
-+ ;;
-+ *) AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_IPV6)
-+ ipv6=yes
-+ ;;
-+ esac ],
-+
-+ AC_TRY_RUN([ /* AF_INET6 avalable check */
-+ #include <sys/types.h>
-+ #include <sys/socket.h>
-+ main()
-+ {
-+ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
-+ exit(1);
-+ else
-+ exit(0);
-+ }
-+ ],
-+ AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_IPV6)
-+ ipv6=yes,
-+ AC_MSG_RESULT(no)
-+ ipv6=no,
-+ AC_MSG_RESULT(no)
-+ ipv6=no
-+ ))
-+
-+ ipv6type=unknown
-+ ipv6lib=none
-+
-+ if test "$ipv6" = "yes"; then
-+ AC_MSG_CHECKING([ipv6 stack type])
-+ for i in inria kame linux toshiba v6d zeta; do
-+ case $i in
-+ inria)
-+ dnl http://www.kame.net/
-+ AC_EGREP_CPP(yes, [dnl
-+ #include <netinet/in.h>
-+ #ifdef IPV6_INRIA_VERSION
-+ yes
-+ #endif],
-+ [ipv6type=$i;
-+ CPPFLAGS="-DINET6 $CPPFLAGS"])
-+ ;;
-+ kame)
-+ dnl http://www.kame.net/
-+ AC_EGREP_CPP(yes, [dnl
-+ #include <netinet/in.h>
-+ #ifdef __KAME__
-+ yes
-+ #endif],
-+ [ipv6type=$i;
-+ CPPFLAGS="-DINET6 $CPPFLAGS"])
-+ ;;
-+ linux)
-+ dnl http://www.v6.linux.or.jp/
-+ if test -d /usr/inet6; then
-+ ipv6type=$i
-+ ipv6lib=inet6
-+ ipv6libdir=/usr/inet6/lib
-+ CPPFLAGS="-DINET6 -I/usr/inet6/include $CPPFLAGS"
-+ fi
-+ ;;
-+ toshiba)
-+ AC_EGREP_CPP(yes, [dnl
-+ #include <sys/param.h>
-+ #ifdef _TOSHIBA_INET6
-+ yes
-+ #endif],
-+ [ipv6type=$i;
-+ ipv6lib=inet6;
-+ ipv6libdir=/usr/local/v6/lib;
-+ CPPFLAGS="-DINET6 $CPPFLAGS"])
-+ ;;
-+ v6d)
-+ AC_EGREP_CPP(yes, [dnl
-+ #include </usr/local/v6/include/sys/v6config.h>
-+ #ifdef __V6D__
-+ yes
-+ #endif],
-+ [ipv6type=$i;
-+ ipv6lib=v6;
-+ ipv6libdir=/usr/local/v6/lib;
-+ CPPFLAGS="-I/usr/local/v6/include $CPPFLAGS"])
-+ ;;
-+ zeta)
-+ AC_EGREP_CPP(yes, [dnl
-+ #include <sys/param.h>
-+ #ifdef _ZETA_MINAMI_INET6
-+ yes
-+ #endif],
-+ [ipv6type=$i;
-+ ipv6lib=inet6;
-+ ipv6libdir=/usr/local/v6/lib;
-+ CPPFLAGS="-DINET6 $CPPFLAGS"])
-+ ;;
-+ esac
-+ if test "$ipv6type" != "unknown"; then
-+ break
-+ fi
-+ done
-+ AC_MSG_RESULT($ipv6type)
-+ fi
-+
-+ if test "$ipv6" = "yes" -a -f /usr/local/v6/lib/libinet6.a; then
-+ ac_inet6_LDFLAGS="inet6"
-+ ipv6libdir=/usr/local/v6/lib
-+ LDFLAGS="$LDFLAGS -L/usr/local/v6/lib"
-+ AC_CHECK_LIB(inet6, getaddrinfo, , ipv6lib="$ac_inet6_LDFLAGS")
-+ fi
-+
-+
-+ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
-+ if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
-+ LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
-+ else
-+ echo 'Fatal: no $ipv6lib library found. cannot continue.'
-+ echo "You need to fetch lib$ipv6lib.a from appropriate"
-+ echo 'ipv6 kit and compile beforehand.'
-+ exit 1
-+ fi
-+ fi
-+
- AC_DEFINE_UNQUOTED(HOSTTYPE, "$host")
-
- case "$host" in
-***************
-*** 313,319 ****
-
- # Socket pairs appear to be broken on several systems. I don't know exactly
- # where, so I'll use pipes everywhere for now.
-! AC_DEFINE(USE_PIPES)
-
- AC_MSG_CHECKING([that the compiler works])
- AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
---- 445,451 ----
-
- # Socket pairs appear to be broken on several systems. I don't know exactly
- # where, so I'll use pipes everywhere for now.
-! # AC_DEFINE(USE_PIPES)
-
- AC_MSG_CHECKING([that the compiler works])
- AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
-***************
-*** 369,375 ****
-
- AC_HEADER_STDC
- AC_HEADER_SYS_WAIT
-! AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h utmp.h shadow.h)
- AC_CHECK_HEADERS(sgtty.h sys/select.h sys/ioctl.h machine/endian.h)
- AC_CHECK_HEADERS(paths.h usersec.h utime.h netinet/in_systm.h)
- AC_CHECK_HEADERS(netinet/in_system.h netinet/ip.h netinet/tcp.h ulimit.h)
---- 501,507 ----
-
- AC_HEADER_STDC
- AC_HEADER_SYS_WAIT
-! AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h login_cap.h utmp.h shadow.h)
- AC_CHECK_HEADERS(sgtty.h sys/select.h sys/ioctl.h machine/endian.h)
- AC_CHECK_HEADERS(paths.h usersec.h utime.h netinet/in_systm.h)
- AC_CHECK_HEADERS(netinet/in_system.h netinet/ip.h netinet/tcp.h ulimit.h)
-***************
-*** 399,404 ****
---- 531,546 ----
- [ AC_DEFINE(HAVE_INCOMPATIBLE_SIGINFO)
- AC_MSG_RESULT(yes)] , AC_MSG_RESULT(no))
-
-+ AC_MSG_CHECKING([whether sys/socket.h have struct sockaddr_storage])
-+ AC_EGREP_HEADER(sockaddr_storage, sys/socket.h,
-+ [ AC_DEFINE(HAVE_SOCKADDR_STORAGE) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
-+ AC_MSG_CHECKING([whether sys/socket.h have __ss_family])
-+ AC_EGREP_HEADER(__ss_family, sys/socket.h,
-+ [ AC_DEFINE(HAVE_NEW_SS_FAMILY) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
-+ AC_MSG_CHECKING([whether sys/socket.h have sa_len])
-+ AC_EGREP_HEADER(sa_len, sys/socket.h,
-+ [ AC_DEFINE(HAVE_SOCKADDR_LEN) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
-+
- AC_CHECK_LIB(c, crypt, [true], AC_CHECK_LIB(crypt, crypt))
- AC_CHECK_LIB(sec, getspnam)
- AC_CHECK_LIB(seq, get_process_stats)
-***************
-*** 436,441 ****
---- 578,684 ----
-
- AC_REPLACE_FUNCS(strerror memmove remove random putenv crypt socketpair snprintf)
-
-+ AC_MSG_CHECKING(getaddrinfo bug)
-+ AC_TRY_RUN([
-+ #include <sys/types.h>
-+ #include <netdb.h>
-+ #include <string.h>
-+ #include <sys/socket.h>
-+ #include <netinet/in.h>
-+
-+ main()
-+ {
-+ int passive, gaierr, inet4 = 0, inet6 = 0;
-+ struct addrinfo hints, *ai, *aitop;
-+ char straddr[INET6_ADDRSTRLEN], strport[16];
-+
-+ for (passive = 0; passive <= 1; passive++) {
-+ memset(&hints, 0, sizeof(hints));
-+ hints.ai_family = AF_UNSPEC;
-+ hints.ai_flags = passive ? AI_PASSIVE : 0;
-+ hints.ai_socktype = SOCK_STREAM;
-+ if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
-+ (void)gai_strerror(gaierr);
-+ goto bad;
-+ }
-+ for (ai = aitop; ai; ai = ai->ai_next) {
-+ if (ai->ai_addr == NULL ||
-+ ai->ai_addrlen == 0 ||
-+ getnameinfo(ai->ai_addr, ai->ai_addrlen,
-+ straddr, sizeof(straddr), strport, sizeof(strport),
-+ NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
-+ goto bad;
-+ }
-+ if (strcmp(strport, "54321") != 0) {
-+ goto bad;
-+ }
-+ switch (ai->ai_family) {
-+ case AF_INET:
-+ if (passive) {
-+ if (strcmp(straddr, "0.0.0.0") != 0) {
-+ goto bad;
-+ }
-+ } else {
-+ if (strcmp(straddr, "127.0.0.1") != 0) {
-+ goto bad;
-+ }
-+ }
-+ inet4++;
-+ break;
-+ case AF_INET6:
-+ if (passive) {
-+ if (strcmp(straddr, "::") != 0) {
-+ goto bad;
-+ }
-+ } else {
-+ if (strcmp(straddr, "::1") != 0) {
-+ goto bad;
-+ }
-+ }
-+ inet6++;
-+ break;
-+ case AF_UNSPEC:
-+ goto bad;
-+ break;
-+ default:
-+ /* another family support? */
-+ break;
-+ }
-+ }
-+ }
-+
-+ if (!(inet4 == 0 || inet4 == 2))
-+ goto bad;
-+ if (!(inet6 == 0 || inet6 == 2))
-+ goto bad;
-+
-+ if (aitop)
-+ freeaddrinfo(aitop);
-+ exit(0);
-+
-+ bad:
-+ if (aitop)
-+ freeaddrinfo(aitop);
+--- configure.in.orig Wed May 12 04:20:02 1999
++++ configure.in Thu Apr 20 23:12:36 2000
+@@ -30,8 +30,140 @@
+ fi
+
+ AC_PROG_CC
++AC_PROG_CPP
+ AC_ISC_POSIX
+
++AC_MSG_CHECKING([whether to enable ipv6])
++AC_ARG_ENABLE(ipv6,
++[ --enable-ipv6 Enable ipv6 (with ipv4) support
++ --disable-ipv6 Disable ipv6 support],
++[ case "$enableval" in
++ no)
++ AC_MSG_RESULT(no)
++ ipv6=no
++ ;;
++ *) AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_IPV6)
++ ipv6=yes
++ ;;
++ esac ],
++
++ AC_TRY_RUN([ /* AF_INET6 avalable check */
++#include <sys/types.h>
++#include <sys/socket.h>
++main()
++{
++ if (socket(AF_INET6, SOCK_STREAM, 0) < 0)
+ exit(1);
-+ }
-+ ],
-+ AC_MSG_RESULT(good)
-+ buggygetaddrinfo=no,
-+ AC_MSG_RESULT(buggy)
-+ buggygetaddrinfo=yes,
-+ AC_MSG_RESULT(buggy)
-+ buggygetaddrinfo=yes)
-+
-+ if test "$buggygetaddrinfo" = "yes"; then
-+ if test "$ipv6" = "yes"; then
-+ echo 'Fatal: You must get working getaddrinfo() function.'
-+ echo ' or you can specify "--disable-ipv6"'.
-+ exit 1
-+ else
-+ AC_REPLACE_FUNCS(getaddrinfo getnameinfo)
-+ fi
-+ fi
-+
- AC_PROG_LN_S
- AC_PROG_INSTALL
- AC_CHECK_PROG(AR, ar, ar, echo)
-***************
-*** 932,938 ****
- AC_DEFINE(KRB5)
- KERBEROS_ROOT="$with_kerberos5"
- KERBEROS_INCS="-I${KERBEROS_ROOT}/include"
-! KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
- AC_CHECK_LIB(ndbm, dbm_open, KERBEROS_LIBS="$KERBEROS_LIBS -lndbm")
- KERBEROS_OBJS="auth-kerberos.o"
- ;;
---- 1175,1185 ----
- AC_DEFINE(KRB5)
- KERBEROS_ROOT="$with_kerberos5"
- KERBEROS_INCS="-I${KERBEROS_ROOT}/include"
-! if [ -f ${KERBEROS_ROOT}/lib/libk5crypto.a ]; then
-! KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
-! else
-! KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
-! fi
- AC_CHECK_LIB(ndbm, dbm_open, KERBEROS_LIBS="$KERBEROS_LIBS -lndbm")
- KERBEROS_OBJS="auth-kerberos.o"
- ;;
-***************
-*** 1123,1128 ****
---- 1370,1376 ----
- AC_DEFINE(Rdup2,SOCKSdup2)
- AC_DEFINE(Rfclose,SOCKSfclose)
- AC_DEFINE(Rgethostbyname,SOCKSgethostbyname)
-+ AC_DEFINE(Rgetaddrinfo,SOCKSgetaddrinfo)
- fi
-
- AC_MSG_CHECKING(whether to use rsaref)
-***************
-*** 1252,1257 ****
---- 1500,1537 ----
- AC_DEFINE(ENABLE_TCP_NODELAY)
- )
-
-+ AC_MSG_CHECKING(whether to enable another port try support)
-+ AC_ARG_ENABLE(another-port-try,
-+ [ --enable-another-port-try Enable another port try support (default)
-+ --disable-another-port-try Disable another port try support],
-+ [ case "$enableval" in
-+ no)
-+ AC_MSG_RESULT(no)
-+ ;;
-+ *) AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
-+ ;;
-+ esac ],
-+ AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
-+ )
-+
-+ AC_MSG_CHECKING(whether to enable logging auth info support)
-+ AC_ARG_ENABLE(log-auth,
-+ [ --enable-log-auth Enable logging auth info support (default)
-+ --disable-log-auth Disable logging auth info support],
-+ [ case "$enableval" in
-+ no)
-+ AC_MSG_RESULT(no)
-+ ;;
-+ *) AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_LOG_AUTH)
-+ ;;
-+ esac ],
-+ AC_MSG_RESULT(yes)
-+ AC_DEFINE(ENABLE_LOG_AUTH)
-+ )
-+
- AC_MSG_CHECKING(whether to enable SO_LINGER)
- AC_ARG_ENABLE(so-linger,
- [ --enable-so-linger Enable setting SO_LINGER socket option],
-***************
-*** 1311,1316 ****
---- 1591,1598 ----
- AC_DEFINE(SCP_ALL_STATISTICS_ENABLED)
- )
-
-+ CFLAGS="$CPPFLAGS $CFLAGS"
-+
- # We include this here only to make it visible in --help; this is only used
- # in the gmp subdirectory.
- AC_ARG_ENABLE(asm,
-***************
-*** 1324,1330 ****
- fi
- AC_MSG_RESULT($PIDDIR)
-
-! AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
-
- AC_ARG_PROGRAM
-
---- 1606,1612 ----
- fi
- AC_MSG_RESULT($PIDDIR)
-
-! #AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
-
- AC_ARG_PROGRAM
-
-***************
-*** 1336,1339 ****
- AC_SUBST(SSHDCONFOBJS)
- AC_SUBST(SSHINSTALLMODE)
-
-! AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 zlib-1.0.4/Makefile)
---- 1618,1621 ----
- AC_SUBST(SSHDCONFOBJS)
- AC_SUBST(SSHINSTALLMODE)
-
-! AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 make-ssh-known-hosts.pl)
++ else
++ exit(0);
++}
++],
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_IPV6)
++ ipv6=yes,
++ AC_MSG_RESULT(no)
++ ipv6=no,
++ AC_MSG_RESULT(no)
++ ipv6=no
++))
++
++ipv6type=unknown
++ipv6lib=none
++
++if test "$ipv6" = "yes"; then
++ AC_MSG_CHECKING([ipv6 stack type])
++ for i in inria kame linux toshiba v6d zeta; do
++ case $i in
++ inria)
++ dnl http://www.kame.net/
++ AC_EGREP_CPP(yes, [dnl
++#include <netinet/in.h>
++#ifdef IPV6_INRIA_VERSION
++yes
++#endif],
++ [ipv6type=$i;
++ CPPFLAGS="-DINET6 $CPPFLAGS"])
++ ;;
++ kame)
++ dnl http://www.kame.net/
++ AC_EGREP_CPP(yes, [dnl
++#include <netinet/in.h>
++#ifdef __KAME__
++yes
++#endif],
++ [ipv6type=$i;
++ CPPFLAGS="-DINET6 $CPPFLAGS"])
++ ;;
++ linux)
++ dnl http://www.v6.linux.or.jp/
++ if test -d /usr/inet6; then
++ ipv6type=$i
++ ipv6lib=inet6
++ ipv6libdir=/usr/inet6/lib
++ CPPFLAGS="-DINET6 -I/usr/inet6/include $CPPFLAGS"
++ fi
++ ;;
++ toshiba)
++ AC_EGREP_CPP(yes, [dnl
++#include <sys/param.h>
++#ifdef _TOSHIBA_INET6
++yes
++#endif],
++ [ipv6type=$i;
++ ipv6lib=inet6;
++ ipv6libdir=/usr/local/v6/lib;
++ CPPFLAGS="-DINET6 $CPPFLAGS"])
++ ;;
++ v6d)
++ AC_EGREP_CPP(yes, [dnl
++#include </usr/local/v6/include/sys/v6config.h>
++#ifdef __V6D__
++yes
++#endif],
++ [ipv6type=$i;
++ ipv6lib=v6;
++ ipv6libdir=/usr/local/v6/lib;
++ CPPFLAGS="-I/usr/local/v6/include $CPPFLAGS"])
++ ;;
++ zeta)
++ AC_EGREP_CPP(yes, [dnl
++#include <sys/param.h>
++#ifdef _ZETA_MINAMI_INET6
++yes
++#endif],
++ [ipv6type=$i;
++ ipv6lib=inet6;
++ ipv6libdir=/usr/local/v6/lib;
++ CPPFLAGS="-DINET6 $CPPFLAGS"])
++ ;;
++ esac
++ if test "$ipv6type" != "unknown"; then
++ break
++ fi
++ done
++ AC_MSG_RESULT($ipv6type)
++fi
++
++if test "$ipv6" = "yes" -a -f /usr/local/v6/lib/libinet6.a; then
++ ac_inet6_LDFLAGS="inet6"
++ ipv6libdir=/usr/local/v6/lib
++ LDFLAGS="$LDFLAGS -L/usr/local/v6/lib"
++ AC_CHECK_LIB(inet6, getaddrinfo, , ipv6lib="$ac_inet6_LDFLAGS")
++fi
++
++
++if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
++ if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
++ LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
++ else
++ echo 'Fatal: no $ipv6lib library found. cannot continue.'
++ echo "You need to fetch lib$ipv6lib.a from appropriate"
++ echo 'ipv6 kit and compile beforehand.'
++ exit 1
++ fi
++fi
++
+ AC_DEFINE_UNQUOTED(HOSTTYPE, "$host")
+
+ case "$host" in
+@@ -313,7 +445,7 @@
+
+ # Socket pairs appear to be broken on several systems. I don't know exactly
+ # where, so I'll use pipes everywhere for now.
+-AC_DEFINE(USE_PIPES)
++# AC_DEFINE(USE_PIPES)
+
+ AC_MSG_CHECKING([that the compiler works])
+ AC_TRY_RUN([ main(int ac, char **av) { return 0; } ],
+@@ -369,7 +501,7 @@
+
+ AC_HEADER_STDC
+ AC_HEADER_SYS_WAIT
+-AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h utmp.h shadow.h)
++AC_CHECK_HEADERS(unistd.h rusage.h sys/time.h lastlog.h login_cap.h utmp.h shadow.h)
+ AC_CHECK_HEADERS(sgtty.h sys/select.h sys/ioctl.h machine/endian.h)
+ AC_CHECK_HEADERS(paths.h usersec.h utime.h netinet/in_systm.h)
+ AC_CHECK_HEADERS(netinet/in_system.h netinet/ip.h netinet/tcp.h ulimit.h)
+@@ -399,6 +531,16 @@
+ [ AC_DEFINE(HAVE_INCOMPATIBLE_SIGINFO)
+ AC_MSG_RESULT(yes)] , AC_MSG_RESULT(no))
+
++AC_MSG_CHECKING([whether sys/socket.h have struct sockaddr_storage])
++AC_EGREP_HEADER(sockaddr_storage, sys/socket.h,
++ [ AC_DEFINE(HAVE_SOCKADDR_STORAGE) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
++AC_MSG_CHECKING([whether sys/socket.h have __ss_family])
++AC_EGREP_HEADER(__ss_family, sys/socket.h,
++ [ AC_DEFINE(HAVE_NEW_SS_FAMILY) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
++AC_MSG_CHECKING([whether sys/socket.h have sa_len])
++AC_EGREP_HEADER(sa_len, sys/socket.h,
++ [ AC_DEFINE(HAVE_SOCKADDR_LEN) AC_MSG_RESULT(yes)], AC_MSG_RESULT(no))
++
+ AC_CHECK_LIB(c, crypt, [true], AC_CHECK_LIB(crypt, crypt))
+ AC_CHECK_LIB(sec, getspnam)
+ AC_CHECK_LIB(seq, get_process_stats)
+@@ -436,6 +578,107 @@
+
+ AC_REPLACE_FUNCS(strerror memmove remove random putenv crypt socketpair snprintf)
+
++AC_MSG_CHECKING(getaddrinfo bug)
++AC_TRY_RUN([
++#include <sys/types.h>
++#include <netdb.h>
++#include <string.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++
++main()
++{
++ int passive, gaierr, inet4 = 0, inet6 = 0;
++ struct addrinfo hints, *ai, *aitop;
++ char straddr[INET6_ADDRSTRLEN], strport[16];
++
++ for (passive = 0; passive <= 1; passive++) {
++ memset(&hints, 0, sizeof(hints));
++ hints.ai_family = AF_UNSPEC;
++ hints.ai_flags = passive ? AI_PASSIVE : 0;
++ hints.ai_socktype = SOCK_STREAM;
++ if ((gaierr = getaddrinfo(NULL, "54321", &hints, &aitop)) != 0) {
++ (void)gai_strerror(gaierr);
++ goto bad;
++ }
++ for (ai = aitop; ai; ai = ai->ai_next) {
++ if (ai->ai_addr == NULL ||
++ ai->ai_addrlen == 0 ||
++ getnameinfo(ai->ai_addr, ai->ai_addrlen,
++ straddr, sizeof(straddr), strport, sizeof(strport),
++ NI_NUMERICHOST|NI_NUMERICSERV) != 0) {
++ goto bad;
++ }
++ if (strcmp(strport, "54321") != 0) {
++ goto bad;
++ }
++ switch (ai->ai_family) {
++ case AF_INET:
++ if (passive) {
++ if (strcmp(straddr, "0.0.0.0") != 0) {
++ goto bad;
++ }
++ } else {
++ if (strcmp(straddr, "127.0.0.1") != 0) {
++ goto bad;
++ }
++ }
++ inet4++;
++ break;
++ case AF_INET6:
++ if (passive) {
++ if (strcmp(straddr, "::") != 0) {
++ goto bad;
++ }
++ } else {
++ if (strcmp(straddr, "::1") != 0) {
++ goto bad;
++ }
++ }
++ inet6++;
++ break;
++ case AF_UNSPEC:
++ goto bad;
++ break;
++ default:
++ /* another family support? */
++ break;
++ }
++ }
++ }
++
++ if (!(inet4 == 0 || inet4 == 2))
++ goto bad;
++ if (!(inet6 == 0 || inet6 == 2))
++ goto bad;
++
++ if (aitop)
++ freeaddrinfo(aitop);
++ exit(0);
++
++ bad:
++ if (aitop)
++ freeaddrinfo(aitop);
++ exit(1);
++}
++],
++AC_MSG_RESULT(good)
++buggygetaddrinfo=no,
++AC_MSG_RESULT(buggy)
++buggygetaddrinfo=yes,
++AC_MSG_RESULT(buggy)
++buggygetaddrinfo=yes)
++
++if test "$buggygetaddrinfo" = "yes"; then
++ if test "$ipv6" = "yes"; then
++ echo 'Fatal: You must get working getaddrinfo() function.'
++ echo ' or you can specify "--disable-ipv6"'.
++ exit 1
++ else
++ AC_REPLACE_FUNCS(getaddrinfo getnameinfo)
++ fi
++fi
++
+ AC_PROG_LN_S
+ AC_PROG_INSTALL
+ AC_CHECK_PROG(AR, ar, ar, echo)
+@@ -932,7 +1175,11 @@
+ AC_DEFINE(KRB5)
+ KERBEROS_ROOT="$with_kerberos5"
+ KERBEROS_INCS="-I${KERBEROS_ROOT}/include"
+- KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
++ if [ -f ${KERBEROS_ROOT}/lib/libk5crypto.a ]; then
++ KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lk5crypto -lcom_err"
++ else
++ KERBEROS_LIBS="-L${KERBEROS_ROOT}/lib -lgssapi_krb5 -lkrb5 -lcrypto -lcom_err"
++ fi
+ AC_CHECK_LIB(ndbm, dbm_open, KERBEROS_LIBS="$KERBEROS_LIBS -lndbm")
+ KERBEROS_OBJS="auth-kerberos.o"
+ ;;
+@@ -1123,6 +1370,7 @@
+ AC_DEFINE(Rdup2,SOCKSdup2)
+ AC_DEFINE(Rfclose,SOCKSfclose)
+ AC_DEFINE(Rgethostbyname,SOCKSgethostbyname)
++ AC_DEFINE(Rgetaddrinfo,SOCKSgetaddrinfo)
+ fi
+
+ AC_MSG_CHECKING(whether to use rsaref)
+@@ -1252,6 +1500,38 @@
+ AC_DEFINE(ENABLE_TCP_NODELAY)
+ )
+
++AC_MSG_CHECKING(whether to enable another port try support)
++AC_ARG_ENABLE(another-port-try,
++[ --enable-another-port-try Enable another port try support (default)
++ --disable-another-port-try Disable another port try support],
++[ case "$enableval" in
++ no)
++ AC_MSG_RESULT(no)
++ ;;
++ *) AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
++ ;;
++ esac ],
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_ANOTHER_PORT_TRY)
++)
++
++AC_MSG_CHECKING(whether to enable logging auth info support)
++AC_ARG_ENABLE(log-auth,
++[ --enable-log-auth Enable logging auth info support (default)
++ --disable-log-auth Disable logging auth info support],
++[ case "$enableval" in
++ no)
++ AC_MSG_RESULT(no)
++ ;;
++ *) AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_LOG_AUTH)
++ ;;
++ esac ],
++ AC_MSG_RESULT(yes)
++ AC_DEFINE(ENABLE_LOG_AUTH)
++)
++
+ AC_MSG_CHECKING(whether to enable SO_LINGER)
+ AC_ARG_ENABLE(so-linger,
+ [ --enable-so-linger Enable setting SO_LINGER socket option],
+@@ -1311,6 +1591,8 @@
+ AC_DEFINE(SCP_ALL_STATISTICS_ENABLED)
+ )
+
++CFLAGS="$CPPFLAGS $CFLAGS"
++
+ # We include this here only to make it visible in --help; this is only used
+ # in the gmp subdirectory.
+ AC_ARG_ENABLE(asm,
+@@ -1324,7 +1606,7 @@
+ fi
+ AC_MSG_RESULT($PIDDIR)
+
+-AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
++#AC_CONFIG_SUBDIRS(gmp-2.0.2-ssh-2)
+
+ AC_ARG_PROGRAM
+
+@@ -1336,4 +1618,4 @@
+ AC_SUBST(SSHDCONFOBJS)
+ AC_SUBST(SSHINSTALLMODE)
+
+-AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 zlib-1.0.4/Makefile)
++AC_OUTPUT(Makefile sshd.8 ssh.1 make-ssh-known-hosts.1 make-ssh-known-hosts.pl)