mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
resolved: inroduce dns_txt_item_new_empty() function
This commit is contained in:
parent
154ae08781
commit
ebb779dc23
@ -1698,16 +1698,9 @@ int dns_packet_read_rr(DnsPacket *p, DnsResourceRecord **ret, bool *ret_cache_fl
|
||||
case DNS_TYPE_SPF: /* exactly the same as TXT */
|
||||
case DNS_TYPE_TXT:
|
||||
if (rdlength <= 0) {
|
||||
DnsTxtItem *i;
|
||||
/* RFC 6763, section 6.1 suggests to treat
|
||||
* empty TXT RRs as equivalent to a TXT record
|
||||
* with a single empty string. */
|
||||
|
||||
i = malloc0(offsetof(DnsTxtItem, data) + 1); /* for safety reasons we add an extra NUL byte */
|
||||
if (!i)
|
||||
return -ENOMEM;
|
||||
|
||||
rr->txt.items = i;
|
||||
r = dns_txt_item_new_empty(&rr->txt.items);
|
||||
if (r < 0)
|
||||
return r;
|
||||
} else {
|
||||
DnsTxtItem *last = NULL;
|
||||
|
||||
|
@ -1806,6 +1806,22 @@ DnsTxtItem *dns_txt_item_copy(DnsTxtItem *first) {
|
||||
return copy;
|
||||
}
|
||||
|
||||
int dns_txt_item_new_empty(DnsTxtItem **ret) {
|
||||
DnsTxtItem *i;
|
||||
|
||||
/* RFC 6763, section 6.1 suggests to treat
|
||||
* empty TXT RRs as equivalent to a TXT record
|
||||
* with a single empty string. */
|
||||
|
||||
i = malloc0(offsetof(DnsTxtItem, data) + 1); /* for safety reasons we add an extra NUL byte */
|
||||
if (!i)
|
||||
return -ENOMEM;
|
||||
|
||||
*ret = i;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char* const dnssec_algorithm_table[_DNSSEC_ALGORITHM_MAX_DEFINED] = {
|
||||
/* Mnemonics as listed on https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml */
|
||||
[DNSSEC_ALGORITHM_RSAMD5] = "RSAMD5",
|
||||
|
@ -341,6 +341,7 @@ int dns_resource_record_clamp_ttl(DnsResourceRecord **rr, uint32_t max_ttl);
|
||||
DnsTxtItem *dns_txt_item_free_all(DnsTxtItem *i);
|
||||
bool dns_txt_item_equal(DnsTxtItem *a, DnsTxtItem *b);
|
||||
DnsTxtItem *dns_txt_item_copy(DnsTxtItem *i);
|
||||
int dns_txt_item_new_empty(DnsTxtItem **ret);
|
||||
|
||||
void dns_resource_record_hash_func(const void *i, struct siphash *state);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user