]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
[v9_9] use dns_message_totext() in wire_data
authorEvan Hunt <each@isc.org>
Tue, 11 Aug 2015 03:51:51 +0000 (20:51 -0700)
committerEvan Hunt <each@isc.org>
Tue, 11 Aug 2015 03:51:51 +0000 (20:51 -0700)
bin/tests/Makefile.in
bin/tests/printmsg.c [deleted file]
bin/tests/printmsg.h [deleted file]
bin/tests/wire_test.c

index 3efccbcfbe3fc0d10f9e7ef3b8446cb877e27da4..6cfff56aa4057223f552da28a349f653ab7c0a6f 100644 (file)
@@ -118,7 +118,6 @@ XSRCS =             adb_test.c \
                mempool_test.c \
                name_test.c \
                nsecify.c \
-               printmsg.c \
                ratelimiter_test.c \
                rbt_test.c \
                rdata_test.c \
@@ -247,8 +246,8 @@ rwlock_test@EXEEXT@: rwlock_test.@O@ ${ISCDEPLIBS}
        ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ rwlock_test.@O@ \
                ${ISCLIBS} ${LIBS}
 
-wire_test@EXEEXT@: wire_test.@O@ printmsg.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
-       ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ wire_test.@O@ printmsg.@O@ \
+wire_test@EXEEXT@: wire_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
+       ${LIBTOOL_MODE_LINK} ${PURIFY} ${CC} ${CFLAGS} ${LDFLAGS} -o $@ wire_test.@O@ \
                ${DNSLIBS} ${ISCLIBS} ${LIBS}
 
 master_test@EXEEXT@: master_test.@O@ ${ISCDEPLIBS} ${DNSDEPLIBS}
