diff options
Diffstat (limited to 'dirmngr/t-dns-stuff.c')
-rw-r--r-- | dirmngr/t-dns-stuff.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/dirmngr/t-dns-stuff.c b/dirmngr/t-dns-stuff.c index f216d06eb..4ecbd64f0 100644 --- a/dirmngr/t-dns-stuff.c +++ b/dirmngr/t-dns-stuff.c @@ -44,6 +44,7 @@ main (int argc, char **argv) int opt_cert = 0; int opt_srv = 0; int opt_bracket = 0; + int opt_cname = 0; char const *name = NULL; gpgrt_init (); @@ -68,6 +69,7 @@ main (int argc, char **argv) " --bracket enclose v6 addresses in brackets\n" " --cert lookup a CERT RR\n" " --srv lookup a SRV RR\n" + " --cname lookup a CNAME RR\n" , stdout); exit (0); } @@ -102,6 +104,11 @@ main (int argc, char **argv) any_options = opt_srv = 1; argc--; argv++; } + else if (!strcmp (*argv, "--cname")) + { + any_options = opt_cname = 1; + argc--; argv++; + } else if (!strncmp (*argv, "--", 2)) { fprintf (stderr, PGM ": unknown option '%s'\n", *argv); @@ -177,6 +184,22 @@ main (int argc, char **argv) xfree (fpr); xfree (url); } + else if (opt_cname) + { + char *cname; + + printf ("CNAME lookup on '%s'\n", name); + err = get_dns_cname (name, &cname); + if (err) + printf ("get_dns_cname failed: %s <%s>\n", + gpg_strerror (err), gpg_strsource (err)); + else + { + printf ("CNAME found: '%s'\n", cname); + } + + xfree (cname); + } else if (opt_srv) { struct srventry *srv; |