| From | Sent On | Attachments |
|---|---|---|
| dh...@whistle.com | Sep 27, 2000 1:07 pm |
| Subject: | bin/21600: Case-insensitive sort/summary for mail rejects | |
|---|---|---|
| From: | dh...@whistle.com (dh...@whistle.com) | |
| Date: | Sep 27, 2000 1:07:57 pm | |
| List: | org.freebsd.freebsd-bugs | |
Number: 21600 Category: bin Synopsis: /etc/periodic/daily/460.status-mail-rejects is case-sensitive Confidential: no Severity: non-critical Priority: low Responsible: freebsd-bugs State: open Quarter: Keywords: Date-Required: Class: change-request Submitter-Id: current-users Arrival-Date: Wed Sep 27 13:10:00 PDT 2000 Closed-Date: Last-Modified: Originator: David Wolfskill Release: FreeBSD 4.1-STABLE i386 Organization: Whistle Communications Environment:
/etc/periodic/daily/460.status-mail-rejects is at 1.8.2.2.
Description:
Host names are case-insensitive (as far as DNS is concerned, at least). It is thus a bit counter-intuitive to have the output (under "Checking for rejected mail hosts:") in the "daily run output" show such things as:
Checking for rejected mail hosts: 156 interjetnet.net 63 whistle.com 13 INTERJETNET.NET 7 interjetnet.com 3 [203.69.38.37] 3 WHISTLE.COM 2 INTERJETNET.COM 1 mail.com 1 InterJetNet.net 1 <dts1.domedia.com.tw
when the "interjetnet.net" and "INTERJETNET.NET" entries refer to effectively the same (broken) destination.
How-To-Repeat:
Be the recipient of messages from spammers who use inconsistent capitalization in host names.... :-}
Fix:
Well, I'd suggest the following, which takes care of the immediate problem:
===================================================================
RCS file: RCS/460.status-mail-rejects,v
retrieving revision 1.1
diff -u -r1.1 460.status-mail-rejects
--- 460.status-mail-rejects 2000/09/27 19:17:41 1.1
+++ 460.status-mail-rejects 2000/09/27 19:18:58
@@ -37,6 +37,6 @@
} |
perl -ne "print \"\$2\n\"
if (/reject=/ and
/^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" |
- sort | uniq -c | sort -nr
+ sort -f | uniq -ic | sort -fnr
fi;;
esac
It does not nesessarily ensure any sort of consistency in the output, though -- before:
Checking for rejected mail hosts: 156 interjetnet.net 63 whistle.com 13 INTERJETNET.NET 7 interjetnet.com 3 [203.69.38.37] 3 WHISTLE.COM 2 INTERJETNET.COM 1 mail.com 1 InterJetNet.net 1 <dts1.domedia.com.tw
and after:
Checking for rejected mail hosts: 170 INTERJETNET.NET 66 WHISTLE.COM 9 INTERJETNET.COM 3 [203.69.38.37] 1 mail.com 1 <dts1.domedia.com.tw
So it's a bit of a hack, but it makes life a little easier on a postmaster.... :-} Another alternative would be to hack the Perl part to lowercase the hostnames that are emitted:
===================================================================
RCS file: RCS/460.status-mail-rejects,v
retrieving revision 1.1
diff -u -r1.1 460.status-mail-rejects
--- 460.status-mail-rejects 2000/09/27 19:17:41 1.1
+++ 460.status-mail-rejects 2000/09/27 19:55:02
@@ -35,8 +35,8 @@
done
cat /var/log/maillog
} |
- perl -ne "print \"\$2\n\"
- if (/reject=/ and
/^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);" |
+ perl -ne 'print lc($2) . "\n"
+ if (/reject=/ and
/^$start.*ruleset=check_\S+,\s+arg1=(<[^@]+@)?([^>,]+).*reject=/o);' |
sort | uniq -c | sort -nr
fi;;
esac
(So, a bit of time elapsed while I got the quoting right, which is why the numbers differ.) Here's a result from this version:
Checking for rejected mail hosts: 268 interjetnet.net 111 whistle.com 16 interjetnet.com 8 sginet.com 6 www.bhes.wash.k12.ut.us. 6 www.bhes.wash.k12.ut.us 5 [203.69.38.37] 1 www.bhes.wash.k12.ut.us.com 1 whis...@whistle.com 1 mail.com 1 <dts1.domedia.com.tw
(That trailing dot is a bit annoying... but I'm running low on time to fix it....)
Release-Note: Audit-Trail: Unformatted:
To Unsubscribe: send mail to majo...@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message





