/* config.h.in.  Generated by hand, don't use autoheader.  */

/* SSL directory.  */
#undef ssldir

/* Location of lastlog file */
#undef LASTLOG_LOCATION

/* Location of random number pool  */
#undef RANDOM_POOL

/* Are we using the Entropy gathering daemon */
#undef HAVE_EGD

/* Define if your ssl headers are included with #include <ssl/header.h>  */
#undef HAVE_SSL

/* Define if your ssl headers are included with #include <openssl/header.h>  */
#undef HAVE_OPENSSL

/* Define is utmp.h has a ut_host field */
#undef HAVE_HOST_IN_UTMP

/* Define is libutil has login() function */
#undef HAVE_LIBUTIL_LOGIN

/* Define if you want external askpass support */
#undef USE_EXTERNAL_ASKPASS

/* Define if libc defines __progname */
#undef HAVE___PROGNAME

/* Define if you want Kerberos 4 support */
#undef KRB4

/* Define if you want AFS support */
#undef AFS

/* Define if you want S/Key support */
#undef SKEY

/* Define if you want TCP Wrappers support */
#undef LIBWRAP

/* Define if your libraries define login() */
#undef HAVE_LOGIN

/* Define if your libraries define daemon() */
#undef HAVE_DAEMON

@BOTTOM@

/* ******************* Shouldn't need to edit below this line ************** */

#include <sys/types.h> /* For u_intXX_t */
#include <sys/socket.h> /* For SHUT_XXXX */
#include <paths.h> /* For _PATH_XXX */

#ifndef SHUT_RDWR
enum
{
  SHUT_RD = 0,    /* No more receptions.  */
#define SHUT_RD   SHUT_RD
  SHUT_WR,    /* No more transmissions.  */
#define SHUT_WR   SHUT_WR
  SHUT_RDWR   /* No more receptions or transmissions.  */
#define SHUT_RDWR SHUT_RDWR
};
#endif

#if !defined(u_int32_t) && defined(uint32_t)
#define u_int32_t uint32_t
#endif

#if !defined(u_int16_t) && defined(uint16_t)
#define u_int16_t uint16_t
#endif

#if !defined(quad_t) && defined(int64_t)
#define quad_t int64_t
#endif

#ifndef _PATH_LASTLOG
# ifdef LASTLOG_LOCATION
#  define _PATH_LASTLOG LASTLOG_LOCATION
# endif
#endif

#ifndef _PATH_UTMP
# ifdef UTMP_FILE
#  define _PATH_UTMP UTMP_FILE
# endif
#endif

#ifndef _PATH_WTMP
# ifdef WTMP_FILE
#  define _PATH_WTMP WTMP_FILE
# endif
#endif

#ifndef _PATH_BSHELL
# define _PATH_BSHELL "/bin/sh"
#endif

#ifndef _PATH_STDPATH
# define _PATH_STDPATH "/usr/bin:/bin:/usr/sbin:/sbin:"
#endif

#ifndef _PATH_MAILDIR
# ifdef MAILDIR
#  define _PATH_MAILDIR MAILDIR
# endif
#endif

#ifndef MAX
# define MAX(a,b) (((a)>(b))?(a):(b))
# define MIN(a,b) (((a)<(b))?(a):(b))
#endif
