* * * * *
Yet more notes on a Greylist implementation
It was bad enough getting up early this morning to cover the phones (Smirk
and P were heading out of the area for several meetings) but to wake up to a
customer (who had gotten my cell phone number when I called him yesterday)
complaining about bandwidth issues (and yes, their 100Mbps (Megabites per
second) connection is slower than a 56Kbps (Kilobits per second) modem) made
it all the worse.
After dealing with that issue (turned out to be a problem with The
Monopolistic Phone Company, but it took several hours to diagnose that
problem) I turned to what I had originally planned on doing today, working on
the greylist daemon [1].
I managed to fix the problem with fork() [2]. The code I used for this daemon
I borrowed from a previous daemon, which set each open file to be closed when
calling exec(). I removed that code, it worked on the server. I'm not calling
exec() (I am calling fork(), but I don't know why marking files to be closed
on exec() would have an ill effect, but it did, so it went).
Go figure.
I also wrote an interesting frontend to the daemon, which is called gld_mcp
(short for “Graylist Daemon Master Control Program”). Prior to this, I had to
send a variety of signals (as root—otherwise I don't have the appropriate
permissions), and check the system log files to get any information out of
the daemon. Now, I can do:
> gld-mcp>show stats
>
> Start: Fri Sep 14 20:58:16 2007
> End: Fri Sep 14 21:10:37 2007
> Running time: 12m 21s
> Tuples: 33
> IPs: 46
> Graylisted: 14
> Whitelisted: 19
> Graylist-Expired: 0
> Whitelist-Expired: 0
>
> gld-mcp>
>
without having to be root or grovelling through system log files. (By the
way, the IPs: field is the number of entries in the IP (Internet Protocol)
whitelist; any email coming from an IP address that matches an entry in this
table is automatically let through)
Since I changed the program to check the creation time instead of the last
access time [3], only a few more spams have gotten through, but the issue of
maybe never getting a legitimate email has gone away, which is good.
And it wasn't a totally bad day—at least the phones were quiet.
[1]
gopher://gopher.conman.org/0Phlog:2007/09/11.1
[2]
gopher://gopher.conman.org/0Phlog:2007/09/06.1
[3]
gopher://gopher.conman.org/0Phlog:2007/09/11.1
Email author at
[email protected]