Browse Source

[Minor] Add experimental support of CNAME RR type

tags/3.3
Vsevolod Stakhov 1 year ago
parent
commit
3d63887916
No account linked to committer's email address
3 changed files with 13 additions and 3 deletions
  1. 6
    3
      contrib/librdns/parse.c
  2. 4
    0
      contrib/librdns/rdns.h
  3. 3
    0
      contrib/librdns/util.c

+ 6
- 3
contrib/librdns/parse.c View File

@@ -438,9 +438,12 @@ rdns_parse_rr (struct rdns_resolver *resolver,
parsed = true;
break;
case DNS_T_CNAME:
/* Skip cname records */
p += datalen;
*remain -= datalen;
if (! rdns_parse_labels (resolver, in, &elt->content.cname.name, &p,
rep, remain, true)) {
rdns_info ("invalid labels in CNAME record; domain %s", rep->requested_name);
return -1;
}
parsed = true;
break;
default:
rdns_info ("unexpected RR type: %d; domain %s", type, rep->requested_name);

+ 4
- 0
contrib/librdns/rdns.h View File

@@ -48,6 +48,7 @@ enum rdns_request_type {
RDNS_REQUEST_INVALID = -1,
RDNS_REQUEST_A = 1,
RDNS_REQUEST_NS = 2,
RDNS_REQUEST_CNAME = 5,
RDNS_REQUEST_SOA = 6,
RDNS_REQUEST_PTR = 12,
RDNS_REQUEST_MX = 15,
@@ -101,6 +102,9 @@ union rdns_reply_element_un {
uint16_t datalen;
uint8_t *data;
} tlsa;
struct {
char *name;
} cname;
};

struct rdns_reply_entry {

+ 3
- 0
contrib/librdns/util.c View File

@@ -457,6 +457,9 @@ rdns_reply_free (struct rdns_reply *rep)
free (entry->content.soa.mname);
free (entry->content.soa.admin);
break;
case RDNS_REQUEST_CNAME:
free(entry->content.cname.name);
break;
default:
break;
}

Loading…
Cancel
Save