Christopher Zorn wrote:


On Tue, Dec 2, 2008 at 8:21 AM, Gabriel Rossetti <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    Gabriel Rossetti wrote:

        Hello everyone,

        I wrote an XMPP client and I have a question, when it tries to
        connect and the server is not listening, it doesn't send back
        an error and tries forever. I see that this function
        (twisted/names/srvconnect.py):

        def _ebGotServers(self, failure):
              failure.trap(DNSNameError)

              # Some DNS servers reply with NXDOMAIN when in fact
        there are
              # just no SRV records for that domain. Act as if we just
        got an
              # empty response and use fallback.

              self.servers = []
              self.orderedServers = []

        traps the exception so it never propagates to me, so I can't
        handle it. Any ideas? I using the XMPP client example as a
        base for my code.

        Thank you,
        Gabriel

    Ok, the code I showed has nothing to do with the problem I think,
    what I don't get is the client never returns an error if nobody's
    listening...


It may be better to show a log of what is happening.

It should show something like the following :

2008-12-02 08:57:01-0500 [-] reactor class: twisted.internet.selectreactor.SelectReactor. 2008-12-02 08:57:01-0500 [-] Starting factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0xf6b490>
2008-12-02 08:57:02-0500 [-] /etc/resolv.conf changed, reparsing
2008-12-02 08:57:02-0500 [-] Resolver added ('192.168.2.1 <http://192.168.2.1>', 53) to server list 2008-12-02 08:57:02-0500 [-] <class 'twisted.names.dns.DNSDatagramProtocol'> starting on 31847 2008-12-02 08:57:02-0500 [-] Starting protocol <twisted.names.dns.DNSDatagramProtocol object at 0xfb9a90>
2008-12-02 08:57:02-0500 [-] (Port 31847 Closed)
2008-12-02 08:57:02-0500 [-] Stopping protocol <twisted.names.dns.DNSDatagramProtocol object at 0xfb9a90> 2008-12-02 08:57:02-0500 [-] <twisted.names.srvconnect.SRVConnector instance at 0xa236c8> will retry in 2 seconds 2008-12-02 08:57:02-0500 [-] Stopping factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0xf6b490>

This will keep trying until you quit. You can set a limit on how many times it retries.


    Best regards,

    Gabriel

    ______________________


Ok, I finally created a class that wraps the client.XMPPClientFactory function and calls callbacks when the connection fails. Thanks
_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to