earle@smeagol.UUCP (03/04/87)
Well, my first two attempts to put this out cost Larry Wall much sleep and
agravated him to the point of issuing Yet Another `Patch' Patch (YAPP) :-(
My first attempt had a mangled patch in it (sorry, Larry) and the second one
I generated via `diff -l -cb', and vanilla no-options `patch' positively
despises `-b' diffs. Thus, once more, for the absolute last time (promise),
here is the `diff -l -c' version of my updates and bug fix for the report_awk
script that was posted to mod.sources as part of Erik Fair's Usenet Toolbox
(Volume 7, Issue 36 - article 511@mirror.UUCP; also distributed with 2.11
Netnews as `misc/report.awk'). Sigh ...
----------------------------- >8 Cut Here 8< ------------------------------
diff -l -c report_awk.dist report_awk
*** report_awk.dist Wed Jan 28 23:38:01 1987
--- report_awk Tue Mar 3 23:18:42 1987
***************
*** 2,8 ****
# AWK script which eats netnews log files and produces a summary of USENET
# traffic and errors over the period of time that the log was collected.
#
! # August 31, 1986
#
# Erik E. Fair <dual!fair>
# Original Author, May 22, 1984
--- 2,8 ----
# AWK script which eats netnews log files and produces a summary of USENET
# traffic and errors over the period of time that the log was collected.
#
! # January 28, 1987
#
# Erik E. Fair <dual!fair>
# Original Author, May 22, 1984
***************
*** 37,42 ****
--- 37,63 ----
# Fix up the counting of gatewayed material, add counting of "linecount"
# problems. Additional cleanup to make things faster.
#
+ # Greg Earle <smeagol!earle>
+ # Add support for added features of 2.11 that didn't make it into the
+ # released version. These include:
+ # - Field 5 = "Expired" when a control cancel invocation tries to
+ # cancel an already expired article. Added new variable to count
+ # these, and are displayed in `Control Invocations' area.
+ # Field 5 = "UNKNOWN" when a control message comes in from the outside
+ # world that is not one of the valid control messages (e.g., `sendsys').
+ # Added new variable to count, and display in Control Invocations area.
+ # - Field 5 = "Aliased", [when aliases for converting old group to new]
+ # Field 5 = "Unrecognized" [when user tried to post bad control message]
+ # Field 6 = "mailed", [when article for moderated group is mailed]
+ # Field 5 = "queued": [when SPOOLNEWS is defined, and articles queued]
+ # These are ignored (added to `Skip some things we won't bother with' area)
+ # - Field 7 = "Unknown" when a bad newsgroup. Netnews version 2.10.2 had
+ # newsgroup name in single quotes, thus bad newsgroup names were
+ # being stored after stripping first and last characters. 2.11 does not
+ # use quotes around newsgroup name, so added a check to see if single
+ # quoted or not. If not quoted, assumes 2.11. If quoted assumes 2.10.2.
+ # Handles both cases.
+ # All other messages are errors of some type, and are not processed.
BEGIN{
#
# this is the prefix that your site uses in hostnames to identify your
***************
*** 103,108 ****
--- 124,131 ----
lcount = 0;
canfail = 0;
candup = 0;
+ canexp = 0;
+ canunk = 0;
insfail = 0;
old = 0;
}
***************
*** 113,122 ****
--- 136,151 ----
$5 == "from" { next }
$5 == "make" { next }
$5 == "Cancelling" { next }
+ $5 == "Aliased" { next }
+ $5 == "queued" { next }
+ $5 == "Unrecognized" { next }
+ $6 == "mailed" { next }
#
# Or that we just count
#
$5 == "Inbound" { garbled++; next }
+ $5 == "Expired" { canexp++; next }
+ $5 == "UNKNOWN" { canunk++; next }
$6 == "cancel" { canfail++; next }
$6 == "Cancelled" { candup++; next }
$6 == "install" { insfail++; next }
***************
*** 196,203 ****
$6 == "valid" { junked[sys]++; next }
$6 == "too" { junked[sys]++; old++; next }
$5 == "Unknown" {
! x = length($7) - 2;
! ng = substr($7, 2, x);
badng[ng]++;
badgrp++;
next;
--- 225,239 ----
$6 == "valid" { junked[sys]++; next }
$6 == "too" { junked[sys]++; old++; next }
$5 == "Unknown" {
! #
! # Next line is OK if 2.11. If 2.10.2 (& 2.10.3 ?) then
! # we have to strip off the single quotes around the newsgroup name.
! #
! ng = $7;
! if (index(ng, "'") != 0) {
! x = length($7) - 2;
! ng = substr($7, 2, x);
! }
badng[ng]++;
badgrp++;
next;
***************
*** 354,359 ****
--- 390,397 ----
printf("%-12s %6d", i, ctlcnt[i]);
if (canfail) printf(", %d failed", canfail);
if (candup) printf(", %d duplicate", candup);
+ if (canexp) printf(", %d had expired", canexp);
+ if (canunk) printf(", %d unknown type", canunk);
printf("\n");
} else {
printf("%-12s %6d\n", i, ctlcnt[i]);
--
Greg Earle UUCP: sdcrdcf!smeagol!earle; attmail!earle
JPL ARPA: elroy!smeagol!earle@csvax.caltech.edu
AT&T: +1 818 354 4034 earle@jplpub1.jpl.nasa.gov (For the daring)
Is this an out-take from the ``BRADY BUNCH''?