more cleanup from Motonori Nakamura
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Mon, 15 May 1995 11:19:34 +0000 (03:19 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Mon, 15 May 1995 11:19:34 +0000 (03:19 -0800)
SCCS-vsn: usr.sbin/sendmail/src/makesendmail 8.22
SCCS-vsn: usr.sbin/sendmail/src/conf.c 8.161
SCCS-vsn: usr.sbin/sendmail/src/conf.h 8.158

usr/src/usr.sbin/sendmail/src/conf.c
usr/src/usr.sbin/sendmail/src/conf.h
usr/src/usr.sbin/sendmail/src/makesendmail

index d532b88..6fcbf2c 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)conf.c     8.160 (Berkeley) %G%";
+static char sccsid[] = "@(#)conf.c     8.161 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -1053,12 +1053,37 @@ init_vendor_macros(e)
 #define LA_MACH                5       /* MACH load averages (as on NeXT boxes) */
 #define LA_SHORT       6       /* read kmem for avenrun; interpret as short */
 #define LA_PROCSTR     7       /* read string ("1.17") from /proc/loadavg */
 #define LA_MACH                5       /* MACH load averages (as on NeXT boxes) */
 #define LA_SHORT       6       /* read kmem for avenrun; interpret as short */
 #define LA_PROCSTR     7       /* read string ("1.17") from /proc/loadavg */
+#define LA_READKSYM    8       /* SVR4: use MIOC_READKSYM ioctl call */
+#define LA_DGUX                9       /* special DGUX implementation */
+#define LA_HPUX                10      /* special HPUX implementation */
 
 /* do guesses based on general OS type */
 #ifndef LA_TYPE
 # define LA_TYPE       LA_ZERO
 #endif
 
 
 /* do guesses based on general OS type */
 #ifndef LA_TYPE
 # define LA_TYPE       LA_ZERO
 #endif
 
+#ifndef FSHIFT
+# if defined(unixpc)
+#  define FSHIFT       5
+# endif
+
+# if defined(__alpha) || defined(IRIX)
+#  define FSHIFT       10
+# endif
+
+# if defined(_AIX3)
+#  define FSHIFT       16
+# endif
+#endif
+
+#ifndef FSHIFT
+# define FSHIFT                8
+#endif
+
+#ifndef FSCALE
+# define FSCALE                (1 << FSHIFT)
+#endif
+
 #if (LA_TYPE == LA_INT) || (LA_TYPE == LA_FLOAT) || (LA_TYPE == LA_SHORT)
 
 #include <nlist.h>
 #if (LA_TYPE == LA_INT) || (LA_TYPE == LA_FLOAT) || (LA_TYPE == LA_SHORT)
 
 #include <nlist.h>
@@ -1084,35 +1109,13 @@ init_vendor_macros(e)
 # endif
 #endif
 
 # endif
 #endif
 
-struct nlist Nl[] =
+struct nlist   Nl[] =
 {
        { LA_AVENRUN },
 #define        X_AVENRUN       0
        { 0 },
 };
 
 {
        { LA_AVENRUN },
 #define        X_AVENRUN       0
        { 0 },
 };
 
-#ifndef FSHIFT
-# if defined(unixpc)
-#  define FSHIFT       5
-# endif
-
-# if defined(__alpha) || defined(IRIX)
-#  define FSHIFT       10
-# endif
-
-# if defined(_AIX3)
-#  define FSHIFT       16
-# endif
-#endif
-
-#ifndef FSHIFT
-# define FSHIFT                8
-#endif
-
-#ifndef FSCALE
-# define FSCALE                (1 << FSHIFT)
-#endif
-
 getla()
 {
        static int kmem = -1;
 getla()
 {
        static int kmem = -1;
@@ -1125,8 +1128,8 @@ getla()
        double avenrun[3];
 # endif
 #endif
        double avenrun[3];
 # endif
 #endif
-       extern off_t lseek();
        extern int errno;
        extern int errno;
+       extern off_t lseek();
 
        if (kmem < 0)
        {
 
        if (kmem < 0)
        {
@@ -1139,6 +1142,7 @@ getla()
                        return (-1);
                }
                (void) fcntl(kmem, F_SETFD, 1);
                        return (-1);
                }
                (void) fcntl(kmem, F_SETFD, 1);
+
 #ifdef _AIX3
                if (knlist(Nl, 1, sizeof Nl[0]) < 0)
 #else
 #ifdef _AIX3
                if (knlist(Nl, 1, sizeof Nl[0]) < 0)
 #else
@@ -1171,7 +1175,7 @@ getla()
                        printf("getla: lseek or read: %s\n", errstring(errno));
                return (-1);
        }
                        printf("getla: lseek or read: %s\n", errstring(errno));
                return (-1);
        }