diff --git a/bin/tests/printmsg.c b/bin/tests/printmsg.c
deleted file mode 100644 (file)
index f872af9..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-/*
- * Copyright (C) 2004, 2007, 2011, 2015  Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 1998-2001  Internet Software Consortium.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include <config.h>
-
-#include <isc/buffer.h>
-#include <isc/print.h>
-#include <isc/util.h>
-
-#include <dns/name.h>
-#include <dns/opcode.h>
-#include <dns/rcode.h>
-#include <dns/rdataset.h>
-
-#include "printmsg.h"
-
-static isc_result_t
-printsection(dns_message_t *msg, dns_section_t sectionid,
-            const char *section_name)
-{
-       dns_name_t *name, *print_name;
-       dns_rdataset_t *rdataset;
-       isc_buffer_t target;
-       isc_result_t result;
-       isc_region_t r;
-       dns_name_t empty_name;
-       char t[65536];
-#ifdef USEINITALWS
-       isc_boolean_t first;
-#endif
-       isc_boolean_t no_rdata;
-
-       if (sectionid == DNS_SECTION_QUESTION)
-               no_rdata = ISC_TRUE;
-       else
-               no_rdata = ISC_FALSE;
-
-       printf(";; %s SECTION:\n", section_name);
-
-       dns_name_init(&empty_name, NULL);
-
-       result = dns_message_firstname(msg, sectionid);
-       if (result == ISC_R_NOMORE)
-               return (ISC_R_SUCCESS);
-       else if (result != ISC_R_SUCCESS)
-               return (result);
-
-       for (;;) {
-               name = NULL;
-               dns_message_currentname(msg, sectionid, &name);
-
-               isc_buffer_init(&target, t, sizeof(t));
-#ifdef USEINITALWS
-               first = ISC_TRUE;
-#endif
-               print_name = name;
-
-               for (rdataset = ISC_LIST_HEAD(name->list);
-                    rdataset != NULL;
-                    rdataset = ISC_LIST_NEXT(rdataset, link)) {
-                       result = dns_rdataset_totext(rdataset,
-                                                    print_name,
-                                                    ISC_FALSE,
-                                                    no_rdata,
-                                                    &target);
-                       if (result != ISC_R_SUCCESS)
-                               return (result);
-#ifdef USEINITALWS
-                       if (first) {
-                               print_name = &empty_name;
-                               first = ISC_FALSE;
-                       }
-#endif
-               }
-               isc_buffer_usedregion(&target, &r);
-               printf("%.*s", (int)r.length, (char *)r.base);
-
-               result = dns_message_nextname(msg, sectionid);
-               if (result == ISC_R_NOMORE)
-                       break;
-               else if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-
-       return (ISC_R_SUCCESS);
-}
-
-static isc_result_t
-printrdata(dns_message_t *msg, dns_rdataset_t *rdataset, dns_name_t *owner,
-          const char *set_name)
-{
-       isc_buffer_t target;
-       isc_result_t result;
-       isc_region_t r;
-       char t[65536];
-
-       UNUSED(msg);
-       printf(";; %s SECTION:\n", set_name);
-
-       isc_buffer_init(&target, t, sizeof(t));
-
-       result = dns_rdataset_totext(rdataset, owner, ISC_FALSE, ISC_FALSE,
-                                    &target);
-       if (result != ISC_R_SUCCESS)
-               return (result);
-       isc_buffer_usedregion(&target, &r);
-       printf("%.*s", (int)r.length, (char *)r.base);
-
-       return (ISC_R_SUCCESS);
-}
-
-isc_result_t
-printmessage(dns_message_t *msg) {
-       isc_result_t result;
-       dns_rdataset_t *opt, *tsig;
-       dns_name_t *tsigname;
-       char opcode[64], rcode[64];
-       isc_buffer_t b;
-
-       result = ISC_R_SUCCESS;
-
-       isc_buffer_init(&b, opcode, sizeof(opcode));
-       dns_opcode_totext(msg->opcode, &b);
-       isc_buffer_putuint8(&b, 0);
-
-       isc_buffer_init(&b, rcode, sizeof(rcode));
-       dns_rcode_totext(msg->rcode, &b);
-       isc_buffer_putuint8(&b, 0);
-
-       printf(";; ->>HEADER<<- opcode: %s, status: %s, id: %u\n",
-              opcode, rcode, msg->id);
-
-       printf(";; flags:");
-       if ((msg->flags & DNS_MESSAGEFLAG_QR) != 0)
-               printf(" qr");
-       if ((msg->flags & DNS_MESSAGEFLAG_AA) != 0)
-               printf(" aa");
-       if ((msg->flags & DNS_MESSAGEFLAG_TC) != 0)
-               printf(" tc");
-       if ((msg->flags & DNS_MESSAGEFLAG_RD) != 0)
-               printf(" rd");
-       if ((msg->flags & DNS_MESSAGEFLAG_RA) != 0)
-               printf(" ra");
-       if ((msg->flags & DNS_MESSAGEFLAG_AD) != 0)
-               printf(" ad");
-       if ((msg->flags & DNS_MESSAGEFLAG_CD) != 0)
-               printf(" cd");
-       printf("; QUERY: %u, ANSWER: %u, AUTHORITY: %u, ADDITIONAL: %u\n",
-              msg->counts[DNS_SECTION_QUESTION],
-              msg->counts[DNS_SECTION_ANSWER],
-              msg->counts[DNS_SECTION_AUTHORITY],
-              msg->counts[DNS_SECTION_ADDITIONAL]);
-       opt = dns_message_getopt(msg);
-       if (opt != NULL)
-               printf(";; EDNS: version: %u, udp=%u\n",
-                      (unsigned int)((opt->ttl & 0x00ff0000) >> 16),
-                      (unsigned int)opt->rdclass);
-
-       tsigname = NULL;
-       tsig = dns_message_gettsig(msg, &tsigname);
-       if (tsig != NULL)
-               printf(";; PSEUDOSECTIONS: TSIG\n");
-       if (! ISC_LIST_EMPTY(msg->sections[DNS_SECTION_QUESTION])) {
-               printf("\n");
-               result = printsection(msg, DNS_SECTION_QUESTION, "QUESTION");
-               if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-       if (! ISC_LIST_EMPTY(msg->sections[DNS_SECTION_ANSWER])) {
-               printf("\n");
-               result = printsection(msg, DNS_SECTION_ANSWER, "ANSWER");
-               if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-       if (! ISC_LIST_EMPTY(msg->sections[DNS_SECTION_AUTHORITY])) {
-               printf("\n");
-               result = printsection(msg, DNS_SECTION_AUTHORITY, "AUTHORITY");
-               if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-       if (! ISC_LIST_EMPTY(msg->sections[DNS_SECTION_ADDITIONAL])) {
-               printf("\n");
-               result = printsection(msg, DNS_SECTION_ADDITIONAL,
-                                     "ADDITIONAL");
-               if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-       if (tsig != NULL) {
-               printf("\n");
-               result = printrdata(msg, tsig, tsigname,
-                                   "PSEUDOSECTION TSIG");
-               if (result != ISC_R_SUCCESS)
-                       return (result);
-       }
-       printf("\n");
-
-       return (result);
-}
diff --git a/bin/tests/printmsg.h b/bin/tests/printmsg.h
deleted file mode 100644 (file)
index c918561..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright (C) 2004, 2007  Internet Systems Consortium, Inc. ("ISC")
- * Copyright (C) 1998-2001  Internet Software Consortium.
- *
- * Permission to use, copy, modify, and/or distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
- * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
- * AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
- * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
- * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
- * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-/* $Id: printmsg.h,v 1.12 2007/06/19 23:46:59 tbox Exp $ */
-
-#ifndef TEST_PRINTMSG_H
-#define TEST_PRINTMSG_H
-
-#include <dns/message.h>
-
-isc_result_t printmessage(dns_message_t *message);
-
-#endif /* TEST_PRINTMSG_H */
index a5c9006d8106ff4452e780016d5b1ab68be27abb..e40bf79c4d5437466308f1bc59cab125e81fe9de 100644 (file)
@@ -15,8 +15,6 @@
  * PERFORMANCE OF THIS SOFTWARE.
  */
 
