0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 1999-2001, 2004, 2005, 2007, 2015, 2016 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
e0a30050c8516a3d54a4f8dcdd88435704a8a3edMark Andrewsstatic inline void
e0a30050c8516a3d54a4f8dcdd88435704a8a3edMark AndrewsCHECKRESULT(isc_result_t result, const char *msg) {
9ac7076ebad044afb15e9e2687e3696868778538Mark Andrews printf("%s: %s\n", msg, dns_result_totext(result));
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews return (c - '0');
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews fprintf(stderr, "bad input format: %02x\n", c);
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews /* NOTREACHED */
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews fprintf(stderr, "wire_test [-b] [-d] [-p] [-r] [-s]\n");
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews fprintf(stderr, " [-m {usage|trace|record|size|mctx}]\n");
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence fprintf(stderr, "\t-b\tBest-effort parsing (ignore some errors)\n");
4b6dc226f78862286daa69fba761eac9fd5da16aAutomatic Updater fprintf(stderr, "\t-d\tRead input as raw binary data\n");
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews fprintf(stderr, "\t-p\tPreserve order of the records in messages\n");
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman fprintf(stderr, "\t-r\tAfter parsing, re-render the message\n");
f7b99290c31abeb20c55fc55391510450ce60423Mark Andrews fprintf(stderr, "\t-s\tPrint memory statistics\n");
ae114ded82e773a4d9058f833f964a17514712a8Brian Wellington fprintf(stderr, "\t-t\tTCP mode - ignore the first 2 bytes\n");
94a08e09db3dc844b6ee4841c368a2d7074a9c3fAndreas Gustafsson result = dns_message_totext(msg, &dns_master_style_debug,
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews printf("%.*s\n", (int) isc_buffer_usedlength(&b), buf);
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews * Process memory debugging argument first.
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews if (strcasecmp(isc_commandline_argument, "record") == 0)
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence if (strcasecmp(isc_commandline_argument, "trace") == 0)
373ce67419680a398ba3dc51a14a486caaf0afb0Mark Andrews if (strcasecmp(isc_commandline_argument, "usage") == 0)
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman if (strcasecmp(isc_commandline_argument, "size") == 0)
373ce67419680a398ba3dc51a14a486caaf0afb0Mark Andrews if (strcasecmp(isc_commandline_argument, "mctx") == 0)
5d51e67c3b4f35c1be742574aacc1d88fe6ed444Mark Andrews RUNTIME_CHECK(isc_mem_create(0, 0, &mctx) == ISC_R_SUCCESS);
6d12fdf96621801e80f3f4c2a8a569fe48766a20David Lawrence while ((ch = isc_commandline_parse(argc, argv, CMDLINE_FLAGS)) != -1) {
659c68b446073e4e450dd2021fdb5bc40decffe2David Lawrence result = isc_buffer_allocate(mctx, &input, 64 * 1024);
2047977ce2dfcfe3a0fa2d638c3242841310fad3Mark Andrews (unsigned long)len);
if (printmemstats)
if (printmemstats)
if (dorender) {
for (i = 0; i < DNS_SECTION_MAX; i++)
DNS_SECTION_QUESTION, 0);
DNS_SECTION_ANSWER, 0);
if (printmemstats)
&message);