1 void
_wdns_rr_to_ubuf(ubuf * u,wdns_rr_t * rr,unsigned sec)2 _wdns_rr_to_ubuf(ubuf *u, wdns_rr_t *rr, unsigned sec)
3 {
4 const char *dns_class, *dns_type;
5 char name[WDNS_PRESLEN_NAME];
6
7 wdns_domain_to_str(rr->name.data, rr->name.len, name);
8 dns_class = wdns_rrclass_to_str(rr->rrclass);
9 dns_type = wdns_rrtype_to_str(rr->rrtype);
10
11 if (sec == WDNS_MSG_SEC_QUESTION)
12 ubuf_add_cstr(u, ";");
13
14 ubuf_add_cstr(u, name);
15
16 if (sec != WDNS_MSG_SEC_QUESTION)
17 ubuf_add_fmt(u, " %u", rr->rrttl);
18
19 if (dns_class)
20 ubuf_add_fmt(u, " %s", dns_class);
21 else
22 ubuf_add_fmt(u, " CLASS%u", rr->rrclass);
23
24 if (dns_type)
25 ubuf_add_fmt(u, " %s", dns_type);
26 else
27 ubuf_add_fmt(u, " TYPE%u", rr->rrtype);
28
29 if (sec != WDNS_MSG_SEC_QUESTION) {
30 ubuf_add_cstr(u, " ");
31 _wdns_rdata_to_ubuf(u, rr->rdata->data, rr->rdata->len, rr->rrtype, rr->rrclass);
32 }
33 ubuf_add_cstr(u, "\n");
34 }
35