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 | d037858836fa43120b26a5351950b40dfedffcaa (patch) | |
tree | ffdf6890a9a8f649ae49c3d11c99c1ce4bc1df8b | |
parent | 1cc16b7d51a771b3be549fad8951c34c63c56c81 (diff) | |
download | qpid-python-d037858836fa43120b26a5351950b40dfedffcaa.tar.gz |
Correctly parse replies containing multiple qmf messages.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@984424 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | python/qpid/management.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/python/qpid/management.py b/python/qpid/management.py index a23932aebb..3de8da9d49 100644 --- a/python/qpid/management.py +++ b/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: |