[net-dns-users] Release candidate for Net::DNS 1.06

Doug Barton dougb at dougbarton.us
Tue Apr 19 19:14:04 UTC 2016

On 04/19/2016 12:51 AM, Willem Toorop wrote:
> Hi Doug,
> I just want to add that I'm sorry to hear upgraded Net::DNS is causing
> you trouble.

Let's be clear. "Upgraded Net::DNS" didn't just happen, the lack of 
backwards compatibility is a direct result of decisions which you(pl) 
have made in regards to changing the format of the data as it's output 
to the caller.

That's not Ok.

I cannot emphasize this point strongly enough. Net::DNS is very old 
code. It has a huge installed base, with millions of scripts written 
against it.

The very concept of changing the data presentation format of data based 
on parameters not under the control of the caller (in this case line 
length) is horrifically bad design to start with. But even assuming that 
a rational argument could be made for doing that in new code, there are 
no circumstances where a change of this nature is Ok in a well 
established library.

I don't care what your justification is, I don't care how well 
established the new format is, I don't care. This isn't something that 
you do, ever.

Now if you think your new presentation format is awesome, or valuable, 
or whatever, that's fine .... create a NEW method for the NEW format, 
and let people vote with their feet. I'm all for innovation, and if you 
did that my only feedback would be that in over 20 years as a DNS admin 
and many tens of thousands of zones files reviewed I've never seen 
someone line wrap an A or AAAA record. But I don't care, because I'm not 
going to use that new method.

The string method however needs to be left alone ... it should return 
its data on one line, with no parens, just like it always has.

> However, it would be wise to process zone files with
> Net::DNS::ZoneFile

That's great advice, except that I'm not processing zone files.

> Having that said, we could consider influencing the parameters for
> presentation format (like for # columns) as a feature request.  It
> requires thinking about how to do this best architecturally though, and
> will not make the 1.06 release.

I am not asking for a new feature. I'm asking you to remove (or 
relocate) the incredibly wrong-headed new feature that you already added 
due to it causing significant regression in the established code base 
(and being a painfully bad idea in the first place).


> Op 19-04-16 om 09:15 schreef Willem Toorop:
>> Hi Doug,
>> The output format is simply DNS presentation format.  It is a well known
>> and reasonably well defined format (already described in RFC1035 as
>> "Master file" format).  It is not something which is specific for Net::DNS.
>> You can use the zone parsing functions of Net::DNS to read this output,
>> or the output from any other software that writes DNS presentation
>> format for that matter.  Have a look at the documentation of
>> Net::DNS::ZoneFile.
>> Kind regards,
>> -- Willem Toorop
>> Op 19-04-16 om 08:42 schreef Doug Barton:
>>> April 18 2016 10:39 PM, "Doug Barton" <dougb at dougbarton.us> wrote:
>>>> I can certainly see how this is suboptimal, and the new format is better, but the problem is that
>>>> it has a newline embedded:
>>>> aaa. 86400 in ds ( 21707 8 1
>>>> 6d92dd0d0db0e392fa9d5f08ea15bbd297b8cbe2 )
>>>> Can we get this in one line? It makes it a whole lot easier to process. (FWIW, the print method has
>>>> the same issue)
>>>> And in the future can we avoid newlines in the data?
>>> So it's actually worse than I thought. :(  The wrapping and adding of parens seems to be a function of line length, not record type. There are DS records in the root zone that don't trigger the wrapping, and there are AAAA records in the root zone that do:
>>> d.xn--node.globalanycastcloud.freenom.net.	172800	IN	AAAA	(
>>> 	2a04:1b00:b::4 )
>>> dns1.u-registry.com.	172800	IN	AAAA	(
>>> 	2604:4300:a:8c:5054:ff:fe47:8582 )
>>> Can we please remove this ill-advised change altogether? When processing these records it magnifies my code complexity significantly if I have to test every record for the presence of newlines, join them if they are present, extract patterns with and without parens, etc. I can absorb the development cost of testing for two different  DS record formats because the new format is a legitimate improvement. But having to deal with the multiline/paren issue appearing at random for certain (all?) record types is not Ok.
>>> Doug
>>> _______________________________________________
>>> net-dns-users mailing list
>>> net-dns-users at nlnetlabs.nl
>>> https://www.nlnetlabs.nl/mailman/listinfo/net-dns-users
>> _______________________________________________
>> net-dns-users mailing list
>> net-dns-users at nlnetlabs.nl
>> https://www.nlnetlabs.nl/mailman/listinfo/net-dns-users
> _______________________________________________
> net-dns-users mailing list
> net-dns-users at nlnetlabs.nl
> https://www.nlnetlabs.nl/mailman/listinfo/net-dns-users

More information about the net-dns-users mailing list