clear _expected dict when callback is called. This way when another stanza arrives with the same id, it isn't catched as expected.

This commit is contained in:
Yann Leboulanger 2006-03-05 20:30:38 +00:00
parent 0349c4ad23
commit d3417371c0
1 changed files with 2 additions and 0 deletions

View File

@ -349,6 +349,7 @@ class Dispatcher(PlugIn):
if self._expected[self._witid] is None:
return
if self.on_responses.has_key(self._witid):
i = self._witid # copy id cause it can change in resp() call
self._owner.onreceive(None)
resp, args = self.on_responses[self._witid]
del(self.on_responses[self._witid])
@ -356,6 +357,7 @@ class Dispatcher(PlugIn):
resp(self._expected[self._witid])
else:
resp(self._owner, self._expected[self._witid], **args)
del self._expected[i]
def SendAndWaitForResponse(self, stanza, timeout=None, func=None, args=None):
''' Put stanza on the wire and wait for recipient's response to it. '''