Пример #1
0
 def bind(self, elem=MatchInstance(Stanza, uri=NS_XMPP_BIND, name='bind')):
     e = Stanza((NS_XMPP_BIND, 'bind'))
     e.addElement('resource', content=self.factory.resource)
     elem = yield self.sendIq("set", e)
     elem = elem.firstChildElement()
     assert elem.name == 'jid'
     self.jid = elem.children[0]
Пример #2
0
 def bind(self, elem=MatchInstance(Stanza, uri=NS_XMPP_BIND, name="bind")):
     e = Stanza((NS_XMPP_BIND, "bind"))
     e.addElement("resource", content=self.factory.resource)
     elem = yield self.sendIq("set", e)
     elem = elem.firstChildElement()
     assert elem.name == "jid"
     self.jid = elem.children[0]
Пример #3
0
    def onConnect(self):
        e = Stanza((NS_STREAMS, 'stream'), NS_JABBER_CLIENT, {
            'to': self.factory.domain,
            'version': '1.0'
        }, {'stream': NS_STREAMS})

        self.send(e, False)
Пример #4
0
    def starttls(self,
                 elem=MatchInstance(Stanza, uri=NS_XMPP_TLS, name='starttls')):
        uri = NS_XMPP_TLS
        self.send(Stanza((uri, 'starttls')))
        elem = yield self.waitStanzaOrEvent(MatchInstance(Stanza, uri=uri))
        if elem.name != 'proceed':
            raise Exception

        self.transport.startTLS(self.factory.ssl_ctx)
        self.reset()
Пример #5
0
    def onDocumentStart(self, root):
        self.domain = root['to']

        e = Stanza(
            (NS_STREAMS, 'stream'),
            NS_JABBER_CLIENT,
            { 'from': self.domain,
              'version': '1.0',
              'id': '%x'%(id(self)) },
            {'stream': NS_STREAMS})

        self.send(e, close=False)

        try:
            self.factory.router.route(self, JID(self.domain), XmppStreamInitiate)
        except StreamError, error:
            e = Stanza((NS_STREAM, 'error'))
            e.addElement(error.message, NS_XMPP_STREAMS)
            self.send(e)
            self.closeStream()
Пример #6
0
    def onDocumentStart(self, root):
        self.domain = root['to']

        e = Stanza((NS_STREAMS, 'stream'), NS_JABBER_CLIENT, {
            'from': self.domain,
            'version': '1.0',
            'id': '%x' % (id(self))
        }, {'stream': NS_STREAMS})

        self.send(e, close=False)

        try:
            self.factory.router.route(self, JID(self.domain),
                                      XmppStreamInitiate)
        except StreamError, error:
            e = Stanza((NS_STREAM, 'error'))
            e.addElement(error.message, NS_XMPP_STREAMS)
            self.send(e)
            self.closeStream()
Пример #7
0
 def sendSaslResponse(self, content=""):
     e = Stanza((NS_XMPP_SASL, "response"))
     e.addContent(b64encode(content))
     self.send(e)
Пример #8
0
 def sendSaslAuth(self, mechanism, content=""):
     e = Stanza((NS_XMPP_SASL, "auth"))
     e["mechanism"] = mechanism
     e.addContent(b64encode(content))
     self.send(e)
Пример #9
0
 def sendSaslResponse(self, content=''):
     e = Stanza((NS_XMPP_SASL, 'response'))
     e.addContent(b64encode(content))
     self.send(e)
Пример #10
0
 def sendSaslAuth(self, mechanism, content=''):
     e = Stanza((NS_XMPP_SASL, 'auth'))
     e['mechanism'] = mechanism
     e.addContent(b64encode(content))
     self.send(e)
Пример #11
0
 def session(self,
             elem=MatchInstance(Stanza, uri=NS_XMPP_SESSION,
                                name='session')):
     e = Stanza((NS_XMPP_SESSION, 'session'))
     elem = yield self.sendIq("set", e)