]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
* bugfix #1399: ldns_pkt2wire() Python binding is broken.
authorW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 11 Aug 2017 11:13:03 +0000 (13:13 +0200)
committerW.C.A. Wijngaards <wouter@nlnetlabs.nl>
Fri, 11 Aug 2017 11:13:03 +0000 (13:13 +0200)
  Thanks James Raftery

Changelog
contrib/python/ldns.i

index 16fbb9f5a88736d10cdc5bf2eb35bf9dfaf1d049..164d65b3dc843bc8fe9ae5a1210e27fb8be20c91 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -20,6 +20,8 @@
        * ldns_wire2pkt: fix null pointer dereference if pkt allocation fails
          and fix memory leak with more EDNS sections
          Thanks Jan Vcelak
+       * bugfix #1399: ldns_pkt2wire() Python binding is broken.
+         Thanks James Raftery
 
 1.7.0  2016-12-20
        * Fix lookup of relative names in ldns_resolver_search.
index 0635c0bac83b28bdf76695da7bf46f4074c39246..881ba5e858a73f5f8d7149d8190fb549c4e77506 100644 (file)
@@ -399,6 +399,28 @@ PyObject* ldns_wire2pkt_(const char *str, int len)
   return tuple;
 }
 
+PyObject* ldns_pkt2wire_(const ldns_pkt *pkt)
+ //returns tuple (status, result)
+ {
+  PyObject *resultobj = 0;
+  uint8_t *arg1 = NULL;
+  size_t arg3;
+  ldns_status result;
+  PyObject* tuple;
+
+  result = (ldns_status)ldns_pkt2wire(&arg1,pkt,&arg3);
+  tuple = PyTuple_New(2);
+  PyTuple_SetItem(tuple, 0, SWIG_From_int(result));
+  if (result == LDNS_STATUS_OK)
+     PyTuple_SetItem(tuple, 1, SWIG_FromCharPtrAndSize((char *)arg1, arg3));
+  else {
+     Py_INCREF(Py_None);
+     PyTuple_SetItem(tuple, 1, Py_None);
+  }
+  LDNS_FREE(arg1);
+  return tuple;
+}
+
 %}
 
 %pythoncode %{
@@ -408,6 +430,9 @@ def ldns_fetch_valid_domain_keys(res, domain, keys):
 def ldns_wire2pkt(data):
     return _ldns.ldns_wire2pkt_(data)
 
+def ldns_pkt2wire(data):
+    return _ldns.ldns_pkt2wire_(data)
+
 def ldns_rr_iter_frm_fp_l(input_file):
     """Creates an iterator (generator) that returns individual parsed
     RRs from an open zone file."""