*** 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);
+   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)
