From: W.C.A. Wijngaards Date: Fri, 11 Aug 2017 11:13:03 +0000 (+0200) Subject: * bugfix #1399: ldns_pkt2wire() Python binding is broken. X-Git-Tag: release-1.7.1-rc1~67 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e09396198b558ad4abcad2d836fabbeecd9fe18;p=thirdparty%2Fldns.git * bugfix #1399: ldns_pkt2wire() Python binding is broken. Thanks James Raftery --- diff --git a/Changelog b/Changelog index 16fbb9f5..164d65b3 100644 --- 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. diff --git a/contrib/python/ldns.i b/contrib/python/ldns.i index 0635c0ba..881ba5e8 100644 --- a/contrib/python/ldns.i +++ b/contrib/python/ldns.i @@ -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."""