MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / decode

Method decode

pager_lib/nmb/nmb_structs.py:49–66  ·  view source on GitHub ↗
(self, data, offset)

Source from the content-addressed store, hash-verified

47 HEADER_STRUCT_SIZE = struct.calcsize(HEADER_STRUCT_FORMAT)
48
49 def decode(self, data, offset):
50 data_len = len(data)
51
52 if data_len < offset + self.HEADER_STRUCT_SIZE:
53 # Not enough data for decoding
54 return 0
55
56 self.reset()
57 length = struct.unpack(self.HEADER_STRUCT_FORMAT, data[offset:offset+self.HEADER_STRUCT_SIZE])[0]
58
59 if length >> 24 != 0:
60 raise NMBError("Invalid protocol header for Direct TCP session message")
61
62 if data_len < offset + self.HEADER_STRUCT_SIZE + length:
63 return 0
64
65 self.data = data[offset+self.HEADER_STRUCT_SIZE:offset+self.HEADER_STRUCT_SIZE+length]
66 return self.HEADER_STRUCT_SIZE + length

Callers

nothing calls this directly

Calls 2

NMBErrorClass · 0.85
resetMethod · 0.45

Tested by

no test coverage detected