summaryrefslogtreecommitdiff
path: root/python/qpid/connection.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/connection.py')
-rw-r--r--python/qpid/connection.py18
1 files changed, 14 insertions, 4 deletions
diff --git a/python/qpid/connection.py b/python/qpid/connection.py
index d23a3b909e..98fff9cd2f 100644
--- a/python/qpid/connection.py
+++ b/python/qpid/connection.py
@@ -229,14 +229,24 @@ class Method(Frame):
self.eof = not method.content
def encode(self, c):
- c.encode_short(self.method.klass.id)
- c.encode_short(self.method.id)
+ version = (c.spec.major, c.spec.minor)
+ if version == (0, 10):
+ c.encode_octet(self.method.klass.id)
+ c.encode_octet(self.method.id)
+ else:
+ c.encode_short(self.method.klass.id)
+ c.encode_short(self.method.id)
for field, arg in zip(self.method.fields, self.args):
c.encode(field.type, arg)
def decode(spec, c, size):
- klass = spec.classes.byid[c.decode_short()]
- meth = klass.methods.byid[c.decode_short()]
+ version = (c.spec.major, c.spec.minor)
+ if version == (0, 10):
+ klass = spec.classes.byid[c.decode_octet()]
+ meth = klass.methods.byid[c.decode_octet()]
+ else:
+ klass = spec.classes.byid[c.decode_short()]
+ meth = klass.methods.byid[c.decode_short()]
args = tuple([c.decode(f.type) for f in meth.fields])
return Method(meth, args)