aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/sendmail/mailstats
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/sendmail/mailstats')
-rw-r--r--usr.sbin/sendmail/mailstats/Makefile4
-rw-r--r--usr.sbin/sendmail/mailstats/mailstats.877
-rw-r--r--usr.sbin/sendmail/mailstats/mailstats.c23
3 files changed, 97 insertions, 7 deletions
diff --git a/usr.sbin/sendmail/mailstats/Makefile b/usr.sbin/sendmail/mailstats/Makefile
index d6a04f0bdc19..427c8df5d7ff 100644
--- a/usr.sbin/sendmail/mailstats/Makefile
+++ b/usr.sbin/sendmail/mailstats/Makefile
@@ -1,8 +1,8 @@
-# @(#)Makefile 8.1 (Berkeley) 6/7/93
+# @(#)Makefile 8.2 (Berkeley) 9/21/96
PROG= mailstats
+MAN8= mailstats.8
CFLAGS+=-I${.CURDIR}/../src
-NOMAN= noman
.include "../../Makefile.inc"
.include <bsd.prog.mk>
diff --git a/usr.sbin/sendmail/mailstats/mailstats.8 b/usr.sbin/sendmail/mailstats/mailstats.8
new file mode 100644
index 000000000000..9a21edef1b9d
--- /dev/null
+++ b/usr.sbin/sendmail/mailstats/mailstats.8
@@ -0,0 +1,77 @@
+.\"/*
+.\" * Copyright (c) 1996 John M. Vinopal
+.\" * All rights reserved.
+.\" *
+.\" * Redistribution and use in source and binary forms, with or without
+.\" * modification, are permitted provided that the following conditions
+.\" * are met:
+.\" * 1. Redistributions of source code must retain the above copyright
+.\" * notice, this list of conditions and the following disclaimer.
+.\" * 2. Redistributions in binary form must reproduce the above copyright
+.\" * notice, this list of conditions and the following disclaimer in the
+.\" * documentation and/or other materials provided with the distribution.
+.\" * 3. All advertising materials mentioning features or use of this software
+.\" * must display the following acknowledgement:
+.\" * This product includes software developed for the NetBSD Project
+.\" * by John M. Vinopal.
+.\" * 4. The name of the author may not be used to endorse or promote products
+.\" * derived from this software without specific prior written permission.
+.\" *
+.\" * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+.\" * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+.\" * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+.\" * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+.\" * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+.\" * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+.\" * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+.\" * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+.\" * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+.\" * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+.\" * SUCH DAMAGE.
+.\" */
+.\" $Id: mailstats.8,v 1.2 1996/09/23 22:24:33 wosch Exp $
+.Dd August 13, 1996
+.Dt MAILSTATS 8
+.Os
+.Sh NAME
+.Nm mailstats
+.Nd display mail protocol statistics
+.Sh SYNOPSIS
+.Nm mailstats
+.Op Fl o
+.Op Fl C Ar sendmail.cf
+.Op Fl f Ar sendmail.st
+.Sh DESCRIPTION
+.Nm Mailstats
+displays mail statistics on a per mailer basis.
+Each line of output contains
+the mailer number, the count and byte-count of incoming messages,
+the count and byte-count of outgoing messages, and the name of the
+mailer unless the
+.Fl o
+flag is specified. Common mailers include smtp and local (eg:
+.Nm mail.local,
+the program which handles local delivery of mail).
+.Pp
+Statistics are read from the
+.Nm sendmail
+statistics file
+.Ar sendmail.st,
+the location of which is defined in
+.Ar sendmail.cf,
+or specified with the
+.Fl f
+flag. Mailers are likewise defined in the
+.Ar sendmail.cf
+file. Statistics are cumulative; zero the statistics file
+to reset the counters.
+.Sh FILES
+.Bl -tag -width /var/log/sendmail.st -compact
+.It Pa /etc/sendmail.cf
+sendmail configuration file
+.It Pa /var/log/sendmail.st
+sendmail statistics file
+.El
+.Sh SEE ALSO
+.Xr sendmail 8 ,
+.Xr mail.local 8
diff --git a/usr.sbin/sendmail/mailstats/mailstats.c b/usr.sbin/sendmail/mailstats/mailstats.c
index 97ec33be7e92..cf112185cbca 100644
--- a/usr.sbin/sendmail/mailstats/mailstats.c
+++ b/usr.sbin/sendmail/mailstats/mailstats.c
@@ -40,9 +40,10 @@ static char copyright[] =
#endif /* not lint */
#ifndef lint
-static char sccsid[] = "@(#)mailstats.c 8.4 (Berkeley) 8/14/94";
+static char sccsid[] = "@(#)mailstats.c 8.8 (Berkeley) 9/25/96";
#endif /* not lint */
+#define NOT_SENDMAIL
#include <sendmail.h>
#include <mailstats.h>
#include <pathnames.h>
@@ -91,7 +92,8 @@ main(argc, argv)
case '?':
default:
usage:
- fputs("usage: mailstats [-C cffile] [-f stfile]\n", stderr);
+ fputs("usage: mailstats [-o] [-C cffile] [-f stfile]\n",
+ stderr);
exit(EX_USAGE);
}
}
@@ -189,13 +191,24 @@ main(argc, argv)
exit (EX_OSFILE);
}
- if ((fd = open(sfile, O_RDONLY)) < 0) {
+ if ((fd = open(sfile, O_RDONLY)) < 0 ||
+ (i = read(fd, &stat, sizeof stat)) < 0)
+ {
fputs("mailstats: ", stderr);
perror(sfile);
exit(EX_NOINPUT);
}
- if (read(fd, &stat, sizeof(stat)) != sizeof(stat) ||
- stat.stat_size != sizeof(stat))
+ if (i == 0)
+ {
+ sleep(1);
+ i = read(fd, &stat, sizeof stat);
+ if (i == 0)
+ {
+ bzero((ARBPTR_T) &stat, sizeof stat);
+ (void) time(&stat.stat_itime);
+ }
+ }
+ else if (i != sizeof stat || stat.stat_size != sizeof(stat))
{
fputs("mailstats: file size changed.\n", stderr);
exit(EX_OSERR);