From: Willem Toorop Date: Tue, 1 Oct 2013 12:41:51 +0000 (+0200) Subject: Perl bindings configure option --with-p5-net-ldns X-Git-Tag: release-1.6.17rc1~25 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5eeb2ca9a733d70963bd9d1dbf928be126122f5;p=thirdparty%2Fldns.git Perl bindings configure option --with-p5-net-ldns --- diff --git a/Changelog b/Changelog index 503aad5c..8522bf46 100644 --- a/Changelog +++ b/Changelog @@ -47,6 +47,8 @@ * 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 diff --git a/Makefile.in b/Makefile.in index 36f9e670..40e157db 100644 --- a/Makefile.in +++ b/Makefile.in @@ -13,8 +13,10 @@ datadir = @datadir@ 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@ @@ -101,7 +103,7 @@ LINK_EXE = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) $(LIBSSL_LDFLAGS) .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 @@ -248,9 +250,29 @@ ldns_wrapper.lo: $(pywrapdir)/ldns_wrapper.c ldns/config.h _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 @@ -332,7 +354,7 @@ clean-lib: $(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 @@ -397,7 +419,7 @@ allclean: test-clean clean 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 diff --git a/configure.ac b/configure.ac index c909306c..461dbc9a 100644 --- a/configure.ac +++ b/configure.ac @@ -286,6 +286,30 @@ else 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 diff --git a/ldns/packet.h b/ldns/packet.h index eb250403..9dca06f5 100644 --- a/ldns/packet.h +++ b/ldns/packet.h @@ -410,6 +410,17 @@ uint32_t ldns_pkt_querytime(const ldns_pkt *p); */ 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 diff --git a/makedist.sh b/makedist.sh index 4af22cd2..0c3cd63b 100755 --- a/makedist.sh +++ b/makedist.sh @@ -120,6 +120,7 @@ info "Exporting source from GIT" 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." diff --git a/packet.c b/packet.c index f51fbb83..607c05e1 100644 --- a/packet.c +++ b/packet.c @@ -379,7 +379,7 @@ ldns_pkt_rr(ldns_pkt *pkt, ldns_pkt_section sec, ldns_rr *rr) return result; } -static uint16_t +uint16_t ldns_pkt_section_count(const ldns_pkt *packet, ldns_pkt_section s) { switch(s) {