Hi! I did some searches about my problem and didn't find any thing that match in the archives.
I'm trying to do a simple jabber client with the twisted framework in order to automatically send messages. The server is a prosody server, and enabled the tls and iq auth. So far, I can connect to the server, and can't login. If I'm doing a XmlStreamFactory with the basicClientFactory, I have these initializers/authenticator: Initializers [<twisted.words.protocols.jabber.xmlstream.TLSInitiatingInitializer object at 0x2c1ef50>, <twisted.words.protocols.jabber.client.IQAuthInitializer object at 0x2c1ef90>] Authenticator <twisted.words.protocols.jabber.client.BasicAuthenticator instance at 0x10f2320> And if I create a XMPPClientFactory, I have these: Initializers [<twisted.words.protocols.jabber.client.CheckVersionInitializer object at 0x2fe7f50>, <twisted.words.protocols.jabber.xmlstream.TLSInitiatingInitializer object at 0x2fe7fd0>, <twisted.words.protocols.jabber.sasl.SASLInitiatingInitializer object at 0x2ff1050>, <twisted.words.protocols.jabber.client.BindInitializer object at 0x2ff1090>, <twisted.words.protocols.jabber.client.SessionInitializer object at 0x2ff10d0>] Authenticator <twisted.words.protocols.jabber.client.XMPPAuthenticator instance at 0x2fdd320> So I look up the SEND and RECV message between the client and server, and I notice that if I do a XMPPClientFactory, it's doing a tls connection, then say it doesn't have the feature for iq auth. And if I'm doing a basicClientFactory, I don't have the tls, so when it tries to logon with iq, the server answers that it needs the tls. After noticing that, I tried to change the initializers and the authenticator in the connected function. But when I'm doing a XMPPClientFactory with a BasicAuthenticator, I don't have the tls anymore. What do I need to change in order to have the tls and after the iq auth? Thank you for your help. rkadeFR My current code: 19 class ClientXMPP(object): 20 def __init__(self, jid_user, password_user): 21 self.reactor = reactor 22 XmlStreamFactory = client.basicClientFactory(jid_user, password_user) 23 XmlStreamFactory.addBootstrap(xmlstream.STREAM_CONNECTED_EVENT, self.connected) 24 XmlStreamFactory.addBootstrap(xmlstream.STREAM_END_EVENT, self.disconnected) 25 XmlStreamFactory.addBootstrap(xmlstream.STREAM_AUTHD_EVENT, self.authenticated) 26 XmlStreamFactory.addBootstrap(xmlstream.INIT_FAILED_EVENT, self.init_failed) 27 connector = SRVConnector(reactor, 'xmpp-client', jid_user.host, XmlStreamFactory) 28 connector.connect() 29 self.finished = Deferred() 30 31 def rawDataIn(self, buf): 32 print "RECV: %s" % unicode(buf, 'utf-8').encode('ascii', 'replace') 33 34 def rawDataOut(self, buf): 35 print "SEND: %s" % unicode(buf, 'utf-8').encode('ascii', 'replace') 36 37 def connected(self, xs): 38 xs.rawDataInFn = self.rawDataIn 39 xs.rawDataOutFn = self.rawDataOut 40 print 'Connected.' 41 self.xmlstream = xs 42 # 43 print 'Initializers', xs.initializers 44 print 'Authenticator', xs.authenticator 45 print 'Am I initialized?', xs.initiating 46 # Log trafic out 47 48 def disconnected(self, xs): 49 print 'Disconnected.' 50 self.finished.callback(None) 51 52 def authenticated(self, xs): 53 print "Authenticated." 54 presence = domish.Element((None, 'presence')) 55 xs.send(presence) 56 self.reactor.callLater(5, xs.sendFooter) 57 58 def send(self, message): 59 print 'Send', message 60 61 def init_failed(self, failure): 62 print "Initialization failed. Failure:" 63 print failure 64 # self.xmlstream.sendFooter() 65 # self.xmlstream.authenticator.initializeStream() _______________________________________________ Twisted-Python mailing list Twisted-Python@twistedmatrix.com http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python