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