-/* $Id: wire_test.c,v 1.67 2007/06/19 23:46:59 tbox Exp $ */
-
 #include <config.h>
 
 #include <stdlib.h>
 #include <isc/string.h>
 #include <isc/util.h>
 
+#include <dns/message.h>
 #include <dns/result.h>
 
-#include "printmsg.h"
-
 int parseflags = 0;
 isc_mem_t *mctx;
 isc_boolean_t printmemstats = ISC_FALSE;
@@ -40,6 +37,9 @@ isc_boolean_t dorender = ISC_FALSE;
 static void
 process_message(isc_buffer_t *source);
 
+static isc_result_t
+printmessage(dns_message_t *msg);
+
 static inline void
 CHECKRESULT(isc_result_t result, const char *msg) {
        if (result != ISC_R_SUCCESS) {
@@ -74,6 +74,36 @@ usage(void) {
        fprintf(stderr, "\t-t\tTCP mode - ignore the first 2 bytes\n");
 }
 
+static isc_result_t
+printmessage(dns_message_t *msg) {
+       isc_buffer_t b;
+       char *buf = NULL;
+       int len = 1024;
+       isc_result_t result = ISC_R_SUCCESS;
+
+       do {
+               buf = isc_mem_get(mctx, len);
+               if (buf == NULL) {
+                       result = ISC_R_NOMEMORY;
+                       break;
+               }
+
+               isc_buffer_init(&b, buf, len);
+               result = dns_message_totext(msg, &dns_master_style_debug,
+                                           0, &b);
+               if (result == ISC_R_NOSPACE) {
+                       isc_mem_put(mctx, buf, len);
+                       len *= 2;
+               } else if (result == ISC_R_SUCCESS)
+                       printf("%.*s\n", (int) isc_buffer_usedlength(&b), buf);
+       } while (result == ISC_R_NOSPACE);
+
+       if (buf != NULL)
+               isc_mem_put(mctx, buf, len);
+
+       return (result);
+}
+
 int
 main(int argc, char *argv[]) {
        char *rp, *wp;