[dns-operations] Mozilla Firefox and ANY queries

Florian Weimer fw at deneb.enyo.de
Sun Mar 1 20:32:34 UTC 2015

* Mark Andrews:

> In message <87k2z0vksq.fsf at mid.deneb.enyo.de>, Florian Weimer writes:
>> * Mark Andrews:
>> > getaddrinfo was designed to extended.  It wouldn't be hard to add ttl
>> > information to getaddrinfo, just add a ai_ttl to the structure at the
>> > end and define a flag to say whether it is valid.  
>> struct addrinfo cannot be extended in this way because its size is
>> part of the ABI, and callers are even encouraged to allocate struct
>> addrinfo objects to pass the hints.
> And that is something that can be dealt with by setting a flag bit
> when calling getaddrinfo.  As I stated getaddrinfo is designed to be
> extended.

This is doesn't work for an important case, which I mentioned in the
next paragraph:

>> I've already found one Debian package which embeds a struct addrinfo
>> field in the middle of a struct defined in a header file (the shishi
>> Kerberos implementation).  Unfortunately, changing struct addrinfo
>> in the way you propose has an extremely high risk of breaking
>> applications.

We don't have the luxury of recompiling the entire world if we change
something in libc.  We tried something similar with another
supposedly-extensible struct, and all hell broke lose as a result.
Changing the size of struct addrinfo simply not an option for us.

More information about the dns-operations mailing list