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