From fe2dfc8b4947451f87fcae56f839ca84dde26453 Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Thu, 10 Dec 2015 15:59:30 +0100 Subject: resolved: make sure the packet's transaction ID is always 0 for mDNS RFC6762, 18.1: In multicast query messages, the Query Identifier SHOULD be set to zero on transmission. --- src/resolve/resolved-dns-scope.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/resolve/resolved-dns-scope.c') diff --git a/src/resolve/resolved-dns-scope.c b/src/resolve/resolved-dns-scope.c index 4d83ac597c..bf49c51b5d 100644 --- a/src/resolve/resolved-dns-scope.c +++ b/src/resolve/resolved-dns-scope.c @@ -818,7 +818,11 @@ static int dns_scope_make_conflict_packet( 0 /* (ad) */, 0 /* (cd) */, 0)); - random_bytes(&DNS_PACKET_HEADER(p)->id, sizeof(uint16_t)); + + /* For mDNS, the transaction ID should always be 0 */ + if (s->protocol != DNS_PROTOCOL_MDNS) + random_bytes(&DNS_PACKET_HEADER(p)->id, sizeof(uint16_t)); + DNS_PACKET_HEADER(p)->qdcount = htobe16(1); DNS_PACKET_HEADER(p)->arcount = htobe16(1); -- cgit v1.2.3-54-g00ecf