Changeset 55:a8cda961ee7e for wokkel/generic.py
- Timestamp:
- Apr 22, 2009, 4:50:28 PM (13 years ago)
- Branch:
- default
- Convert:
- svn:b33ecbfc-034c-dc11-8662-000475d9059e/trunk@167
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
wokkel/generic.py
r35 r55 10 10 from zope.interface import implements 11 11 12 from twisted.internet import defer 13 from twisted.words.protocols.jabber import error 12 from twisted.internet import defer, protocol 13 from twisted.words.protocols.jabber import error, xmlstream 14 14 from twisted.words.protocols.jabber.xmlstream import toResponse 15 15 from twisted.words.xish import domish, utility 16 17 try: 18 from twisted.words.xish.xmlstream import BootstrapMixin 19 except ImportError: 20 from wokkel.compat import BootstrapMixin 16 21 17 22 from wokkel import disco … … 156 161 self.source.send = lambda obj: self.sink.dispatch(obj) 157 162 self.sink.send = lambda obj: self.source.dispatch(obj) 163 164 165 class DeferredXmlStreamFactory(BootstrapMixin, protocol.ClientFactory): 166 protocol = xmlstream.XmlStream 167 168 def __init__(self, authenticator): 169 BootstrapMixin.__init__(self) 170 171 self.authenticator = authenticator 172 173 deferred = defer.Deferred() 174 self.deferred = deferred 175 self.addBootstrap(xmlstream.STREAM_AUTHD_EVENT, self.deferred.callback) 176 self.addBootstrap(xmlstream.INIT_FAILED_EVENT, deferred.errback) 177 178 179 def buildProtocol(self, addr): 180 """ 181 Create an instance of XmlStream. 182 183 A new authenticator instance will be created and passed to the new 184 XmlStream. Registered bootstrap event observers are installed as well. 185 """ 186 xs = self.protocol(self.authenticator) 187 xs.factory = self 188 self.installBootstraps(xs) 189 return xs 190 191 192 def clientConnectionFailed(self, connector, reason): 193 self.deferred.errback(reason)
Note: See TracChangeset
for help on using the changeset viewer.