diff options
author | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-08-11 14:46:39 +0000 |
---|---|---|
committer | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-08-11 14:46:39 +0000 |
commit | 854f438dd72b62fddb58a15a90a0731c92b8cb5e (patch) | |
tree | 25a65a141afe0ebcddedffdeb7d269dc932b0ad0 | |
parent | 94db8f6b7ba81028c2e4fd09ba7c6fb384d524f4 (diff) | |
download | qpid-python-854f438dd72b62fddb58a15a90a0731c92b8cb5e.tar.gz |
Correctly parse replies containing multiple qmf messages.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@984424 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/python/qpid/management.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/qpid/python/qpid/management.py b/qpid/python/qpid/management.py index a23932aebb..3de8da9d49 100644 --- a/qpid/python/qpid/management.py +++ b/qpid/python/qpid/management.py @@ -376,22 +376,23 @@ class managementClient: def replyCb (self, ch, msg): """ Receive messages via the reply queue of a particular channel. """ codec = Codec (msg.body) - hdr = self.checkHeader (codec) - if hdr == None: - return + while True: + hdr = self.checkHeader (codec) + if hdr == None: + return - if hdr[0] == 'm': - self.handleMethodReply (ch, codec, hdr[1]) - elif hdr[0] == 'z': - self.handleCommandComplete (ch, codec, hdr[1]) - elif hdr[0] == 'b': - self.handleBrokerResponse (ch, codec) - elif hdr[0] == 'p': - self.handlePackageInd (ch, codec) - elif hdr[0] == 'q': - self.handleClassInd (ch, codec) - else: - self.parse (ch, codec, hdr[0], hdr[1]) + if hdr[0] == 'm': + self.handleMethodReply (ch, codec, hdr[1]) + elif hdr[0] == 'z': + self.handleCommandComplete (ch, codec, hdr[1]) + elif hdr[0] == 'b': + self.handleBrokerResponse (ch, codec) + elif hdr[0] == 'p': + self.handlePackageInd (ch, codec) + elif hdr[0] == 'q': + self.handleClassInd (ch, codec) + else: + self.parse (ch, codec, hdr[0], hdr[1]) def exceptCb (self, ch, data): if self.closeCb != None: |