470,619 Members | 1,829 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 470,619 developers. It's quick & easy.

twisted: not doing DNS resolutions?

I'm building an application that makes several user-specified internet
connections; twisted meets my needs more or less perfectly.

I'm running into a problem, however, in that twisted is not allowing
connections (reactor.connectTCP) by hostname, only IP address. [read:
connections to IP addresses work fine, hostnames no]

From what I can tell, the problem lies in that Twisted simply isn't
performing the DNS resolutions. From the connection factory's
startedConnecting method, print connector.getDestination() results in:

IPv4Address(TCP, 'hostname', port)

That is to say, the port is correct, but the 'hostname' is completely
unresolved. Since 'hostname' is a really bad IP address, not being one
at all, the connection of course fails. A check via tcpdump on my
gateway machine shows that the DNS resolution doesn't occur.

The API documentation for version 1.3 (I'm using 2.0.1, but a quick
check of twisted source/docstrings shows this to be still true[1]) shows
that connectTCP taks "a host name," so by that (and the echo client
example that connects to 'localhost') I presume there's supposed to be
some sort of resolution going on.

I'm running twisted 2.0.1 on win32. Is this a bug in twisted, or is
there some configuration that I've gone and borked?

[1] -- is there some reason in particular that there's no API reference
for twisted 2.0x? The documentation/tutorials are pretty sparse as-is, I
think.
Jul 19 '05 #1
2 1787
Christopher Subich wrote:
From what I can tell, the problem lies in that Twisted simply isn't
performing the DNS resolutions. From the connection factory's
startedConnecting method, print connector.getDestination() results in:

IPv4Address(TCP, 'hostname', port)


Update: after doing some diving in the twisted source, it is supposed to
do that. My guess is that either it thinks the hostname is a valid ip
address (unlikely), or a callback isn't actually getting called. This
confuses me.
Jul 19 '05 #2
Christopher Subich wrote:
Christopher Subich wrote:
From what I can tell, the problem lies in that Twisted simply isn't
performing the DNS resolutions. From the connection factory's


.... right, finally figured it out after a very long time at debugging
the beast.

It's an interaction with IDLE.

What happens is that the deferToThread call in twisted's lookup Just
Doesn't Run Right (under some circumstances) when it's run under IDLE
with tksupport. I finally got the idea to run the application from the
command line, and it worked just fine. This is kind of odd, since a
trivial test case run from the interactive idle prompt works okay, but
it's now 5am and I'm going to sleep.

Moral: beware the IDLEs of March.
Jul 19 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

4 posts views Thread by Paul Moore | last post: by
3 posts views Thread by xam | last post: by
11 posts views Thread by mir nazim | last post: by
3 posts views Thread by Rico Huijbers | last post: by
2 posts views Thread by Taki Jeden | last post: by
reply views Thread by Matthew Warren | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.