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

Reply via email to