* fixed unhandled iqs

This commit is contained in:
Nathan Fritz 2009-12-22 10:05:53 +00:00
parent 07018c0afa
commit 805afa4bc1
3 changed files with 12 additions and 13 deletions

View file

@ -65,21 +65,19 @@ class Iq(StanzaBase):
return ns
return ''
def reply(self):
self['type'] = 'result'
StanzaBase.reply(self)
return self
def delQuery(self):
for child in self.getchildren():
if child.tag.endswith('query'):
self.xml.remove(child)
return self
def unhandled(self):
pass
# returned unhandled error
def exception(self, traceback=None):
pass
def send(self, block=True, timeout=10):
if block:
if block and self['type'] in ('get', 'set'):
waitfor = Waiter('IqWait_%s' % self['id'], MatcherId(self['id']))
self.stream.registerHandler(waitfor)
StanzaBase.send(self)

View file

@ -214,8 +214,8 @@ class StanzaBase(ElementBase):
def clear(self):
for child in self.xml.getchildren():
self.xml.remove(child)
for plugin in self.plugins:
del self.plugins[plugin]
#for plugin in list(self.plugins.keys()):
# del self.plugins[plugin]
def reply(self):
self['from'], self['to'] = self['to'], self['from']

View file

@ -257,14 +257,15 @@ class XMLStream(object):
break
if stanza is None:
stanza = StanzaBase(self, xmlobj)
unhandled = True
for handler in self.__handlers:
if handler.match(xmlobj):
handler.prerun(stanza)
self.eventqueue.put(('stanza', handler, stanza))
if handler.checkDelete(): self.__handlers.pop(self.__handlers.index(handler))
else:
stanza.unhandled()
unhandled = False
if unhandled:
stanza.unhandled()
#loop through handlers and test match
#spawn threads as necessary, call handlers, sending Stanza