From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id 473A6386F0DA for ; Tue, 7 Jun 2022 20:29:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 473A6386F0DA Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-316-VmB22XQbPcyl6-1RAJ8Kwg-1; Tue, 07 Jun 2022 16:29:49 -0400 X-MC-Unique: VmB22XQbPcyl6-1RAJ8Kwg-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id C9F462949BA9 for ; Tue, 7 Jun 2022 20:29:48 +0000 (UTC) Received: from oldenburg.str.redhat.com (unknown [10.39.192.117]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 20E9F18EA2 for ; Tue, 7 Jun 2022 20:29:47 +0000 (UTC) From: Florian Weimer To: libc-alpha@sourceware.org Subject: [PATCH v2 1/2] support: Change non-address output format of support_format_dns_packet X-From-Line: 8df136914557c843ebc4f05fe3e423a8e610e077 Mon Sep 17 00:00:00 2001 Message-Id: <8df136914557c843ebc4f05fe3e423a8e610e077.1654633752.git.fweimer@redhat.com> Date: Tue, 07 Jun 2022 22:29:46 +0200 User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HK_OBFDOM, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_FILL_THIS_FORM_SHORT, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jun 2022 20:29:51 -0000 It makes sense to include the owner name (LHS) and record type in the output, so that they can be checked for correctness. --- v2: New patch. support/support_format_dns_packet.c | 22 +++++++++++++++------- support/tst-support_format_dns_packet.c | 4 ++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/support/support_format_dns_packet.c b/support/support_format_dns_packet.c index e8b3c125e3..14344bc1bf 100644 --- a/support/support_format_dns_packet.c +++ b/support/support_format_dns_packet.c @@ -90,6 +90,17 @@ extract_name (struct in_buffer full, struct in_buffer *in, struct dname *value) return true; } +static void +extract_name_data (struct in_buffer full, struct in_buffer *rdata, + const struct dname *owner, const char *typename, FILE *out) +{ + struct dname name; + if (extract_name (full, rdata, &name)) + fprintf (out, "data: %s %s %s\n", owner->name, typename, name.name); + else + fprintf (out, "error: malformed CNAME/PTR record\n"); +} + char * support_format_dns_packet (const unsigned char *buffer, size_t length) { @@ -195,14 +206,11 @@ support_format_dns_packet (const unsigned char *buffer, size_t length) } break; case T_CNAME: + extract_name_data (full, &rdata, &rname, "CNAME", mem.out); + break; case T_PTR: - { - struct dname name; - if (extract_name (full, &rdata, &name)) - fprintf (mem.out, "name: %s\n", name.name); - else - fprintf (mem.out, "error: malformed CNAME/PTR record\n"); - } + extract_name_data (full, &rdata, &rname, "PTR", mem.out); + break; } } diff --git a/support/tst-support_format_dns_packet.c b/support/tst-support_format_dns_packet.c index cb7ff53b87..9839aa767e 100644 --- a/support/tst-support_format_dns_packet.c +++ b/support/tst-support_format_dns_packet.c @@ -85,8 +85,8 @@ test_multiple_cnames (void) "\xc0\x00\x02\x01"; check_packet (packet, sizeof (packet) - 1, __func__, "name: www.example\n" - "name: www1.example\n" - "name: www2.example\n" + "data: www.example CNAME www1.example\n" + "data: www1.example CNAME www2.example\n" "address: 192.0.2.1\n"); } base-commit: 5082a287d5e9a1f9cb98b7c982a708a3684f1d5c -- 2.35.3