Skip to content

Commit

Permalink
Rework DNS type constants.
Browse files Browse the repository at this point in the history
  • Loading branch information
vstakhov committed Apr 7, 2014
1 parent cc5f39e commit 17d9ba3
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 50 deletions.
17 changes: 9 additions & 8 deletions include/rdns.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,14 +41,15 @@ struct rdns_io_channel;
typedef void (*dns_callback_type) (struct rdns_reply *reply, void *arg);

enum rdns_request_type {
RDNS_REQUEST_A = 0x1,
RDNS_REQUEST_PTR = 0x1 << 1,
RDNS_REQUEST_MX = 0x1 << 2,
RDNS_REQUEST_TXT = 0x1 << 3,
RDNS_REQUEST_SRV = 0x1 << 4,
RDNS_REQUEST_SPF = 0x1 << 5,
RDNS_REQUEST_AAAA = 0x1 << 6,
RDNS_REQUEST_TLSA = 0x1 << 7
RDNS_REQUEST_A = 1,
RDNS_REQUEST_PTR = 12,
RDNS_REQUEST_MX = 15,
RDNS_REQUEST_TXT = 16,
RDNS_REQUEST_SRV = 33,
RDNS_REQUEST_SPF = 99,
RDNS_REQUEST_AAAA = 28,
RDNS_REQUEST_TLSA = 52,
RDNS_REQUEST_ANY = 255
};

union rdns_reply_element_un {
Expand Down
22 changes: 12 additions & 10 deletions src/dns_private.h
Original file line number Diff line number Diff line change
Expand Up @@ -215,20 +215,20 @@ struct dns_query {
};

enum dns_type {
DNS_T_A = 1,
DNS_T_A = RDNS_REQUEST_A,
DNS_T_NS = 2,
DNS_T_CNAME = 5,
DNS_T_SOA = 6,
DNS_T_PTR = 12,
DNS_T_MX = 15,
DNS_T_TXT = 16,
DNS_T_AAAA = 28,
DNS_T_SRV = 33,
DNS_T_PTR = RDNS_REQUEST_PTR,
DNS_T_MX = RDNS_REQUEST_MX,
DNS_T_TXT = RDNS_REQUEST_TXT,
DNS_T_AAAA = RDNS_REQUEST_AAAA,
DNS_T_SRV = RDNS_REQUEST_SRV,
DNS_T_OPT = 41,
DNS_T_SSHFP = 44,
DNS_T_TLSA = 52,
DNS_T_SPF = 99,
DNS_T_ALL = 255
DNS_T_TLSA = RDNS_REQUEST_TLSA,
DNS_T_SPF = RDNS_REQUEST_SPF,
DNS_T_ALL = RDNS_REQUEST_ANY
};
/* enum dns_type */

Expand All @@ -255,7 +255,9 @@ static const char dns_types[][16] = {
[RDNS_REQUEST_TXT] = "TXT request",
[RDNS_REQUEST_SRV] = "SRV request",
[RDNS_REQUEST_SPF] = "SPF request",
[RDNS_REQUEST_AAAA] = "AAAA request"
[RDNS_REQUEST_AAAA] = "AAAA request",
[RDNS_REQUEST_TLSA] = "TLSA request",
[RDNS_REQUEST_ANY] = "ANY request"
};


Expand Down
7 changes: 1 addition & 6 deletions src/parse.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,6 +259,7 @@ rdns_parse_rr (struct rdns_resolver *resolver,
/* Skip class */
SKIP (uint32_t);
GET16 (datalen);
elt->type = type;
/* Now p points to RR data */
switch (type) {
case DNS_T_A:
Expand All @@ -267,7 +268,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
p += datalen;
*remain -= datalen;
parsed = true;
elt->type = RDNS_REQUEST_A;
}
else {
rdns_info ("corrupted A record");
Expand All @@ -280,7 +280,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
p += datalen;
*remain -= datalen;
parsed = true;
elt->type = RDNS_REQUEST_AAAA;
}
else {
rdns_info ("corrupted AAAA record");
Expand All @@ -294,7 +293,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
return -1;
}
parsed = true;
elt->type = RDNS_REQUEST_PTR;
break;
case DNS_T_MX:
GET16 (elt->content.mx.priority);
Expand All @@ -304,7 +302,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
return -1;
}
parsed = true;
elt->type = RDNS_REQUEST_MX;
break;
case DNS_T_TXT:
case DNS_T_SPF:
Expand Down Expand Up @@ -343,7 +340,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
return -1;
}
parsed = true;
elt->type = RDNS_REQUEST_SRV;
break;
case DNS_T_TLSA:
if (p - *pos > (int)(*remain - sizeof (uint8_t) * 3)) {
Expand All @@ -358,7 +354,6 @@ rdns_parse_rr (struct rdns_resolver *resolver,
elt->content.tlsa.datalen = datalen;
memcpy (elt->content.tlsa.data, p, datalen);
parsed = true;
elt->type = RDNS_REQUEST_TLSA;
break;
case DNS_T_CNAME:
/* Skip cname records */
Expand Down
27 changes: 1 addition & 26 deletions src/resolver.c
Original file line number Diff line number Diff line change
Expand Up @@ -510,32 +510,7 @@ rdns_make_request_full (
for (i = 0; i < queries; i ++) {
cur_name = req->requested_names[i].name;
clen = req->requested_names[i].len;
switch (req->requested_names[i].type) {
case RDNS_REQUEST_PTR:
type = DNS_T_PTR;
break;
case RDNS_REQUEST_MX:
type = DNS_T_MX;
break;
case RDNS_REQUEST_A:
type = DNS_T_A;
break;
case RDNS_REQUEST_AAAA:
type = DNS_T_AAAA;
break;
case RDNS_REQUEST_TXT:
type = DNS_T_TXT;
break;
case RDNS_REQUEST_SPF:
type = DNS_T_SPF;
break;
case RDNS_REQUEST_SRV:
type = DNS_T_SRV;
break;
case RDNS_REQUEST_TLSA:
type = DNS_T_TLSA;
break;
}
type = req->requested_names[i].type;
if (queries > 1) {
if (!rdns_add_rr (req, cur_name, clen, type, &comp)) {
REF_RELEASE (req);
Expand Down

0 comments on commit 17d9ba3

Please sign in to comment.