dns and software, was Re: Reliable Cloud host ?
Jimmy Hess
mysidia at gmail.com
Thu Mar 1 06:15:54 UTC 2012
On Mon, Feb 27, 2012 at 10:57 PM, Matt Addison
<matt.addison at lists.evilgeni.us> wrote:
> gai/gni do not return TTL values on any platforms I'm aware of, the
> only way to get TTL currently is to use a non standard resolver (e.g.
> lwres). The issue is application developers not calling gai every time
GAI/GNI do not return TTL values, but this should not be a problem.
If they were to return anything, it should not be a TTL, but a time()
value, after which
the result may no longer be used.
One way to achieve that would be for GAI to return an opaque structure
that contained the IP and such a value, in a manner consumable by the
sockets API, and adjust connect() to return an error if passed a
structure containing a ' returned time + TTL' in the past.
TTL values are a DNS resolver function; the application consuming the
sockets API
should not be concerned about details of the DNS protocol.
All the application developer should need to know is that you invoke
GAI/GNI and wait for a response.
Once you have that response, it is permissible to use the value immediately,
but you may not store or re-use that value for more than a few seconds.
If you require that value again later, then you invoke GAI/GNI again;
any caching details
are the concern of the resolver library developer who has implemented GAI/GNI.
--
-JH
More information about the NANOG
mailing list