adig: RFC4034 resource record type detection

Can be tested with: adig -s 8.8.8.8 -t ANY example.com
pull/4/head
Yang Tse 14 years ago
parent ebc9a9d958
commit 2c2e2d839e
  1. 34
      adig.c

@ -77,14 +77,26 @@
#undef WIN32 /* Redefined in MingW headers */ #undef WIN32 /* Redefined in MingW headers */
#endif #endif
/* Mac OS X portability check */
#ifndef T_SRV #ifndef T_SRV
#define T_SRV 33 /* server selection */ # define T_SRV 33 /* Server selection */
#endif #endif
/* AIX portability check */
#ifndef T_NAPTR #ifndef T_NAPTR
#define T_NAPTR 35 /* naming authority pointer */ # define T_NAPTR 35 /* Naming authority pointer */
#endif
#ifndef T_DS
# define T_DS 43 /* Delegation Signer (RFC4034) */
#endif
#ifndef T_SSHFP
# define T_SSHFP 44 /* SSH Key Fingerprint (RFC4255) */
#endif
#ifndef T_RRSIG
# define T_RRSIG 46 /* Resource Record Signature (RFC4034) */
#endif
#ifndef T_NSEC
# define T_NSEC 47 /* Next Secure (RFC4034) */
#endif
#ifndef T_DNSKEY
# define T_DNSKEY 48 /* DNS Public Key (RFC4034) */
#endif #endif
struct nv { struct nv {
@ -145,6 +157,11 @@ static const struct nv types[] = {
{ "MAILB", T_MAILB }, { "MAILB", T_MAILB },
{ "MAILA", T_MAILA }, { "MAILA", T_MAILA },
{ "NAPTR", T_NAPTR }, { "NAPTR", T_NAPTR },
{ "DS", T_DS },
{ "SSHFP", T_SSHFP },
{ "RRSIG", T_RRSIG },
{ "NSEC", T_NSEC },
{ "DNSKEY", T_DNSKEY },
{ "ANY", T_ANY } { "ANY", T_ANY }
}; };
static const int ntypes = sizeof(types) / sizeof(types[0]); static const int ntypes = sizeof(types) / sizeof(types[0]);
@ -750,6 +767,13 @@ static const unsigned char *display_rr(const unsigned char *aptr,
ares_free_string(name.as_char); ares_free_string(name.as_char);
break; break;
case T_DS:
case T_SSHFP:
case T_RRSIG:
case T_NSEC:
case T_DNSKEY:
printf("\t[RR type parsing unavailable]");
break;
default: default:
printf("\t[Unknown RR; cannot parse]"); printf("\t[Unknown RR; cannot parse]");

Loading…
Cancel
Save