def rawxml(self, args): """ /rawxml <xml stanza> """ if not args: return stanza = args try: stanza = StanzaBase(self.core.xmpp, xml=ET.fromstring(stanza)) if stanza.xml.tag == 'iq' and stanza.xml.attrib.get('type') in ( 'get', 'set'): iq_id = stanza.xml.attrib.get('id') if not iq_id: iq_id = self.core.xmpp.new_id() stanza['id'] = iq_id def iqfunc(iq): "handler for an iq reply" self.core.information('%s' % iq, 'Iq') self.core.xmpp.remove_handler('Iq %s' % iq_id) self.core.xmpp.register_handler( Callback('Iq %s' % iq_id, StanzaPath('iq@id=%s' % iq_id), iqfunc)) stanza.send() except: self.core.information('Could not send custom stanza', 'Error') log.debug('/rawxml: Could not send custom stanza (%s)', repr(stanza), exc_info=True)
def rawxml(self, args): """ /rawxml <xml stanza> """ if not args: return stanza = args try: stanza = StanzaBase(self.core.xmpp, xml=ET.fromstring(stanza)) if stanza.xml.tag == 'iq' and stanza.xml.attrib.get('type') in ( 'get', 'set'): iq_id = stanza.xml.attrib.get('id') if not iq_id: iq_id = self.core.xmpp.new_id() stanza['id'] = iq_id def iqfunc(iq): "handler for an iq reply" self.core.information(str(iq), 'Iq') self.core.xmpp.remove_handler('Iq %s' % iq_id) self.core.xmpp.register_handler( Callback('Iq %s' % iq_id, StanzaPath('iq@id=%s' % iq_id), iqfunc)) stanza.send() except: self.core.information('Could not send custom stanza', 'Error') log.debug( '/rawxml: Could not send custom stanza (%s)', repr(stanza), exc_info=True)