def __init__(self, data, packet_s, names): total_read, name = convert.dns_to_string_info(data, packet_s) if name: data = data[total_read:] ok = len(data) >= 4 else: data = '' ok = False self.question = name if ok else None self.querytype = convert.u16(data[:2]) if ok else None self.queryclass = convert.u16(data[2:4]) if ok else None self._len = (total_read + 4) if ok else None
def __init__(self, data, packet_s, names): if data.startswith('\0'): name = '.' ptr = None total_read = 1 else: total_read, name = convert.dns_to_string_info(data, packet_s) if name: data = data[total_read:] rdata_len = convert.u16(data[8:10]) ok = len(data) >= 10 + rdata_len else: rdata_len = None ok = False self.question = name if ok else None self.querytype = convert.u16(data[:2]) if ok else None self.queryclass = convert.u16(data[2:4]) if ok else None self.ttl = convert.u32(data[4:8]) if ok else None self.rdata = data[10:10+rdata_len] if ok else None self._len = (total_read + 10 + rdata_len) if ok else None