def add_nameserver(self,ns): """ Add a nameserver, IPv4/IPv6/name. """ if isValidIP(ns) == 4: address = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A,ns) self._ldns_resolver.push_nameserver(address) elif isValidIP(ns) == 6: address = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_AAAA,ns) self._ldns_resolver.push_nameserver(address) else: resolver = ldns.ldns_resolver.new_frm_file("/etc/resolv.conf") #address = resolver.get_addr_by_name(ns) address = resolver.get_addr_by_name(ldns.ldns_dname(ns)) if not address: address = resolver.get_addr_by_name(ldns.ldns_dname(ns)) if not address: raise Exception("Failed to resolve address for %s" % ns) for rr in address.rrs(): self._ldns_resolver.push_nameserver_rr(rr)
def add_nameserver(self, ns): """ Add a nameserver, IPv4/IPv6/name. """ if isValidIP(ns) == 4: address = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, ns) self._ldns_resolver.push_nameserver(address) elif isValidIP(ns) == 6: address = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_AAAA, ns) self._ldns_resolver.push_nameserver(address) else: resolver = ldns.ldns_resolver.new_frm_file("/etc/resolv.conf") #address = resolver.get_addr_by_name(ns) address = resolver.get_addr_by_name(ldns.ldns_dname(ns)) if not address: address = resolver.get_addr_by_name(ldns.ldns_dname(ns)) if not address: raise Exception("Failed to resolve address for %s" % ns) for rr in address.rrs(): self._ldns_resolver.push_nameserver_rr(rr)
def set_error(): """ Writes an error message and sets error flag. """ global class_name global method_name global error_detected error_detected = True sys.stderr.write("(line %d): malfunctioning method %s.\n" % \ (inspect.currentframe().f_back.f_lineno, method_name)) #if not error_detected: if True: method_name = class_name + ".__init__()" rdf1 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "test.nic.cz.") rdf2 = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_A, "217.31.205.50") try: dname = ldns.ldns_dname("www.nic.cz.") if not isinstance(dname, ldns.ldns_dname): set_error() except: set_error() # # Error when printing a dname wich was created fron an empty string. # Must find out why. # try: dname = ldns.ldns_dname(rdf1) if not isinstance(dname, ldns.ldns_dname): set_error()
if True: method_name = "ldns_rdf_new()" sys.stderr.write("%s not tested.\n" % (method_name)) #if not error_detected: if True: method_name = "ldns_rdf_new_frm_data()" sys.stderr.write("%s not tested.\n" % (method_name)) #if not error_detected: if True: method_name = "ldns_rdf_new_frm_str()" try: rdf = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "www.nic.cz") except: set_error() try: rdf = ldns.ldns_rdf_new_frm_str("", "www.nic.cz") et_error() except TypeError: pass except: set_error() try: rdf = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, 1) except TypeError: pass except: set_error()
#if not error_detected: if True: method_name = "ldns_rdf_new()" sys.stderr.write("%s not tested.\n" % (method_name)) #if not error_detected: if True: method_name = "ldns_rdf_new_frm_data()" sys.stderr.write("%s not tested.\n" % (method_name)) #if not error_detected: if True: method_name = "ldns_rdf_new_frm_str()" try: rdf = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "www.nic.cz") except: set_error() try: rdf = ldns.ldns_rdf_new_frm_str("", "www.nic.cz") et_error() except TypeError: pass except: set_error() try: rdf = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, 1) except TypeError: pass except: set_error()
set_error() except: set_error() #if not error_detected: if True: method_name = class_name + ".new_query()" dname = ldns.ldns_dname("test.nic.cz.") try: pkt = ldns.ldns_pkt.new_query(dname, ldns.LDNS_RR_TYPE_A, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_QR | ldns.LDNS_RD) if not isinstance(pkt, ldns.ldns_pkt): set_error() except: set_error() rdf = ldns.ldns_rdf_new_frm_str(ldns.LDNS_RDF_TYPE_DNAME, "test.nic.cz.") try: pkt = ldns.ldns_pkt.new_query(rdf, ldns.LDNS_RR_TYPE_A, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_QR | ldns.LDNS_RD) if not isinstance(pkt, ldns.ldns_pkt): set_error() except: set_error() try: pkt = ldns.ldns_pkt.new_query("bad argument", ldns.LDNS_RR_TYPE_A, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_QR | ldns.LDNS_RD) set_error() except TypeError as e: pass except: set_error() try: pkt = ldns.ldns_pkt.new_query(dname, "bad argument", ldns.LDNS_RR_CLASS_IN, ldns.LDNS_QR | ldns.LDNS_RD)