On 06/01/14 08:26, Maciej Wasilak wrote:
Hello,
I've tried to use Twisted names.client.getHostByName() method to resolve
some addresses for my UDP based app. By default getHostByName() always
returns IPv6 address. I don't always have end-to-end IPv6 connectivity,
I'm not sure if t.n.client implements the same stuff that getaddrinfo
does, namely RFC 6724 address selection rules and behaviour, and in
particular if it has an equivalent of the AI_ADDRCONFIG flag.
After Twisted 13.2 announcement I've checked the new HostnameEndpoint
implementation to find possible solution (it seems to be dedicated to
solve similar problems, but for TCP-based protocols). However it seems
to use deferToThread(), and built-in Python getaddrinfo().
My questions:
1. Is using deferToThread() a preferred solution?
IMO *all* applications should *always* use getaddrinfo() for resolution
of user-supplied names. It really really annoys me when people decide to
re-invent it - this is hard to get right, and apps like Chrome having
their own implementation precludes things like DHCP-based 6724 tables in
the future.
So yes, use "deferToThread" and "getaddrinfo". Note that you should not,
in general, specify the address family; let the AI_ADDRCONFIG flag sort
that out for you.
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python