81 lines
1.5 KiB
C
81 lines
1.5 KiB
C
|
/*
|
||
|
* ldnssec-utils
|
||
|
*
|
||
|
* Written in 2021 by Lucas
|
||
|
*
|
||
|
* To the extent possible under law, the author(s) have dedicated all
|
||
|
* copyright and related and neighboring rights to this software to the
|
||
|
* public domain worldwide. This software is distributed without any
|
||
|
* warranty.
|
||
|
*
|
||
|
* You should have received a copy of the CC0 Public Domain Dedication
|
||
|
* along with this software. If not, see
|
||
|
* <http://creativecommons.org/publicdomain/zero/1.0/>.
|
||
|
*/
|
||
|
|
||
|
#include <err.h>
|
||
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <unistd.h>
|
||
|
|
||
|
#include <ldns/ldns.h>
|
||
|
|
||
|
#include "util.h"
|
||
|
|
||
|
static void
|
||
|
usage(void)
|
||
|
{
|
||
|
fprintf(stderr, "usage: %s [-f zone]\n", getprogname());
|
||
|
exit(1);
|
||
|
}
|
||
|
|
||
|
int
|
||
|
main(int argc, char *argv[])
|
||
|
{
|
||
|
ldns_zone *zone;
|
||
|
ldns_status s;
|
||
|
FILE *fp;
|
||
|
char *filename;
|
||
|
int ch, line_nr;
|
||
|
|
||
|
fp = NULL;
|
||
|
filename = NULL;
|
||
|
while ((ch = getopt(argc, argv, "f:")) != -1) {
|
||
|
switch (ch) {
|
||
|
case 'f':
|
||
|
if (fp != NULL)
|
||
|
errx(1, "-f can be used only once");
|
||
|
filename = optarg;
|
||
|
fp = fopen(filename, "r");
|
||
|
if (fp == NULL)
|
||
|
err(1, "fopen");
|
||
|
break;
|
||
|
default:
|
||
|
usage();
|
||
|
}
|
||
|
}
|
||
|
argc -= optind;
|
||
|
argv += optind;
|
||
|
|
||
|
if (fp == NULL) {
|
||
|
filename = "(stdin)";
|
||
|
fp = stdin;
|
||
|
}
|
||
|
|
||
|
fatal_check_minimum_ldns_revision();
|
||
|
|
||
|
s = ldns_zone_new_frm_fp_l(&zone, fp, NULL, LDNS_DEFAULT_TTL,
|
||
|
LDNS_RR_CLASS_IN, &line_nr);
|
||
|
if (s != LDNS_STATUS_OK)
|
||
|
errx(1, "ldns_zone_new_frm_fp_l: file %s line %d: %s",
|
||
|
filename, line_nr, ldns_get_errorstr_by_id(s));
|
||
|
if (fp != stdin)
|
||
|
(void)fclose(fp);
|
||
|
|
||
|
ldns_zone_print(stdout, zone);
|
||
|
|
||
|
ldns_zone_deep_free(zone);
|
||
|
|
||
|
return 0;
|
||
|
}
|