rendered paste body
##########################################################################
# $Id: smf-sav, v 1.68 2008/03/05 14:58:06 bpirie Exp $
##########################################################################
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
# Initialize variables
my $smf_failed = 0;
my $smf_tempfailed = 0;
my $smf_received = 0;
while (defined($ThisLine = <STDIN>)) {
$ThisLine =~ s/^[a-zA-Z0-9]+: //;
if ( ( $ThisLine =~ m/^Milter (smf-sav): / )
) {
} elsif ( $ThisLine =~ m/sender check succeeded: (.+), (.+), (.+), .+/) {
$smf_succeeded = $smf_succeeded++;
$SendSucceed_Host{$1}++;
$SendSucceed_Host_Detail{"From $1 via $2, $3"}++;
} elsif ( $ThisLine =~ m/sender check failed: (.+), (.+), (.+), .+/) {
$smf_failed = $smf_failed++;
$SendFail_Sender{$1}++;
$SendFail_IP{$2}++;
$SendFail_Host{$3}++;
$SendFail_Sender_Detail{"From $1 via $2, $3"}++;
$SendFail_IP_Detail{"By $2, $3 From $1"}++;
$SendFail_Host_Detail{"By $3, $2 From $1"}++;
} elsif ( $ThisLine =~ m/sender check tempfailed: (.+), (.+), (.+), .+/) {
$smf_tempfailed = $smf_tempfailed++;
$SendTempFail_Host{$1}++;
$SendTempFail_Host_Detail{"From $1 via $2, $3"}++;
} else {
chomp($ThisLine);
# Report any unmatched entries...
$OtherList{$ThisLine}++;
}
}
if (keys %SendSucceed_Host) {
print "\nSuccessfully Verified Sender Addresses: (Total Seen = $smf_succeeded)\n";
foreach $ThisOne (sort keys %SendSucceed_Host) {
print ' ' . $ThisOne . ': ' . $SendSucceed_Host{$ThisOne} . " Time(s)\n";
}
print "\n\n Detail:\n";
foreach $ThisOne (sort keys %SendSucceed_Host_Detail) {
print ' ' . $ThisOne . ': ' . $SendSucceed_Host_Detail{$ThisOne} . " Time(s)\n";
}
}
if (keys %SendFail_Sender) {
print "\nFailed to Verify Sender Addresses: (Total Seen = $smf_failed)\n";
foreach $ThisOne (sort keys %SendFail_Sender) {
print ' ' . $ThisOne . ': ' . $SendFail_Sender{$ThisOne} . " Time(s)\n";
}
print "\n\nHost List:\n";
foreach $ThisOne (sort keys %SendFail_Host) {
print ' ' . $ThisOne . ': ' . $SendFail_Host{$ThisOne} . " Time(s)\n";
}
print "\n\n Detail:\n";
print "\nSorted by Sender\n";
foreach $ThisOne (sort keys %SendFail_Sender_Detail) {
print ' ' . $ThisOne . ': ' . $SendFail_Sender_Detail{$ThisOne} . " Time(s)\n";
}
print "\nSorted by IP\n";
foreach $ThisOne (sort keys %SendFail_IP_Detail) {
print ' ' . $ThisOne . ': ' . $SendFail_IP_Detail{$ThisOne} . " Time(s)\n";
}
print "\nSorted by Host\n";
foreach $ThisOne (sort keys %SendFail_Host_Detail) {
print ' ' . $ThisOne . ': ' . $SendFail_Host_Detail{$ThisOne} . " Time(s)\n";
}
}