summaryrefslogtreecommitdiff
path: root/python/qpid/session.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/session.py')
-rw-r--r--python/qpid/session.py10
1 files changed, 9 insertions, 1 deletions
diff --git a/python/qpid/session.py b/python/qpid/session.py
index 7702a19251..c628762dac 100644
--- a/python/qpid/session.py
+++ b/python/qpid/session.py
@@ -73,9 +73,17 @@ class Session(Invoker):
if cmd is not None and cmd.track == self.spec["track.command"].value:
return cmd
else:
+ # XXX
+ for st in self.spec.structs.values():
+ if st.name == name:
+ return st
return None
def invoke(self, type, args, kwargs):
+ # XXX
+ if not hasattr(type, "track"):
+ return type.new(args, kwargs)
+
if self.channel == None:
raise SessionDetached()
@@ -106,7 +114,7 @@ class Session(Invoker):
if message.headers != None:
sc = StringCodec(self.spec)
for st in message.headers:
- sc.write_struct32(st.type, st)
+ sc.write_struct32(st)
seg = Segment(False, message.body == None, self.spec["segment_type.header"].value,
type.track, self.channel.id, sc.encoded)
self.send(seg)