summaryrefslogtreecommitdiff
path: root/src/resolve/test-dns-packet.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2017-10-04 12:35:48 +0200
committerLennart Poettering <lennart@poettering.net>2017-10-05 12:22:43 +0200
commit51027656951988babd4724def5d934e4817fdd1f (patch)
tree7fd87c0a020f1359124f1d54e0c73efc268cedec /src/resolve/test-dns-packet.c
parent9886b6b13cfe4348f9bd2ab62bb1d821fdac7ab7 (diff)
downloadsystemd-51027656951988babd4724def5d934e4817fdd1f.tar.gz
resolved: rework how we handle truncation in the stub resolver
When we a reply message gets longer than the client supports we need to truncate the response and set the TC bit, and we already do that. However, we are not supposed to send incomplete RRs in that case, but instead truncate right at a record boundary. Do that. This fixes the "Message parser reports malformed message packet." warning the venerable "host" tool outputs when a very large response is requested. See: #6520
Diffstat (limited to 'src/resolve/test-dns-packet.c')
-rw-r--r--src/resolve/test-dns-packet.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/resolve/test-dns-packet.c b/src/resolve/test-dns-packet.c
index 8cbe492526..00dde9b6bd 100644
--- a/src/resolve/test-dns-packet.c
+++ b/src/resolve/test-dns-packet.c
@@ -75,7 +75,7 @@ static void test_packet_from_file(const char* filename, bool canonical) {
assert_se(packet_size > 0);
assert_se(offset + 8 + packet_size <= data_size);
- assert_se(dns_packet_new(&p, DNS_PROTOCOL_DNS, 0) >= 0);
+ assert_se(dns_packet_new(&p, DNS_PROTOCOL_DNS, 0, DNS_PACKET_SIZE_MAX) >= 0);
assert_se(dns_packet_append_blob(p, data + offset + 8, packet_size, NULL) >= 0);
assert_se(dns_packet_read_rr(p, &rr, NULL, NULL) >= 0);
@@ -90,7 +90,7 @@ static void test_packet_from_file(const char* filename, bool canonical) {
assert_se(dns_resource_record_to_wire_format(rr, canonical) >= 0);
- assert_se(dns_packet_new(&p2, DNS_PROTOCOL_DNS, 0) >= 0);
+ assert_se(dns_packet_new(&p2, DNS_PROTOCOL_DNS, 0, DNS_PACKET_SIZE_MAX) >= 0);
assert_se(dns_packet_append_blob(p2, rr->wire_format, rr->wire_format_size, NULL) >= 0);
assert_se(dns_packet_read_rr(p2, &rr2, NULL, NULL) >= 0);