[Raw Msg Headers][Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Zmailer shortcomings (re pop/imap clients)
While we're on this subject...
I just found a problem with MX handling.
Assume that the MX for somebody points to me. Therefore, the MX lookup
returns an error. Unfortunately, that host has an A record, therefore
smtp_neighbour returns a pointer to that host. Not good.
I can't just trash the A lookup because many idiots out there don't know
what MXes are. :-(
The system in question has an A record because they're using UUCP over TCP
to pick up their mail. SMTP delivery must take precedence over UUCP delivery
because otherwise we would run into serious problems.
I hacked around the problem by defining a new database, and augmenting
smtp_neighbour thus:
smtp_neighbour (domain, address, A) {
+ local xx
+ if xx=$(block_smtp "$domain") ; then
+ return 1
+ fi
if host_neighbour "$domain". ; then
return (((smtp "$domain" "$address" $A)))
fi
return 1
}
This fixes the immediate problem, but it's a very ugly solution -- mainly
because I have to remember to add new UUCP/TCP systems to this database..
I'd rather have an MX+A subtype for the bind database which returns
an A record only if there's no MX at all present.
NB: The block_smtp database is defined somewhere else.
Actually, it hangs off the multiple-access multiple-subtype gdbm-style
database I'm playing with right now. (Still somewhat flaky. But "multiple
access" includes multiple concurrent writers, which is why I'm doing this.)
--
In 1913 the first diving school opened. Graduates got a deep-loma.
-- "On This Day in History"
--
Matthias Urlichs -- urlichs@smurf.sub.org -- urlichs@smurf.ira.uka.de /(o\
Humboldtstrasse 7 -- 7500 Karlsruhe 1 -- Germany -- +49-721-9612521 \o)/