]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
pyLDNS: Added ldns_resolver.new().
authorKarel Slany <karel.slany@nic.cz>
Fri, 30 Aug 2013 10:35:48 +0000 (12:35 +0200)
committerKarel Slany <karel.slany@nic.cz>
Fri, 30 Aug 2013 10:35:48 +0000 (12:35 +0200)
contrib/python/Changelog
contrib/python/examples/test_resolver.py
contrib/python/ldns_resolver.i

index 6b08bff811dc53ed6cf059d572ecff0eb228c70c..860f82e7e9d2366715d54fc2a755c76ada97790d 100644 (file)
@@ -4,7 +4,7 @@
        * Fixed memory leaks when destroying ldns_resolver.
        * Removed ldns_pkt.section_count(), ldns_pkt.set_searchlist_count()
          because it is marked static in the library.
-       * Added ldns_pkt.new().
+       * Added ldns_pkt.new(), ldns_resolver.new().
        * Marked as returning new object ldns_pkt.get_section_clone(),
          ldns_resolver.get_addr_by_name(), ldns_resolver.get_name_by_addr(),
          ldns_resolver.search().
index 256dd31675f719d85fa7d2b9c33965f895b4dd33..274a4d87364f225a3b75e9158affc090c494da77 100755 (executable)
@@ -232,6 +232,18 @@ if True:
         set_error()
 
 
+#if not error_detected:
+if True:
+    method_name = class_name + ".edns_udp_size()"
+    try:
+        resolver = ldns.ldns_resolver.new()
+        if not isinstance(resolver, ldns.ldns_resolver):
+            set_error()
+    except:
+        set_error()
+
+
+
 #if not error_detected:
 if True:
     method_name = class_name + ".edns_udp_size()"
index 011511b8a5430f966cfe22fdc4d5461892c98cb8..b926e65a81e7502ace4cfc14e62e90076f7f5b46 100644 (file)
@@ -50,7 +50,7 @@
       SWIGTYPE_p_ldns_struct_resolver, SWIG_POINTER_OWN |  0 ));
 }
 
-//TODO: pop_nameserver a podobne funkce musi predat objekt do spravy PYTHONU!!
+%newobject ldns_resolver_new;
 %newobject ldns_resolver_pop_nameserver;
 %newobject ldns_resolver_query;
 %newobject ldns_resolver_search;
@@ -320,6 +320,30 @@ record."
         # LDNS_RESOLVER_CONSTRUCTORS_
         #
 
+        @staticmethod
+        def new():
+            """
+               Creates a new resolver object.
+
+               :return: (:class:`ldns_resolver`) New resolver object or None.
+
+               .. note::
+                   The returned resolver object is unusable unless some
+                   name servers are added.
+
+               **Usage**
+                 >>> resolver = ldns.ldns_resolver.new()
+                 >>> ns_addr = ldns.ldns_rdf.new_frm_str("8.8.8.8", ldns.LDNS_RDF_TYPE_A)
+                 >>> if not ns_addr: raise Exception("Can't create resolver address.")
+                 >>> status = resolver.push_nameserver(ns_addr)
+                 >>> if status != ldns.LDNS_STATUS_OK: raise Exception("Can't push resolver address.")
+                 >>> pkt = resolver.query("www.nic.cz.", ldns.LDNS_RR_TYPE_A, ldns.LDNS_RR_CLASS_IN, ldns.LDNS_RD)
+                 >>> if (pkt) and (pkt.answer()):
+                 >>>     print pkt.answer()
+                 www.nic.cz.     1265    IN      A       217.31.205.50
+            """
+            return _ldns.ldns_resolver_new()
+
         @staticmethod
         def new_frm_file(filename = "/etc/resolv.conf", raiseException=True):
             """