From: Ondřej Surý Date: Fri, 22 Mar 2019 09:36:25 +0000 (+0100) Subject: Make lib/dns/dnstap.pb-c.h private header X-Git-Tag: v9.11.7~43^2 X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=c927beea2d877675987356fe516c5c6e649a6f08;p=thirdparty%2Fbind9.git Make lib/dns/dnstap.pb-c.h private header This changes dns_dtdata struct to not expose data types from dnstap.pb-c.h to prevent the need for including this header where not really needed. (cherry picked from commit 8ccce7e24b6aff6e02745b64d66ef50842763543) --- diff --git a/bin/tools/dnstap-read.c b/bin/tools/dnstap-read.c index 4cafdb4bb20..49dbb9b5c0b 100644 --- a/bin/tools/dnstap-read.c +++ b/bin/tools/dnstap-read.c @@ -47,6 +47,9 @@ #include #include +#include +#include "lib/dns/dnstap.pb-c.h" + isc_mem_t *mctx = NULL; bool memrecord = false; bool printmessage = false; diff --git a/configure b/configure index e309363bf55..8715961d77d 100755 --- a/configure +++ b/configure @@ -705,7 +705,6 @@ W3M DBLATEX PDFLATEX LATEX -DNSTAP_PB_C_H DNSTAPTARGETS DNSTAPOBJS DNSTAPSRCS @@ -21771,7 +21770,6 @@ DNSTAP= DNSTAPSRCS= DNSTAPOBJS= DNSTAPTARGETS= -DNSTAP_PB_C_H= if test "x$use_dnstap" != "xno"; then if ! $use_threads; then as_fn_error $? "Dnstap requires threads." "$LINENO" 5 @@ -22107,14 +22105,12 @@ $as_echo "#define HAVE_DNSTAP 1" >>confdefs.h DNSTAPSRCS='${DNSTAPSRCS}' DNSTAPOBJS='${DNSTAPOBJS}' DNSTAPTARGETS='${DNSTAPTARGETS}' - DNSTAP_PB_C_H="dnstap.pb-c.h" fi - # # The following sets up how non-blocking i/o is established. # Sunos, cygwin and solaris 2.x (x<5) require special handling. diff --git a/configure.ac b/configure.ac index dd478760fbe..ce2b0ab1094 100644 --- a/configure.ac +++ b/configure.ac @@ -4443,7 +4443,6 @@ DNSTAP= DNSTAPSRCS= DNSTAPOBJS= DNSTAPTARGETS= -DNSTAP_PB_C_H= if test "x$use_dnstap" != "xno"; then if ! $use_threads; then AC_MSG_ERROR([Dnstap requires threads.]) @@ -4500,13 +4499,11 @@ if test "x$use_dnstap" != "xno"; then DNSTAPSRCS='${DNSTAPSRCS}' DNSTAPOBJS='${DNSTAPOBJS}' DNSTAPTARGETS='${DNSTAPTARGETS}' - DNSTAP_PB_C_H="dnstap.pb-c.h" fi AC_SUBST(DNSTAP) AC_SUBST(DNSTAPSRCS) AC_SUBST(DNSTAPOBJS) AC_SUBST(DNSTAPTARGETS) -AC_SUBST(DNSTAP_PB_C_H) # # The following sets up how non-blocking i/o is established. diff --git a/lib/dns/Makefile.in b/lib/dns/Makefile.in index 068bbac6deb..56dd259e19b 100644 --- a/lib/dns/Makefile.in +++ b/lib/dns/Makefile.in @@ -201,7 +201,7 @@ clean distclean:: rm -f libdns.@A@ timestamp rm -f gen code.h include/dns/enumtype.h include/dns/enumclass.h rm -f include/dns/rdatastruct.h - rm -f dnstap.pb-c.c dnstap.pb-c.h include/dns/dnstap.pb-c.h + rm -f dnstap.pb-c.c dnstap.pb-c.h newrr:: rm -f code.h include/dns/enumtype.h include/dns/enumclass.h @@ -218,9 +218,8 @@ ${OBJS}: include # dnstap dnstap.@O@: dnstap.c dnstap.pb-c.c -dnstap.pb-c.c dnstap.pb-c.h include/dns/dnstap.pb-c.h: dnstap.proto +dnstap.pb-c.c dnstap.pb-c.h: dnstap.proto $(PROTOC_C) --c_out=. --proto_path ${srcdir} dnstap.proto - cp -f dnstap.pb-c.h include/dns dnstap.pb-c.@O@: dnstap.pb-c.c diff --git a/lib/dns/dnstap.c b/lib/dns/dnstap.c index 0c29d0ba785..219652479c6 100644 --- a/lib/dns/dnstap.c +++ b/lib/dns/dnstap.c @@ -74,8 +74,8 @@ #include #include -#include #include +#include "dnstap.pb-c.h" #define DTENV_MAGIC ISC_MAGIC('D', 't', 'n', 'v') #define VALID_DTENV(env) ISC_MAGIC_VALID(env, DTENV_MAGIC) @@ -950,6 +950,7 @@ dns_dt_close(dns_dthandle_t **handlep) { isc_result_t dns_dt_parse(isc_mem_t *mctx, isc_region_t *src, dns_dtdata_t **destp) { isc_result_t result; + Dnstap__Dnstap *frame; Dnstap__Message *m; dns_dtdata_t *d = NULL; isc_buffer_t b; @@ -968,10 +969,12 @@ dns_dt_parse(isc_mem_t *mctx, isc_region_t *src, dns_dtdata_t **destp) { if (d->frame == NULL) CHECK(ISC_R_NOMEMORY); - if (d->frame->type != DNSTAP__DNSTAP__TYPE__MESSAGE) + frame = (Dnstap__Dnstap *)d->frame; + + if (frame->type != DNSTAP__DNSTAP__TYPE__MESSAGE) CHECK(DNS_R_BADDNSTAP); - m = d->frame->message; + m = frame->message; /* Message type */ switch (m->type) { diff --git a/lib/dns/include/dns/Makefile.in b/lib/dns/include/dns/Makefile.in index 59897feb64f..29cec461153 100644 --- a/lib/dns/include/dns/Makefile.in +++ b/lib/dns/include/dns/Makefile.in @@ -33,7 +33,7 @@ HEADERS = acache.h acl.h adb.h badcache.h bit.h byaddr.h \ update.h validator.h version.h view.h xfrin.h \ zone.h zonekey.h zt.h -GENHEADERS = @DNSTAP_PB_C_H@ enumclass.h enumtype.h rdatastruct.h +GENHEADERS = enumclass.h enumtype.h rdatastruct.h SUBDIRS = TARGETS = diff --git a/lib/dns/include/dns/dnstap.h b/lib/dns/include/dns/dnstap.h index 279f7fd0a1c..d8835564798 100644 --- a/lib/dns/include/dns/dnstap.h +++ b/lib/dns/include/dns/dnstap.h @@ -29,7 +29,6 @@ #ifdef HAVE_DNSTAP #include #include -#include #else struct fstrm_iothr_options; #endif /* HAVE_DNSTAP */ @@ -93,7 +92,7 @@ typedef struct dns_dthandle dns_dthandle_t; struct dns_dtdata { isc_mem_t *mctx; - Dnstap__Dnstap *frame; + void *frame; bool query; bool tcp; diff --git a/lib/dns/tests/dnstap_test.c b/lib/dns/tests/dnstap_test.c index 5a60b12bbc5..b470b7b4000 100644 --- a/lib/dns/tests/dnstap_test.c +++ b/lib/dns/tests/dnstap_test.c @@ -38,7 +38,7 @@ #include "dnstest.h" #ifdef HAVE_DNSTAP -#include + #include #define TAPFILE "testdata/dnstap/dnstap.file"