Ejemplo n.º 1
0
    def initiate(self, request, to, from_=None):
        """
        Initiates a stream to a remote entity.

        :param request: Request to send.

        :param to: Destination JID.

        :param from_: Source JID.
        """
        fform = FeatureForm(methods=self.streams.keys(), type_='form')
        feature = Feature(methods=fform)
        request.feature = feature

        if from_ is None:
            from_ = self.dispatcher.myjid

        iq = Iq(from_=from_, to=to, type_='set')
        request.id_ = sid = unicode(uuid.uuid4())
        iq.link(request)

        result = yield self.dispatcher.send(iq)
        form = FeatureForm.createFromElement(result.feature.methods,
                                             methods=self.streams.keys())
        form.validate()

        method = form.stream_method.value
        stream = self.streams[method]
        yield stream.requestStream(to, lambda _buf, _meta:None, sid,
                                   from_=from_)
        defer.returnValue((stream, sid))
Ejemplo n.º 2
0
 def set(self, vcard):
     """
     Set my own vcard (for clients).
     
     :returns:
         query.iq.deferred
     """
     query = copy.copy(vcard)
     iq = Iq(type_='set')
     iq.link(query)
     self.dispatcher.send(query.iq)
     return query.iq.deferred
Ejemplo n.º 3
0
 def set(self, vcard):
     """
     Set my own vcard (for clients).
     
     :returns:
         query.iq.deferred
     """
     query = copy.copy(vcard)
     iq = Iq(type_='set')
     iq.link(query)
     self.dispatcher.send(query.iq)
     return query.iq.deferred
Ejemplo n.º 4
0
    def initiate(self, request, to, from_=None):
        fform = FeatureForm(methods=self.streams.keys(), type_='form')
        feature = Feature(methods=fform)
        request.feature = feature

        if from_ is None:
            from_ = self.dispatcher.myjid

        iq = Iq(from_=from_, to=to, type_='set')
        request.id_ = sid = unicode(uuid.uuid4())
        iq.link(request)

        result = yield self.dispatcher.send(iq)
        form = FeatureForm.createFromElement(result.feature.methods,
                                             methods=self.streams.keys())
        form.validate()

        method = form.stream_method.value
        stream = self.streams[method]
        yield stream.requestStream(to,
                                   lambda _buf, _meta: None,
                                   sid,
                                   from_=from_)
        defer.returnValue((stream, sid))
Ejemplo n.º 5
0
 def set(self, vcard):
     query = copy.copy(vcard)
     iq = Iq(type_='set')
     iq.link(query)
     self.dispatcher.send(query.iq)
     return query.iq.deferred