NCR3000 needs explicit include of sys/sockio.h
[unix-history] / usr / src / usr.sbin / sendmail / src / conf.h
index 9e3e19c..d4cd1d7 100644 (file)
@@ -5,13 +5,18 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)conf.h      8.156 (Berkeley) %G%
+ *     @(#)conf.h      8.177 (Berkeley) %G%
  */
 
 /*
 **  CONF.H -- All user-configurable parameters for sendmail
  */
 
 /*
 **  CONF.H -- All user-configurable parameters for sendmail
+**
+**     Send updates to sendmail@CS.Berkeley.EDU so they will be
+**     included in the next release.
 */
 
 */
 
+struct rusage; /* forward declaration to get gcc to shut up in wait.h */
+
 # include <sys/param.h>
 # include <sys/types.h>
 # include <sys/stat.h>
 # include <sys/param.h>
 # include <sys/types.h>
 # include <sys/stat.h>
 # define MAXTOCLASS    8               /* max # of message timeout classes */
 # define MAXMIMEARGS   20              /* max args in Content-Type: */
 # define MAXMIMENESTING        20              /* max MIME multipart nesting */
 # define MAXTOCLASS    8               /* max # of message timeout classes */
 # define MAXMIMEARGS   20              /* max args in Content-Type: */
 # define MAXMIMENESTING        20              /* max MIME multipart nesting */
-
-# ifndef QUEUESIZE
-# define QUEUESIZE     1000            /* max # of jobs per queue run */
-# endif
+# define QUEUESEGSIZE  1000            /* increment for queue size */
 
 /**********************************************************************
 **  Compilation options.
 
 /**********************************************************************
 **  Compilation options.
 #  define DSN          1       /* include delivery status notification code */
 # endif
 
 #  define DSN          1       /* include delivery status notification code */
 # endif
 
+# ifndef MIME8TO7
+#  define MIME8TO7     1       /* 8->7 bit MIME conversions */
+# endif
+
+# ifndef MIME7TO8
+#  define MIME7TO8     1       /* 7->8 bit MIME conversions */
+# endif
+
 /*
 **  Most systems have symbolic links today, so default them on.  You
 **  can turn them off by #undef'ing this below.
 /*
 **  Most systems have symbolic links today, so default them on.  You
 **  can turn them off by #undef'ing this below.
 #ifdef __STDC__
 # define HASSETVBUF    1       /* we have setvbuf(3) in libc */
 #endif
 #ifdef __STDC__
 # define HASSETVBUF    1       /* we have setvbuf(3) in libc */
 #endif
-
-/**********************************************************************
+\f/**********************************************************************
 **  Operating system configuration.
 **
 **     Unless you are porting to a new OS, you shouldn't have to
 **     change these.
 **********************************************************************/
 
 **  Operating system configuration.
 **
 **     Unless you are porting to a new OS, you shouldn't have to
 **     change these.
 **********************************************************************/
 
-/*
-**  Per-Operating System defines
-*/
-
 
 /*
 **  HP-UX -- tested for 8.07, 9.00, and 9.01.
 
 /*
 **  HP-UX -- tested for 8.07, 9.00, and 9.01.
 # undef m_flags                /* conflict between db.h & sys/sysmacros.h on HP 300 */
 # define SYSTEM5       1       /* include all the System V defines */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # undef m_flags                /* conflict between db.h & sys/sysmacros.h on HP 300 */
 # define SYSTEM5       1       /* include all the System V defines */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
-# define HASSETREUID   1       /* has setreuid(2) call */
-# define setreuid(r, e)                setresuid(r, e, -1)
-# define LA_TYPE       LA_SUBR
+# define USESETEUID    1       /* has useable seteuid(2) call */
+# define seteuid(e)    setresuid(-1, e, -1)
+# define IP_SRCROUTE   1       /* can check IP source routing */
+# define LA_TYPE       LA_HPUX
 # define SPT_TYPE      SPT_PSTAT
 # define SFS_TYPE      SFS_VFS /* use <sys/vfs.h> statfs() implementation */
 # define GIDSET_T      gid_t
 # define SPT_TYPE      SPT_PSTAT
 # define SFS_TYPE      SFS_VFS /* use <sys/vfs.h> statfs() implementation */
 # define GIDSET_T      gid_t
 # endif
 # define syslog                hard_syslog
 # ifdef __STDC__
 # endif
 # define syslog                hard_syslog
 # ifdef __STDC__
-extern int     syslog(int, char *, ...);
+extern void    hard_syslog(int, char *, ...);
 # endif
 
 # ifdef V4FS
 # endif
 
 # ifdef V4FS
@@ -173,7 +179,9 @@ extern int  syslog(int, char *, ...);
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASGETUSERSHELL 0     /* does not have getusershell(3) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASGETUSERSHELL 0     /* does not have getusershell(3) call */
+# define IP_SRCROUTE   0       /* Something is broken with getsockopt() */
 # define FORK          fork    /* no vfork primitive available */
 # define FORK          fork    /* no vfork primitive available */
+# define GIDSET_T      gid_t
 # define SFS_TYPE      SFS_STATFS      /* use <sys/statfs.h> statfs() impl */
 # define SPT_PADCHAR   '\0'    /* pad process title with nulls */
 # define LA_TYPE       LA_INT
 # define SFS_TYPE      SFS_STATFS      /* use <sys/statfs.h> statfs() impl */
 # define SPT_PADCHAR   '\0'    /* pad process title with nulls */
 # define LA_TYPE       LA_INT
@@ -201,13 +209,10 @@ extern int        syslog(int, char *, ...);
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASGETUSERSHELL 0     /* does not have getusershell(3) call */
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASGETUSERSHELL 0     /* does not have getusershell(3) call */
+# define IP_SRCROUTE   1       /* can check IP source routing */
 # define FORK          fork    /* no vfork primitive available */
 # define FORK          fork    /* no vfork primitive available */
-# if !defined(IRIX64) && !defined(IRIX5)
-#  define WAITUNION    1       /* use "union wait" as wait argument type */
-# endif
 # define setpgid       BSDsetpgrp
 # define GIDSET_T      gid_t
 # define setpgid       BSDsetpgrp
 # define GIDSET_T      gid_t
-# define ARGV_T                const char **
 # define SFS_TYPE      SFS_4ARGS       /* four argument statfs() call */
 # define SFS_BAVAIL    f_bfree         /* alternate field name */
 # define LA_TYPE       LA_INT
 # define SFS_TYPE      SFS_4ARGS       /* four argument statfs() call */
 # define SFS_BAVAIL    f_bfree         /* alternate field name */
 # define LA_TYPE       LA_INT
@@ -216,6 +221,12 @@ extern int syslog(int, char *, ...);
 # else
 #  define NAMELISTMASK 0x7fffffff              /* mask for nlist() values */
 # endif
 # else
 #  define NAMELISTMASK 0x7fffffff              /* mask for nlist() values */
 # endif
+# if defined(IRIX64) || defined(IRIX5)
+#  define ARGV_T       char *const *
+# else
+#  define ARGV_T       const char **
+#  define WAITUNION    1       /* use "union wait" as wait argument type */
+# endif
 #endif
 
 
 #endif
 
 
@@ -223,7 +234,7 @@ extern int  syslog(int, char *, ...);
 **  SunOS and Solaris
 **
 **     Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and
 **  SunOS and Solaris
 **
 **     Tested on SunOS 4.1.x (a.k.a. Solaris 1.1.x) and
-**     Solaris 2.2 (a.k.a. SunOS 5.2).
+**     Solaris 2.4 (a.k.a. SunOS 5.4).
 */
 
 #if defined(sun) && !defined(BSD)
 */
 
 #if defined(sun) && !defined(BSD)
@@ -231,6 +242,7 @@ extern int  syslog(int, char *, ...);
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASGETUSERSHELL 1     /* DOES have getusershell(3) call in libc */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASGETUSERSHELL 1     /* DOES have getusershell(3) call in libc */
+# define IP_SRCROUTE   1       /* can check IP source routing */
 # define LA_TYPE       LA_INT
 
 # ifdef SOLARIS_2_3
 # define LA_TYPE       LA_INT
 
 # ifdef SOLARIS_2_3
@@ -242,6 +254,7 @@ extern int  syslog(int, char *, ...);
 #  ifndef __svr4__
 #   define __svr4__            /* use all System V Releae 4 defines below */
 #  endif
 #  ifndef __svr4__
 #   define __svr4__            /* use all System V Releae 4 defines below */
 #  endif
+#  define BSD_COMP     1       /* get BSD ioctl calls */
 #  include <sys/time.h>
 #  define GIDSET_T     gid_t
 #  ifndef _PATH_UNIX
 #  include <sys/time.h>
 #  define GIDSET_T     gid_t
 #  ifndef _PATH_UNIX
@@ -273,6 +286,7 @@ extern int  syslog(int, char *, ...);
                        /* special tweaking for SunOS 4.0.3 */
 #   include <malloc.h>
 #   define SYS5SIGNALS 1       /* SysV signal semantics -- reset on each sig */
                        /* special tweaking for SunOS 4.0.3 */
 #   include <malloc.h>
 #   define SYS5SIGNALS 1       /* SysV signal semantics -- reset on each sig */
+#   define NEEDSTRSTR  1       /* need emulation of strstr(3) routine */
 #   define WAITUNION   1       /* use "union wait" as wait argument type */
 #   undef WIFEXITED
 #   undef WEXITSTATUS
 #   define WAITUNION   1       /* use "union wait" as wait argument type */
 #   undef WIFEXITED
 #   undef WEXITSTATUS
@@ -304,7 +318,7 @@ extern char         *getenv();
 
 #ifdef DGUX
 # define SYSTEM5       1
 
 #ifdef DGUX
 # define SYSTEM5       1
-# define LA_TYPE       LA_SUBR
+# define LA_TYPE       LA_DGUX
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASSETSID     1       /* has Posix setsid(2) call */
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASSETSID     1       /* has Posix setsid(2) call */
@@ -381,8 +395,9 @@ extern long dgux_inet_addr();
 
 #ifdef __osf__
 # define HASUNSETENV   1       /* has unsetenv(3) call */
 
 #ifdef __osf__
 # define HASUNSETENV   1       /* has unsetenv(3) call */
-# define HASSETREUID   1       /* has setreuid(2) call */
+# define USESETEUID    1       /* has useable seteuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
+# define IP_SRCROUTE   1       /* can check IP source routing */
 # ifndef HASFLOCK
 #  define HASFLOCK     1       /* has flock(2) call */
 # endif
 # ifndef HASFLOCK
 #  define HASFLOCK     1       /* has flock(2) call */
 # endif
@@ -400,6 +415,7 @@ extern long dgux_inet_addr();
 
 #ifdef NeXT
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 
 #ifdef NeXT
 # define HASINITGROUPS 1       /* has initgroups(3) call */
+# define NEEDPUTENV    2       /* need putenv(3) call; no setenv(3) call */
 # ifndef HASFLOCK
 #  define HASFLOCK     1       /* has flock(2) call */
 # endif
 # ifndef HASFLOCK
 #  define HASFLOCK     1       /* has flock(2) call */
 # endif
@@ -434,8 +450,11 @@ typedef int                pid_t;
 
 #ifdef BSD4_4
 # define HASUNSETENV   1       /* has unsetenv(3) call */
 
 #ifdef BSD4_4
 # define HASUNSETENV   1       /* has unsetenv(3) call */
+# define USESETEUID    1       /* has useable seteuid(2) call */
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
+# define BSD4_4_SOCKADDR       /* has sa_len */
+# define NETLINK               /* supports AF_LINK */
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
 # endif
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
 # endif
@@ -452,8 +471,11 @@ typedef int                pid_t;
 #ifdef __bsdi__
 # define HASUNSETENV   1       /* has the unsetenv(3) call */
 # define HASSETSID     1       /* has the setsid(2) POSIX syscall */
 #ifdef __bsdi__
 # define HASUNSETENV   1       /* has the unsetenv(3) call */
 # define HASSETSID     1       /* has the setsid(2) POSIX syscall */
+# define USESETEUID    1       /* has useable seteuid(2) call */
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
+# define BSD4_4_SOCKADDR       /* has sa_len */
+# define NETLINK               /* supports AF_LINK */
 # define SFS_TYPE      SFS_MOUNT       /* use <sys/mount.h> statfs() impl */
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
 # define SFS_TYPE      SFS_MOUNT       /* use <sys/mount.h> statfs() impl */
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
@@ -485,11 +507,14 @@ typedef int               pid_t;
 #if defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 # define HASUNSETENV   1       /* has unsetenv(3) call */
 # define HASSETSID     1       /* has the setsid(2) POSIX syscall */
 #if defined(__386BSD__) || defined(__FreeBSD__) || defined(__NetBSD__)
 # define HASUNSETENV   1       /* has unsetenv(3) call */
 # define HASSETSID     1       /* has the setsid(2) POSIX syscall */
+# define USESETEUID    1       /* has useable seteuid(2) call */
 # ifdef __NetBSD__
 #  define HASUNAME     1       /* has uname(2) syscall */
 # endif
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
 # ifdef __NetBSD__
 #  define HASUNAME     1       /* has uname(2) syscall */
 # endif
 # include <sys/cdefs.h>
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
+# define BSD4_4_SOCKADDR       /* has sa_len */
+# define NETLINK               /* supports AF_LINK */
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
 # endif
 # ifndef LA_TYPE
 #  define LA_TYPE      LA_SUBR
 # endif
@@ -667,6 +692,7 @@ typedef short               pid_t;
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASSETSID     1       /* has POSIX setsid(2) call */
 # define NEEDGETOPT    1       /* need replacement for getopt(3) */
 # define HASUNAME      1       /* use System V uname(2) system call */
 # define HASSETSID     1       /* has POSIX setsid(2) call */
 # define NEEDGETOPT    1       /* need replacement for getopt(3) */
+# define IP_SRCROUTE   0       /* Something is broken with getsockopt() */
 # define LA_TYPE       LA_FLOAT
 # define SFS_TYPE      SFS_VFS /* use <sys/vfs.h> statfs() implementation */
 # ifndef _PATH_SENDMAILCF
 # define LA_TYPE       LA_FLOAT
 # define SFS_TYPE      SFS_VFS /* use <sys/vfs.h> statfs() implementation */
 # ifndef _PATH_SENDMAILCF
@@ -727,10 +753,9 @@ extern void                *malloc();
 **     Florian La Roche <rzsfl@rz.uni-sb.de>
 **     Karl London <karl@borg.demon.co.uk>
 **
 **     Florian La Roche <rzsfl@rz.uni-sb.de>
 **     Karl London <karl@borg.demon.co.uk>
 **
-**  Last compiled against:     [12/14/94 @ 11:38:41 PM (Wednesday)]
-**     sendmail 8.7.a.5        named 4.9.3-beta12-p1   db-1.85
-**     gcc 2.6.2               libc.so.4.6.20
-**     slackware 2.1.0         linux 1.1.70
+**  Last compiled against:     [05/25/95 @ 11:39:31 AM (Thursday)]
+**     sendmail 8.7.b.0        named 4.9.3-beta17      db-1.85
+**     gcc 2.6.4-950518        libc-5.0.9              linux 1.2.8
 */
 
 #ifdef __linux__
 */
 
 #ifdef __linux__
@@ -741,6 +766,7 @@ extern void         *malloc();
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
 # define GIDSET_T      gid_t   /* from <linux/types.h> */
 # define HASGETUSERSHELL 0     /* getusershell(3) broken in Slackware 2.0 */
 # define ERRLIST_PREDEFINED    /* don't declare sys_errlist */
 # define GIDSET_T      gid_t   /* from <linux/types.h> */
 # define HASGETUSERSHELL 0     /* getusershell(3) broken in Slackware 2.0 */
+# define IP_SRCROUTE   0       /* linux <= 1.2.8 doesn't support IP_OPTIONS */
 # ifndef HASFLOCK
 #  define HASFLOCK     0       /* flock(2) is broken after 0.99.13 */
 # endif
 # ifndef HASFLOCK
 #  define HASFLOCK     0       /* flock(2) is broken after 0.99.13 */
 # endif
@@ -1018,7 +1044,9 @@ typedef int               pid_t;
 */
 
 #ifdef NCR3000
 */
 
 #ifdef NCR3000
+# include <sys/sockio.h>
 # define __svr4__
 # define __svr4__
+# define IP_SRCROUTE   0       /* Something is broken with getsockopt() */
 # undef BSD
 # define LA_AVENRUN    "avenrun"
 #endif
 # undef BSD
 # define LA_AVENRUN    "avenrun"
 #endif
@@ -1107,7 +1135,7 @@ extern int        syslog(int, char *, ...);
 /*
 **  Cray Computer Corporation's CSOS
 **
 /*
 **  Cray Computer Corporation's CSOS
 **
-**     Contributed by Scott Bolte <scott@craycos.com>.
+**     From Scott Bolte <scott@craycos.com>.
 */
 
 #ifdef _CRAYCOM
 */
 
 #ifdef _CRAYCOM
@@ -1125,6 +1153,8 @@ extern struct group       *getgrent(), *getgrnam(), *getgrgid();
 
 /*
 **  Sony NEWS-OS 4.2.1R and 6.0.3
 
 /*
 **  Sony NEWS-OS 4.2.1R and 6.0.3
+**
+**     From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
 */
 
 #ifdef sony_news
 */
 
 #ifdef sony_news
@@ -1153,13 +1183,15 @@ typedef int             (*sigfunc_t)();
 #  define SYSTEM5      1       /* include all the System V defines */
 #  define SYS5SIGNALS  1       /* SysV signal semantics -- reset on each sig */
 #  define HASINITGROUPS        1       /* has initgroups(3) call */
 #  define SYSTEM5      1       /* include all the System V defines */
 #  define SYS5SIGNALS  1       /* SysV signal semantics -- reset on each sig */
 #  define HASINITGROUPS        1       /* has initgroups(3) call */
-#  define HASSETREUID  1       /* has setreuid(2) call */
+#  define USESETEUID   1       /* has useable seteuid(2) call */
 #  define HASSETSID    1       /* has Posix setsid(2) call */
 #  define HASGETUSERSHELL 1    /* DOES have getusershell(3) call in libc */
 #  define HASSETSID    1       /* has Posix setsid(2) call */
 #  define HASGETUSERSHELL 1    /* DOES have getusershell(3) call in libc */
-#  define LA_TYPE      LA_INT
+#  define LA_TYPE      LA_READKSYM     /* use MIOC_READKSYM ioctl */
 #  define SFS_TYPE     SFS_STATVFS     /* use <sys/statvfs.h> statvfs() impl */
 #  define SFS_TYPE     SFS_STATVFS     /* use <sys/statvfs.h> statvfs() impl */
+#  ifndef SPT_TYPE
+#   define SPT_TYPE    SPT_SYSMIPS     /* use sysmips() (OS 6.0.2 or later) */
+#  endif
 #  define GIDSET_T     gid_t
 #  define GIDSET_T     gid_t
-#  define setreuid(r, e)       seteuid(e)
 #  undef WIFEXITED
 #  undef WEXITSTATUS
 #  define _PATH_UNIX  "/stand/unix"
 #  undef WIFEXITED
 #  undef WEXITSTATUS
 #  define _PATH_UNIX  "/stand/unix"
@@ -1176,6 +1208,8 @@ typedef int               (*sigfunc_t)();
 
 /*
 **  Omron LUNA/UNIOS-B 3.0, LUNA2/Mach and LUNA88K Mach
 
 /*
 **  Omron LUNA/UNIOS-B 3.0, LUNA2/Mach and LUNA88K Mach
+**
+**     From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
 */
 
 #ifdef luna
 */
 
 #ifdef luna
@@ -1183,9 +1217,13 @@ typedef int              (*sigfunc_t)();
 #  define IDENTPROTO   0       /* TCP/IP implementation is broken */
 # endif
 # ifdef uniosb
 #  define IDENTPROTO   0       /* TCP/IP implementation is broken */
 # endif
 # ifdef uniosb
+#  include <sys/time.h>
 #  define NEEDVPRINTF  1       /* need a replacement for vprintf(3) */
 # endif
 #  define NEEDVPRINTF  1       /* need a replacement for vprintf(3) */
 # endif
+# define HASUNSETENV   1       /* has unsetenv(2) call */
+# define NEEDPUTENV    1       /* need putenv(3) call */
 # define NEEDGETOPT    1       /* need a replacement for getopt(3) */
 # define NEEDGETOPT    1       /* need a replacement for getopt(3) */
+# define NEEDSTRSTR    1       /* need emulation of the strstr(3) call */
 # define WAITUNION     1       /* use "union wait" as wait argument type */
 # ifdef uniosb
 #  define LA_TYPE      LA_INT
 # define WAITUNION     1       /* use "union wait" as wait argument type */
 # ifdef uniosb
 #  define LA_TYPE      LA_INT
@@ -1212,36 +1250,23 @@ extern int      errno;
 
   
 /*
 
   
 /*
-**  NEC EWS-UX/V 4.2
+**  NEC EWS-UX/V 4.2 (with /usr/ucb/cc)
 **
 **
-**  with /usr/ucb/cc
+**     From Motonori NAKAMURA <motonori@cs.ritsumei.ac.jp>.
 */
 
 #ifdef nec_ews_svr4
 */
 
 #ifdef nec_ews_svr4
-# define SYSTEM5       1       /* include all the System V defines */
+# ifndef __svr4__
+#  define __svr4__             /* use all System V Releae 4 defines below */
+# endif
 # define SYS5SIGNALS   1       /* SysV signal semantics -- reset on each sig */
 # define SYS5SIGNALS   1       /* SysV signal semantics -- reset on each sig */
-# define HASINITGROUPS 1       /* has initgroups(3) call */
-# define HASSETREUID   1       /* has setreuid(2) call */
-# define setreuid(r, e)        seteuid(e)
 # define HASSETSID     1       /* has Posix setsid(2) call */
 # define HASSETSID     1       /* has Posix setsid(2) call */
-# define LA_TYPE       LA_INT
+# define LA_TYPE       LA_READKSYM     /* use MIOC_READSYM ioctl */
 # define SFS_TYPE      SFS_USTAT       /* use System V ustat(2) syscall */
 # define GIDSET_T      gid_t
 # define SFS_TYPE      SFS_USTAT       /* use System V ustat(2) syscall */
 # define GIDSET_T      gid_t
-# ifndef HASGETUSERSHELL
-#  define HASGETUSERSHELL      0       /* does not have getusershell(3) call */
-# endif
 # undef WIFEXITED
 # undef WEXITSTATUS
 # undef WIFEXITED
 # undef WEXITSTATUS
-# ifndef _PATH_UNIX
-#  define _PATH_UNIX           "/unix"
-# endif
-# ifndef _PATH_SENDMAILCF
-#  define _PATH_SENDMAILCF     "/var/ucblib/sendmail.cf"
-# endif
-# ifndef _PATH_SENDMAILPID
-#  define _PATH_SENDMAILPID    "/var/ucblib/sendmail.pid"
-# endif
-# define NAMELISTMASK  0x7fffffff              /* mask for nlist() values */
+# define NAMELISTMASK  0x7fffffff      /* mask for nlist() values */
 #endif
 
 
 #endif
 
 
@@ -1249,8 +1274,7 @@ extern int        errno;
 /**********************************************************************
 **  End of Per-Operating System defines
 **********************************************************************/
 /**********************************************************************
 **  End of Per-Operating System defines
 **********************************************************************/
-
-/**********************************************************************
+\f/**********************************************************************
 **  More general defines
 **********************************************************************/
 
 **  More general defines
 **********************************************************************/
 
@@ -1259,6 +1283,9 @@ extern int        errno;
 # define HASGETDTABLESIZE 1    /* has getdtablesize(2) call */
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASGETDTABLESIZE 1    /* has getdtablesize(2) call */
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
+# ifndef IP_SRCROUTE
+#  define IP_SRCROUTE  1       /* can check IP source routing */
+# endif
 # ifndef HASSETRLIMIT
 #  define HASSETRLIMIT 1       /* has setrlimit(2) call */
 # endif
 # ifndef HASSETRLIMIT
 #  define HASSETRLIMIT 1       /* has setrlimit(2) call */
 # endif
@@ -1273,7 +1300,7 @@ extern int        errno;
 /* general System V Release 4 defines */
 #ifdef __svr4__
 # define SYSTEM5       1
 /* general System V Release 4 defines */
 #ifdef __svr4__
 # define SYSTEM5       1
-# define HASSETREUID   1       /* has seteuid(2) call & working saved uids */
+# define USESETEUID    1       /* has useable seteuid(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # ifndef HASSETRLIMIT
 #  define HASSETRLIMIT 1       /* has setrlimit(2) call */
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # ifndef HASSETRLIMIT
 #  define HASSETRLIMIT 1       /* has setrlimit(2) call */
@@ -1281,7 +1308,6 @@ extern int        errno;
 # ifndef HASGETUSERSHELL
 #  define HASGETUSERSHELL 0    /* does not have getusershell(3) call */
 # endif
 # ifndef HASGETUSERSHELL
 #  define HASGETUSERSHELL 0    /* does not have getusershell(3) call */
 # endif
-# define setreuid(r, e)        seteuid(e)
 
 # ifndef _PATH_UNIX
 #  define _PATH_UNIX           "/unix"
 
 # ifndef _PATH_UNIX
 #  define _PATH_UNIX           "/unix"
@@ -1310,7 +1336,11 @@ extern int       errno;
 #  define HASULIMIT    1       /* has the ulimit(2) syscall */
 # endif
 # ifndef LA_TYPE
 #  define HASULIMIT    1       /* has the ulimit(2) syscall */
 # endif
 # ifndef LA_TYPE
-#  define LA_TYPE      LA_INT          /* assume integer load average */
+#  ifdef MIOC_READKSYM
+#   define LA_TYPE     LA_READKSYM     /* use MIOC_READKSYM ioctl */
+#  else
+#   define LA_TYPE     LA_INT          /* assume integer load average */
+#  endif
 # endif
 # ifndef SFS_TYPE
 #  define SFS_TYPE     SFS_USTAT       /* use System V ustat(2) syscall */
 # endif
 # ifndef SFS_TYPE
 #  define SFS_TYPE     SFS_USTAT       /* use System V ustat(2) syscall */
@@ -1327,19 +1357,11 @@ extern int      errno;
 #ifdef _POSIX_VERSION
 # define HASSETSID     1       /* has Posix setsid(2) call */
 # define HASWAITPID    1       /* has Posix waitpid(2) call */
 #ifdef _POSIX_VERSION
 # define HASSETSID     1       /* has Posix setsid(2) call */
 # define HASWAITPID    1       /* has Posix waitpid(2) call */
+# if _POSIX_VERSION >= 199500 && !defined(USESETEUID)
+#  define USESETEUID   1       /* has useable seteuid(2) call */
+# endif
 #endif
 #endif
-
-/*
-**  If no type for argument two of getgroups call is defined, assume
-**  it's an integer -- unfortunately, there seem to be several choices
-**  here.
-*/
-
-#ifndef GIDSET_T
-# define GIDSET_T      int
-#endif
-
-/*
+\f/*
 **  Tweaking for systems that (for example) claim to be BSD or POSIX
 **  but don't have all the standard BSD or POSIX routines (boo hiss).
 */
 **  Tweaking for systems that (for example) claim to be BSD or POSIX
 **  but don't have all the standard BSD or POSIX routines (boo hiss).
 */
@@ -1378,6 +1400,10 @@ extern int       errno;
 # define IDENTPROTO    1       /* use IDENT proto (RFC 1413) */
 #endif
 
 # define IDENTPROTO    1       /* use IDENT proto (RFC 1413) */
 #endif
 
+#ifndef IP_SRCROUTE
+# define IP_SRCROUTE   1       /* Detect IP source routing */
+#endif
+
 #ifndef HASGETUSERSHELL
 # define HASGETUSERSHELL 1     /* libc has getusershell(3) call */
 #endif
 #ifndef HASGETUSERSHELL
 # define HASGETUSERSHELL 1     /* libc has getusershell(3) call */
 #endif
@@ -1386,6 +1412,14 @@ extern int       errno;
 # define HASFLOCK      0       /* assume no flock(2) support */
 #endif
 
 # define HASFLOCK      0       /* assume no flock(2) support */
 #endif
 
+#ifndef HASSETREUID
+# define HASSETREUID   0       /* assume no setreuid(2) call */
+#endif
+
+#ifndef USESETEUID
+# define USESETEUID    0       /* assume no seteuid(2) call or no saved ids */
+#endif
+
 #ifndef HASSETRLIMIT
 # define HASSETRLIMIT  0       /* assume no setrlimit(2) support */
 #endif
 #ifndef HASSETRLIMIT
 # define HASSETRLIMIT  0       /* assume no setrlimit(2) support */
 #endif
@@ -1407,6 +1441,16 @@ extern int       errno;
 # endif
 #endif
 
 # endif
 #endif
 
+/*
+**  If no type for argument two of getgroups call is defined, assume
+**  it's an integer -- unfortunately, there seem to be several choices
+**  here.
+*/
+
+#ifndef GIDSET_T
+# define GIDSET_T      int
+#endif
+
 #ifndef UID_T
 # define UID_T         uid_t
 #endif
 #ifndef UID_T
 # define UID_T         uid_t
 #endif
@@ -1418,9 +1462,7 @@ extern int        errno;
 #ifndef ARGV_T
 # define ARGV_T                char **
 #endif
 #ifndef ARGV_T
 # define ARGV_T                char **
 #endif
-
-
-/**********************************************************************
+\f/**********************************************************************
 **  Remaining definitions should never have to be changed.  They are
 **  primarily to provide back compatibility for older systems -- for
 **  example, it includes some POSIX compatibility definitions
 **  Remaining definitions should never have to be changed.  They are
 **  primarily to provide back compatibility for older systems -- for
 **  example, it includes some POSIX compatibility definitions