def compute_name_server_resources(self, name_servers): ns = [] ar = [] for name_server, ip, ttl in name_servers: ns.append({'qtype':2, 'qclass':1, 'ttl':ttl, 'rdata':utils.labels2str(name_server)}) ar.append({'qtype':1, 'qclass':1, 'ttl':ttl, 'rdata':struct.pack("!I", ip)}) return ns, ar
def format_resource(self, resource, question): """Formats the resource fields to be used in the response packet""" r = '' r += utils.labels2str(question) r += struct.pack("!HHIH", resource['qtype'], resource['qclass'], resource['ttl'], len(resource['rdata'])) r += resource['rdata'] return r
def format_question(self, question, qtype, qclass): """Formats the question field to be used in the response packet""" q = utils.labels2str(question) q += struct.pack("!HH", qtype, qclass) return q