Example #1
0
	def parse_header(header):
		''' Parse the header of a frame '''
		frame_length = sum(struct.unpack('hB', header[:3]))
		if frame_length == 1702:
			print struct.unpack('hb', header[:3])
		header = header[3:]
		frame_type = Frame.FRAME_TYPES.get(
			struct.unpack('b', header[:1])[0],
			'ERROR'
		)
		header = header[1:]
		frame_flags = struct.unpack('b', header[:1])[0]
		header = header[1:]
		frame_stream = struct.unpack('cccc', header[:4])[::-1]
		stream_id = Stream.parse_stream(frame_stream)

		header = {
			'length' : frame_length,
			'type' : frame_type,
			'flags' : frame_flags,
			'stream' : stream_id
		}

		return header