diff options
Diffstat (limited to 'dnsname.c')
-rw-r--r-- | dnsname.c | 15 |
1 files changed, 11 insertions, 4 deletions
@@ -2,6 +2,7 @@ #include "exit.h" #include "strerr.h" #include "ip4.h" +#include "ip6.h" #include "dns.h" #define FATAL "dnsname: fatal: " @@ -9,6 +10,7 @@ static char seed[128]; char ip[4]; +char ip6[16]; static stralloc out; int main(int argc,char **argv) @@ -18,10 +20,15 @@ int main(int argc,char **argv) if (*argv) ++argv; while (*argv) { - if (!ip4_scan(*argv,ip)) - strerr_die3x(111,FATAL,"unable to parse IP address ",*argv); - if (dns_name4(&out,ip) == -1) - strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": "); + if (ip6_scan(*argv,ip6)) { + if (dns_name6(&out,ip6) == -1) + strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": "); + } else { + if (!ip4_scan(*argv,ip)) + strerr_die3x(111,FATAL,"unable to parse IP address ",*argv); + if (dns_name4(&out,ip) == -1) + strerr_die4sys(111,FATAL,"unable to find host name for ",*argv,": "); + } buffer_put(buffer_1,out.s,out.len); buffer_puts(buffer_1,"\n"); |