[net-dns-users] SOA rname as mailbox

Dick Franks rwfranks at acm.org
Thu May 21 18:48:11 UTC 2015

On 19 May 2015 at 09:38, Doug Barton <dougb at dougbarton.us> wrote:

> On 5/18/15 5:30 PM, Dick Franks wrote:
>> All of this was discussed at length on this list in 2012/2013
> Yes, and some of us told you at the time that while your reasoning was air
> tight, and self-consistent; the resulting change did not meet our needs.

The air tight and self-consistent reasoning was founded on a careful
analysis of RFC1035. The present implementation of Net::DNS got where it
got by following that reasoning.  Analysis and air tight reasoning are
investments with a long-term yield in the form of design stability.

The pre-0.69 implementation was not based on a sound analysis of RFC1035,
which is regrettable but these things happen.  This is the only flaw in
Michael Fuhr's original vision.

For example, the obvious, glaring exception to your statement that "There
> is absolutely nothing useful you can do with the wire-format domain name
> representation" is that you can, and often need to, stuff it into a data
> store that will be used by something other than Net::DNS to generate zone
> files down the road.

It is certainly arguable that RFC1035 was wrong in not using RFC822 for the
SOA RNAME field in zone file format. This is a mistake we all have to live
with.  The need to jump through hoops to convert mail addresses into domain
names is a direct consequence of that mistake. The need to do so arises
from *your* design decision about what to stuff in *your* data store.

So while it makes perfect sense to have a way to generate 822 format from
> Net::DNS, and it might even make sense to have that be the default,

RFC822 format is the primary representation of entities that claim to be a
mail address.  The wire-format and domain name representations are
encodings of that primary representation.

it ALSO makes sense to have a way to get the wire format without having to
> jump through insane hoops to do so.
> ... and just to save you time, no, it does not make sense for Net::DNS to
> decode the wire format, then have the other system re-encode it.

We will have to agree to differ about what does, or does not, make sense.

The conversion can be done in a single line.  The computational cost is
insignificant compared with the cost of resolving the SOA record.

use Net::DNS::Mailbox;

my $email = 'John.Doe at example.com';

my $name = new Net::DNS::Mailbox($email)->string;  # zone file format

The attractions of doing things this way are:
1) The conversion will forever remain in sync with current understanding of
RFC1035 and RFC822 et seq.
2) If you discover any example which violates the RFCs, I agree to let you
kick me until it is fixed.
3) The conversion accepts both RFC822 and the domain name encoded format,
so there is no need to check which you have.

-- Dick
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.nlnetlabs.nl/pipermail/net-dns-users/attachments/20150521/dcdbb7fb/attachment.htm>

More information about the net-dns-users mailing list