diff options
Diffstat (limited to 'python/qpid')
| -rw-r--r-- | python/qpid/connection.py | 3 | ||||
| -rw-r--r-- | python/qpid/peer.py | 8 |
2 files changed, 10 insertions, 1 deletions
diff --git a/python/qpid/connection.py b/python/qpid/connection.py index fb1e0927f0..0785fe8774 100644 --- a/python/qpid/connection.py +++ b/python/qpid/connection.py @@ -232,6 +232,9 @@ class Response(Frame): method = Method.decode(spec, dec, size - 20) return Response(id, request_id, batch_offset, method) + def __str__(self): + return "[%s] Response(%s,%s,%s) %s" % (self.channel, self.id, self.request_id, self.batch_offset, self.method) + class Header(Frame): type = "frame_header" diff --git a/python/qpid/peer.py b/python/qpid/peer.py index 8d5029004e..b5c655dc2a 100644 --- a/python/qpid/peer.py +++ b/python/qpid/peer.py @@ -220,6 +220,8 @@ class Channel: work.put(self.incoming) elif isinstance(frame, Response): self.requester.receive(self, frame) + if frame.method_type.content: + self.queue = self.responses return self.queue.put(frame) @@ -241,7 +243,11 @@ class Channel: return None try: resp = self.responses.get() - return Message(self, resp) + if resp.method_type.content: + return Message(self, resp, read_content(self.responses)) + else: + return Message(self, resp) + except QueueClosed, e: if self.closed: raise Closed(self.reason) |