-#if (LA_TYPE == LA_INT) || (LA_TYPE == LA_SHORT)
+# if (LA_TYPE == LA_INT) || (LA_TYPE == LA_SHORT)
        if (tTd(3, 5))
        {
                printf("getla: avenrun = %d", avenrun[0]);
        if (tTd(3, 5))
        {
                printf("getla: avenrun = %d", avenrun[0]);
@@ -1182,7 +1186,7 @@ getla()
        if (tTd(3, 1))
                printf("getla: %d\n", (int) (avenrun[0] + FSCALE/2) >> FSHIFT);
        return ((int) (avenrun[0] + FSCALE/2) >> FSHIFT);
        if (tTd(3, 1))
                printf("getla: %d\n", (int) (avenrun[0] + FSCALE/2) >> FSHIFT);
        return ((int) (avenrun[0] + FSCALE/2) >> FSHIFT);
-#else
+# else /* LA_TYPE == LA_FLOAT */
        if (tTd(3, 5))
        {
                printf("getla: avenrun = %g", avenrun[0]);
        if (tTd(3, 5))
        {
                printf("getla: avenrun = %g", avenrun[0]);
@@ -1193,15 +1197,59 @@ getla()
        if (tTd(3, 1))
                printf("getla: %d\n", (int) (avenrun[0] +0.5));
        return ((int) (avenrun[0] + 0.5));
        if (tTd(3, 1))
                printf("getla: %d\n", (int) (avenrun[0] +0.5));
        return ((int) (avenrun[0] + 0.5));
-#endif
+# endif
 }
 
 }
 
-#else
-#if LA_TYPE == LA_SUBR
+#endif /* LA_TYPE == LA_INT or LA_SHORT or LA_FLOAT */
 
 
-#ifdef DGUX
+#if LA_TYPE == LA_READKSYM
 
 
-#include <sys/dg_sys_info.h>
+getla()
+{
+       static int kmem = -1;
+       long avenrun[3];
+       extern int errno;
+       struct mioc_rksym mirk;
+
+       if (kmem < 0)
+       {
+               kmem = open("/dev/kmem", 0, 0);
+               if (kmem < 0)
+               {
+                       if (tTd(3, 1))
+                               printf("getla: open(/dev/kmem): %s\n",
+                                       errstring(errno));
+                       return (-1);
+               }
+               (void) fcntl(kmem, F_SETFD, 1);
+       }
+       mirk.mirk_symname = LA_AVENRUN;
+       mirk.mirk_buf = avenrun;
+       mirk.mirk_buflen = sizeof(avenrun);
+       if (ioctl(kmem, MIOC_READKSYM, &mirk) < 0)
+       {
+               if (tTd(3, 1))
+                       printf("getla: ioctl(MIOC_READKSYM) failed: %s\n",
+                               errstring(errno));
+               return -1;
+       }
+       if (tTd(3, 5))
+       {
+               printf("getla: avenrun = %d", avenrun[0]);
+               if (tTd(3, 15))
+                       printf(", %d, %d", avenrun[1], avenrun[2]);
+               printf("\n");
+       }
+       if (tTd(3, 1))
+               printf("getla: %d\n", (int) (avenrun[0] + FSCALE/2) >> FSHIFT);
+       return ((int) (avenrun[0] + FSCALE/2) >> FSHIFT);
+}
+
+#endif /* LA_TYPE == LA_READKSYM */
+
+#if LA_TYPE == LA_DGUX
+
+# include <sys/dg_sys_info.h>
 
 int
 getla()
 
 int
 getla()
@@ -1217,13 +1265,14 @@ getla()
        return((int) (load_info.one_minute + 0.5));
 }
 
        return((int) (load_info.one_minute + 0.5));
 }
 
