update pyloxi to floodlight/loxigen-artifacts @ f9dd10108ee6f7f770b4433e23eaf875a8abf1df
diff --git a/src/python/loxi/generic_util.py b/src/python/loxi/generic_util.py
index aa218a2..7f3ac46 100644
--- a/src/python/loxi/generic_util.py
+++ b/src/python/loxi/generic_util.py
@@ -82,7 +82,7 @@
self.offset += length
def skip_align(self):
- new_offset = ((self.start + self.offset + 7) / 8 * 8) - self.start
+ new_offset = (self.offset + 7) / 8 * 8
if new_offset > self.length:
raise loxi.ProtocolError("Buffer too short")
self.offset = new_offset
@@ -91,9 +91,10 @@
return self.offset == self.length
# Used when parsing objects that have their own length fields
- def slice(self, length):
- if self.offset + length > self.length:
+ def slice(self, length, rewind=0):
+ if self.offset + length - rewind > self.length:
raise loxi.ProtocolError("Buffer too short")
- reader = OFReader(self.buf, self.start + self.offset, length)
- self.offset += length
+ reader = OFReader(self.buf, self.start + self.offset - rewind, length)
+ reader.skip(rewind)
+ self.offset += length - rewind
return reader