resolved: if we can't append EDNS OPT RR, then indicate truncation to stub client

We do so for any other RR we can't add, do this here too.

Fixes: #11625
This commit is contained in:
Lennart Poettering 2019-03-13 19:30:55 +01:00
parent acd74d61d2
commit ff4caaaeba

View file

@ -91,7 +91,14 @@ static int dns_stub_finish_reply_packet(
assert(p);
if (!add_opt) {
if (add_opt) {
r = dns_packet_append_opt(p, ADVERTISE_DATAGRAM_SIZE_MAX, edns0_do, rcode, NULL);
if (r == -EMSGSIZE) /* Hit the size limit? then indicate truncation */
tc = true;
else if (r < 0)
return r;
} else {
/* If the client can't to EDNS0, don't do DO either */
edns0_do = false;
@ -117,12 +124,6 @@ static int dns_stub_finish_reply_packet(
0 /* cd */,
rcode));
if (add_opt) {
r = dns_packet_append_opt(p, ADVERTISE_DATAGRAM_SIZE_MAX, edns0_do, rcode, NULL);
if (r < 0)
return r;
}
return 0;
}