- (dtucker) [acconfig.h configure.ac defines.h] Bug #673: check for 4-arg
   skeychallenge(), eg on NetBSD.  ok mouring@
diff --git a/ChangeLog b/ChangeLog
index 7712628..409c9ba 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,8 @@
 20040412
  - (dtucker) [sshd_config.5] Add PermitRootLogin without-password warning
    from bug #701 (text from jfh at cise.ufl.edu).
+ - (dtucker) [acconfig.h configure.ac defines.h] Bug #673: check for 4-arg
+   skeychallenge(), eg on NetBSD.  ok mouring@
 
 20040408
  - (dtucker) [loginrec.c] Use UT_LINESIZE if available, prevents truncating
@@ -961,4 +963,4 @@
    - (djm) Trim deprecated options from INSTALL. Mention UsePAM
    - (djm) Fix quote handling in sftp; Patch from admorten AT umich.edu
 
-$Id: ChangeLog,v 1.3308 2004/04/14 03:04:35 dtucker Exp $
+$Id: ChangeLog,v 1.3309 2004/04/14 05:26:39 dtucker Exp $
diff --git a/acconfig.h b/acconfig.h
index 7e788b8..f1db83e 100644
--- a/acconfig.h
+++ b/acconfig.h
@@ -1,4 +1,4 @@
-/* $Id: acconfig.h,v 1.175 2004/04/07 04:16:11 mouring Exp $ */
+/* $Id: acconfig.h,v 1.176 2004/04/14 05:26:39 dtucker Exp $ */
 
 /*
  * Copyright (c) 1999-2003 Damien Miller.  All rights reserved.
@@ -131,6 +131,9 @@
 /* Define if your AIX loginfailed() function takes 4 arguments (AIX >= 5.2) */
 #undef AIX_LOGINFAILED_4ARG
 
+/* Define if your skeychallenge() function takes 4 arguments (eg NetBSD) */
+#undef SKEYCHALLENGE_4ARG
+
 /* Define if you have/want arrays (cluster-wide session managment, not C arrays) */
 #undef WITH_IRIX_ARRAY
 
diff --git a/configure.ac b/configure.ac
index fa5021c..763c262 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-# $Id: configure.ac,v 1.211 2004/04/07 04:16:11 mouring Exp $
+# $Id: configure.ac,v 1.212 2004/04/14 05:26:39 dtucker Exp $
 #
 # Copyright (c) 1999-2004 Damien Miller
 #
@@ -743,6 +743,15 @@
 					AC_MSG_RESULT(no)
 					AC_MSG_ERROR([** Incomplete or missing s/key libraries.])
 				])
+                 	AC_MSG_CHECKING(if skeychallenge takes 4 arguments)
+			AC_TRY_COMPILE(
+				[#include <stdio.h>
+				 #include <skey.h>],
+				[(void)skeychallenge(NULL,"name","",0);],
+				[AC_MSG_RESULT(yes)
+				 AC_DEFINE(SKEYCHALLENGE_4ARG)],
+				[AC_MSG_RESULT(no)]
+        		)
 		fi
 	]
 )
diff --git a/defines.h b/defines.h
index a4fdd2c..f52dfd2 100644
--- a/defines.h
+++ b/defines.h
@@ -25,7 +25,7 @@
 #ifndef _DEFINES_H
 #define _DEFINES_H
 
-/* $Id: defines.h,v 1.113 2004/04/08 06:16:06 dtucker Exp $ */
+/* $Id: defines.h,v 1.114 2004/04/14 05:26:39 dtucker Exp $ */
 
 
 /* Constants */
@@ -546,6 +546,11 @@
 #endif
 
 
+/* Some platforms, eg NetBSD, have a 4th argument for skeychallenge() */
+#ifdef SKEYCHALLENGE_4ARG
+# define skeychallenge(a,b,c) skeychallenge((a), (b), (c), (sizeof(c)))
+#endif
+
 /*
  * Define this to use pipes instead of socketpairs for communicating with the
  * client program.  Socketpairs do not seem to work on all systems.