summaryrefslogtreecommitdiff
path: root/python/qpid
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid')
-rw-r--r--python/qpid/connection.py3
-rw-r--r--python/qpid/peer.py8
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)