From: Matthijs Mekking Date: Thu, 22 Sep 2011 09:52:14 +0000 (+0000) Subject: print layout and comments (disabled by default) X-Git-Tag: release-1.6.11rc1~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b42d27f015ecd3e5d174cb371235c9c9d7fabf21;p=thirdparty%2Fldns.git print layout and comments (disabled by default) --- diff --git a/dnssec_zone.c b/dnssec_zone.c index cdd4e2d8..9132321a 100644 --- a/dnssec_zone.c +++ b/dnssec_zone.c @@ -82,7 +82,8 @@ ldns_dnssec_rrs_print_fmt(FILE *out, const ldns_output_format *fmt, ldns_dnssec_rrs *rrs) { if (!rrs) { - fprintf(out, ""); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, "; "); } else { if (rrs->rr) { ldns_rr_print_fmt(out, fmt, rrs->rr); @@ -276,7 +277,8 @@ ldns_dnssec_rrsets_print_soa_fmt(FILE *out, const ldns_output_format *fmt, bool show_soa) { if (!rrsets) { - fprintf(out, "\n"); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, "; \n"); } else { if (rrsets->rrs && (show_soa || @@ -570,7 +572,7 @@ ldns_dnssec_name_print_soa_fmt(FILE *out, const ldns_output_format *fmt, if(name->rrsets) { ldns_dnssec_rrsets_print_soa_fmt(out, fmt, name->rrsets, true, show_soa); - } else { + } else if ((fmt->flags & LDNS_COMMENT_LAYOUT)) { fprintf(out, ";; Empty nonterminal: "); ldns_rdf_print(out, name->name); fprintf(out, "\n"); @@ -582,8 +584,8 @@ ldns_dnssec_name_print_soa_fmt(FILE *out, const ldns_output_format *fmt, ldns_dnssec_rrs_print_fmt(out, fmt, name->nsec_signatures); } - } else { - fprintf(out, "\n"); + } else if ((fmt->flags & LDNS_COMMENT_LAYOUT)) { + fprintf(out, "; \n"); } } @@ -773,7 +775,8 @@ ldns_dnssec_zone_names_print_fmt(FILE *out, const ldns_output_format *fmt, while (node != LDNS_RBTREE_NULL) { name = (ldns_dnssec_name *) node->data; ldns_dnssec_name_print_soa_fmt(out, fmt, name, print_soa); - fprintf(out, ";\n"); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, ";\n"); node = ldns_rbtree_next(node); } } @@ -791,16 +794,19 @@ ldns_dnssec_zone_print_fmt(FILE *out, const ldns_output_format *fmt, { if (zone) { if (zone->soa) { - fprintf(out, ";; Zone: "); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, ";; Zone: "); ldns_rdf_print(out, ldns_dnssec_name_name(zone->soa)); - fprintf(out, "\n;\n"); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, "\n;\n"); ldns_dnssec_rrsets_print_fmt(out, fmt, ldns_dnssec_name_find_rrset( zone->soa, LDNS_RR_TYPE_SOA), false); - fprintf(out, ";\n"); + if ((fmt->flags & LDNS_COMMENT_LAYOUT)) + fprintf(out, ";\n"); } if (zone->names) { diff --git a/examples/ldns-signzone.c b/examples/ldns-signzone.c index 486a0239..ed094df7 100644 --- a/examples/ldns-signzone.c +++ b/examples/ldns-signzone.c @@ -31,6 +31,7 @@ static void usage(FILE *fp, const char *prog) { fprintf(fp, "%s [OPTIONS] zonefile key [key [key]]\n", prog); fprintf(fp, " signs the zone with the given key(s)\n"); + fprintf(fp, " -b\t\tuse layout in signed zone and print comments DNSSEC records\n"); fprintf(fp, " -d\t\tused keys are not added to the zone\n"); fprintf(fp, " -e \texpiration date\n"); fprintf(fp, " -f \toutput zone to file (default .signed)\n"); @@ -50,8 +51,6 @@ usage(FILE *fp, const char *prog) { fprintf(fp, "\t\t-t [number] number of hash iterations\n"); fprintf(fp, "\t\t-s [string] salt\n"); fprintf(fp, "\t\t-p set the opt-out flag on all nsec3 rrs\n"); - fprintf(fp, "\t\t-u include the unhashed NSEC3 names as comments " - "in the zone\n"); fprintf(fp, "\n"); fprintf(fp, " keys must be specified by their base name (usually K++),\n"); fprintf(fp, " i.e. WITHOUT the .private extension.\n"); @@ -390,11 +389,18 @@ main(int argc, char *argv[]) OPENSSL_config(NULL); - while ((c = getopt(argc, argv, "a:de:f:i:k:lno:ps:t:uvAE:K:")) != -1) { + while ((c = getopt(argc, argv, "a:bde:f:i:k:lno:ps:t:vAE:K:")) != -1) { switch (c) { case 'a': nsec3_algorithm = (uint8_t) atoi(optarg); break; + case 'b': + fmt.flags |= LDNS_COMMENT_BUBBLEBABBLE; + fmt.flags |= LDNS_COMMENT_FLAGS; + fmt.flags |= LDNS_COMMENT_NSEC3_CHAIN; + fmt.flags |= LDNS_COMMENT_LAYOUT; + hashmap = (ldns_rbtree_t **)&fmt.data; + break; case 'd': add_keys = false; break; @@ -460,7 +466,6 @@ main(int argc, char *argv[]) usage(stderr, prog); exit(EXIT_FAILURE); } - break; case 'p': nsec3_flags = nsec3_flags | LDNS_NSEC3_VARS_OPTOUT_MASK; @@ -594,10 +599,6 @@ main(int argc, char *argv[]) } nsec3_iterations = (uint16_t) nsec3_iterations_cmd; break; - case 'u': - fmt.flags |= LDNS_COMMENT_NSEC3_CHAIN; - hashmap = (ldns_rbtree_t **)&fmt.data; - break; default: usage(stderr, prog); exit(EXIT_SUCCESS); diff --git a/ldns/host2str.h b/ldns/host2str.h index 3b4fb7d3..bfca985e 100644 --- a/ldns/host2str.h +++ b/ldns/host2str.h @@ -60,6 +60,8 @@ extern "C" { #define LDNS_COMMENT_FLAGS 0x20 /** Show the unhashed owner and next owner names for NSEC3 RR's as comment */ #define LDNS_COMMENT_NSEC3_CHAIN 0x40 +/** Print mark up */ +#define LDNS_COMMENT_LAYOUT 0x80 /** * Output format specifier