-#else
-# ifdef __hpux
+#endif /* LA_TYPE == LA_DGUX */
+
+#if LA_TYPE == LA_HPUX
 
 struct pst_dynamic;
 
 
 struct pst_dynamic;
 
-#  include <sys/param.h>
-#  include <sys/pstat.h>
+# include <sys/param.h>
+# include <sys/pstat.h>
 
 int
 getla()
 
 int
 getla()
@@ -1240,7 +1289,9 @@ getla()
        return (int) (pstd.psd_avg_1_min + 0.5);
 }
 
        return (int) (pstd.psd_avg_1_min + 0.5);
 }
 
-# else
+#endif /* LA_TYPE == LA_HPUX */
+
+#if LA_TYPE == LA_SUBR
 
 int
 getla()
 
 int
 getla()
@@ -1258,9 +1309,8 @@ getla()
        return ((int) (avenrun[0] + 0.5));
 }
 
        return ((int) (avenrun[0] + 0.5));
 }
 
-# endif /* __hpux */
-#endif /* DGUX */
-#else
+#endif /* LA_TYPE == LA_SUBR */
+
 #if LA_TYPE == LA_MACH
 
 /*
 #if LA_TYPE == LA_MACH
 
 /*
@@ -1294,8 +1344,8 @@ getla()
        return (int) (info.load_average + (LOAD_SCALE / 2)) / LOAD_SCALE;
 }
 
        return (int) (info.load_average + (LOAD_SCALE / 2)) / LOAD_SCALE;
 }
 
+#endif /* LA_TYPE == LA_MACH */
 
 
-#else
 #if LA_TYPE == LA_PROCSTR
 
 /*
 #if LA_TYPE == LA_PROCSTR
 
 /*
@@ -1341,7 +1391,9 @@ getla()
        return ((int) (avenrun + 0.5));
 }
 
        return ((int) (avenrun + 0.5));
 }
 
-#else
+#endif /* LA_TYPE == LA_PROCSTR */
+
+#if LA_TYPE == LA_ZERO
 
 getla()
 {
 
 getla()
 {
@@ -1350,10 +1402,7 @@ getla()
        return (0);
 }
 
        return (0);
 }
 
-#endif
-#endif
-#endif
-#endif
+#endif /* LA_TYPE == LA_ZERO */
 
 
 /*
 
 
 /*
index 6408811..438cf12 100644 (file)
@@ -5,7 +5,7 @@
  *
  * %sccs.include.redist.c%
  *
  *
  * %sccs.include.redist.c%
  *
- *     @(#)conf.h      8.157 (Berkeley) %G%
+ *     @(#)conf.h      8.158 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
 # define HASINITGROUPS 1       /* has initgroups(3) call */
 # define HASSETREUID   1       /* has setreuid(2) call */
 # define setreuid(r, e)                setresuid(r, e, -1)
 # 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 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
@@ -304,7 +304,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 */
@@ -1298,7 +1298,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 */
index 74c822f..a5a7b66 100644 (file)
@@ -6,7 +6,7 @@
 #
 # %sccs.include.redist.sh%
 #
 #
 # %sccs.include.redist.sh%
 #
-#       @(#)makesendmail       8.21 (Berkeley) %G%
+#       @(#)makesendmail       8.22 (Berkeley) %G%
 #
 
 #
 #
 
 #
@@ -33,15 +33,15 @@ elif [ -d /usr/omron -a -f /bin/luna ]
 then
        # probably a Omron LUNA
        os=LUNA
 then
        # probably a Omron LUNA
        os=LUNA
-       if [ -f /bin/luna1 -a /bin/luna1 ]
+       if [ -f /bin/luna1 ] && /bin/luna1
        then
                rel=unios-b
                arch=luna1
        then
                rel=unios-b
                arch=luna1
-       elif [ -f /bin/luna2 -a /bin/luna2 ]
+       elif [ -f /bin/luna2 ] && /bin/luna2
        then
                rel=Mach
                arch=luna2
        then
                rel=Mach
                arch=luna2
-       elif [ -f /bin/luna88k -a /bin/luna88k ]
+       elif [ -f /bin/luna88k ] && /bin/luna88k
        then
                rel=Mach
                arch=luna88k
        then
                rel=Mach
                arch=luna88k