def from_rdata(rdata, ttl=300): if not isinstance(rdata, dns.rdata.Rdata): raise TypeError('Invalid rdata'); rtype = rdt.to_text(rdata.rdtype); rclass = rdc.to_text(rdata.rdclass); rec = Record(rtype, rclass, ttl); rec.from_rdata(rdata, ttl); return rec
def records_list_from_node(cls, name, node): records = [] for rdataset in node: for rd in rdataset: records.append( '{name} {ttl} {rdclass} {rdtype} {rdata}'.format( name=name.ToASCII(), ttl=rdataset.ttl, rdclass=rdataclass.to_text(rd.rdclass), rdtype=rdatatype.to_text(rd.rdtype), rdata=rd.to_text())) return records
def records_list_from_node(cls, name, node): records = [] for rdataset in node: for rd in rdataset: records.append( u'{name} {ttl} {rdclass} {rdtype} {rdata}'.format( name=name.ToASCII(), ttl=rdataset.ttl, rdclass=rdataclass.to_text(rd.rdclass), rdtype=rdatatype.to_text(rd.rdtype), rdata=rd.to_text() ) ) return records
def get_rrs_from_rrsets(rrsets): """This works for answer, authority, and additional rrsets""" rr_list = [] for rrset in rrsets: common_rr_dict = { "Name": str(rrset.name), "Type": rdatatype.to_text(rrset.rdtype), "Class": rdataclass.to_text(rrset.rdclass), "TTL": rrset.ttl # TODO: doesn't each rr have it's own ttl? } for rr in rrset: rr_dict = common_rr_dict.copy() rr_dict.update(get_record_specific_answer_fields(rr)) rr_list.append(rr_dict) return rr_list
def get_question(query): return { "Qname": str(query.qname), "Qtype": rdatatype.to_text(query.rdtype), "Qclass": rdataclass.to_text(query.rdclass) }