* bugfix #525: Fix documentation of ldns_resolver_set_retry
* Remove unused LDNS_RDF_TYPE_TSIG and associated functions.
* Fix ldns_nsec_covers_name for zones with an apex only. Thanks Miek.
+ * Configure option to build perl bindings: --with-p5-net-ldns
+ (Net::LDNS is a contribution from Erik Ostlyngen)
1.6.16 2012-11-13
* Fix Makefile to build pyldns with BSD make
libdir = @libdir@
includedir = @includedir@
doxygen = @doxygen@
-pywrapdir = ${srcdir}/contrib/python
-pyldnsxwrapdir = ${srcdir}/contrib/ldnsx
+pywrapdir = $(srcdir)/contrib/python
+pyldnsxwrapdir = $(srcdir)/contrib/ldnsx
+p5_net_ldns_dir = $(srcdir)/contrib/Net-LDNS
+PERL = @PERL@
swig = @swig@
swigpy_flags = -python @SWIGPY3@
python_site = @PYTHON_SITE_PKG@
.PHONY: install uninstall install-doc uninstall-doc uninstall-pyldns
.PHONY: install-h uninstall-h install-lib uninstall-lib install-pyldns
-all: setup-builddir lib linktest manpages @PYLDNS@ @DRILL@ @EXAMPLES@
+all: setup-builddir lib linktest manpages @P5_NET_LDNS@ @PYLDNS@ @DRILL@ @EXAMPLES@
.SUFFIXES: .c .o .a .lo .h .i
_ldns.la: ldns_wrapper.lo libldns.la
$(LIBTOOL) --tag=CC --mode=link $(CC) $(CFLAGS) $(PYTHON_CFLAGS) $(LDFLAGS) $(PYTHON_LDFLAGS) -module -version-number $(version_info) -no-undefined -o $@ ldns_wrapper.lo -rpath $(python_site) -L. -L.libs -lldns $(LIBS)
-install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+$(p5_net_ldns_dir)/Makefile: $(p5_net_ldns_dir)/Makefile.PL
+ BUILDDIR=`pwd`; cd $(p5_net_ldns_dir); $(PERL) Makefile.PL PREFIX="$(prefix)" LIBS="-L$$BUILDDIR/.libs -lldns" INC="-I$$BUILDDIR"
-uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
+$(p5_net_ldns_dir)/blib/arch/auto/Net/LDNS/LDNS.so: $(p5_net_ldns_dir)/Makefile
+ cd $(p5_net_ldns_dir); $(MAKE)
+
+p5-net-ldns: $(p5_net_ldns_dir)/blib/arch/auto/Net/LDNS/LDNS.so
+
+install-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+ cd $(p5_net_ldns_dir); $(MAKE) install
+
+uninstall-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+ cd $(p5_net_ldns_dir); $(MAKE) uninstall
+
+clean-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+ cd $(p5_net_ldns_dir); $(MAKE) clean
+
+test-p5-net-ldns: $(p5_net_ldns_dir)/Makefile
+ cd $(p5_net_ldns_dir); $(MAKE) test
+
+install: install-h install-lib @INSTALL_CONFIG@ install-manpages $(pyldns_inst) $(pyldnsx_inst) @INSTALL_P5_NET_LDNS@ @INSTALL_DRILL@ @INSTALL_EXAMPLES@
+
+uninstall: uninstall-manpages @UNINSTALL_CONFIG@ uninstall-h uninstall-lib $(pyldns_uninst) $(pyldnsx_uninst) @UNINSTALL_P5_NET_LDNS@ @UNINSTALL_DRILL@ @UNINSTALL_EXAMPLES@
destclean: uninstall
$(LIBTOOL) --mode clean rm -f $(pywrapdir)/ldns_wrapper.c
$(LIBTOOL) --mode clean rm -f $(pywrapdir)/ldns.py
-clean: @CLEAN_DRILL@ @CLEAN_EXAMPLES@ clean-manpages clean-lib putdown-builddir
+clean: @CLEAN_DRILL@ @CLEAN_EXAMPLES@ @CLEAN_P5_NET_LDNS@ clean-manpages clean-lib putdown-builddir
realclean: clean docclean
rm -f config.status
test-clean:
tpkg -b test clean
-test:
+test: @TEST_P5_NET_LDNS@
if test -x "`which bash`"; then bash test/test_all.sh; else sh test/test_all.sh; fi
AC_SUBST(PYLDNSXUNINST, "")
fi
+# check for perl
+ldns_with_p5_net_ldns=no
+AC_ARG_WITH(p5-net-ldns, AC_HELP_STRING([--with-p5-net-ldns],
+ [generate Net::LDNS perl bindings]),
+ [],[ withval="no" ])
+ldns_have_perl=no
+if test x_$withval != x_no; then
+ AC_PATH_PROG([PERL], [perl])
+ if test -z "$PERL"; then
+ AC_MSG_ERROR([Cannot find perl in your system path])
+ fi
+ AC_SUBST(P5_NET_LDNS, "p5-net-ldns")dnl
+ AC_SUBST(TEST_P5_NET_LDNS, "test-p5-net-ldns")dnl
+ AC_SUBST(INSTALL_P5_NET_LDNS, "install-p5-net-ldns")dnl
+ AC_SUBST(UNINSTALL_P5_NET_LDNS, "uninstall-p5-net-ldns")dnl
+ AC_SUBST(CLEAN_P5_NET_LDNS, "clean-p5-net-ldns")
+else
+ AC_SUBST(P5_NET_LDNS, "")dnl
+ AC_SUBST(TEST_P5_NET_LDNS, "")dnl
+ AC_SUBST(INSTALL_P5_NET_LDNS, "")dnl
+ AC_SUBST(UNINSTALL_P5_NET_LDNS, "")dnl
+ AC_SUBST(CLEAN_P5_NET_LDNS, "")
+fi
+
# Use libtool
ACX_LIBTOOL_C_ONLY
*/
size_t ldns_pkt_size(const ldns_pkt *p);
+/**
+ * Return the number of RRs in the given section.
+ * Returns the sum of all RRs when LDNS_SECTION_ANY is given.
+ * Returns the sum of all non-question RRs when LDNS_SECTION_ANY_NOQUESTION
+ * is given.
+ * \param[in] p the packet
+ * \param[in] s the section
+ * \return the number of RRs in the given section
+ */
+uint16_t ldns_pkt_section_count(const ldns_pkt *p, ldns_pkt_section s);
+
/**
* Return the packet's tsig pseudo rr's
* \param[in] p the packet
git clone git://git.nlnetlabs.nl/ldns/ || error_cleanup "git command failed"
cd ldns || error_cleanup "LDNS not exported correctly from git"
git checkout "$CHECKOUT" || error_cleanup "Could not checkout $CHECKOUT"
+git submodule update --init || error_cleanup "Could not checkout submodules"
info "Running Libtoolize script (libtoolize)."
libtoolize -c --install || libtoolize -c || error_cleanup "Libtoolize failed."
return result;
}
-static uint16_t
+uint16_t
ldns_pkt_section_count(const ldns_pkt *packet, ldns_pkt_section s)
{
switch(s) {