twisted: not doing DNS resolutions?

Discussion in 'Python' started by Christopher Subich, Jun 30, 2005.

  1. 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.
    Christopher Subich, Jun 30, 2005
    #1
    1. Advertising

  2. 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.
    Christopher Subich, Jun 30, 2005
    #2
    1. Advertising

  3. 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.
    Christopher Subich, Jun 30, 2005
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Christian Seberino
    Replies:
    1
    Views:
    724
    Andrew Bennetts
    Apr 13, 2004
  2. Jean-Paul Calderone
    Replies:
    0
    Views:
    444
    Jean-Paul Calderone
    Jun 17, 2008
  3. Glyph
    Replies:
    0
    Views:
    173
    Glyph
    Dec 27, 2012
  4. Glyph
    Replies:
    0
    Views:
    149
    Glyph
    Apr 3, 2013
  5. Glyph
    Replies:
    0
    Views:
    49
    Glyph
    May 12, 2014
Loading...

Share This Page