summaryrefslogtreecommitdiff
path: root/src/resolve/resolved-dns-packet.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2020-11-05 09:53:02 +0100
committerLennart Poettering <lennart@poettering.net>2021-02-09 17:53:04 +0100
commit6f76e68a3c2a986600bc1bbdce957b9415b06db7 (patch)
tree611789e9336cd3eba781e0e147cb7b85cd1349f3 /src/resolve/resolved-dns-packet.c
parent04617bf83f12c9dd0b6b454455d3576f2ce293a2 (diff)
downloadsystemd-6f76e68a3c2a986600bc1bbdce957b9415b06db7.tar.gz
resolved: if dns_packet_append_answer() fails count how many RRs were successfully added
This is useful later when handling the truncation case: if we can't add all RRs we'd like to add we need to set the TC bit, but still report the number of RRs we added (and not the number of RRs we would have liked to add) to the packet.
Diffstat (limited to 'src/resolve/resolved-dns-packet.c')
-rw-r--r--src/resolve/resolved-dns-packet.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/resolve/resolved-dns-packet.c b/src/resolve/resolved-dns-packet.c
index b75b77760a..59be55a0eb 100644
--- a/src/resolve/resolved-dns-packet.c
+++ b/src/resolve/resolved-dns-packet.c
@@ -1215,7 +1215,7 @@ int dns_packet_append_question(DnsPacket *p, DnsQuestion *q) {
return 0;
}
-int dns_packet_append_answer(DnsPacket *p, DnsAnswer *a) {
+int dns_packet_append_answer(DnsPacket *p, DnsAnswer *a, unsigned *completed) {
DnsResourceRecord *rr;
DnsAnswerFlags flags;
int r;
@@ -1226,6 +1226,9 @@ int dns_packet_append_answer(DnsPacket *p, DnsAnswer *a) {
r = dns_packet_append_rr(p, rr, flags, NULL, NULL);
if (r < 0)
return r;
+
+ if (completed)
+ (*completed)++;
}
return 0;