From 52e39abd9a28b34beb1210c5536f56ddfc51214f Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 25 May 2022 21:06:37 +0200 Subject: [PATCH 1/2] add AD flag --- dns/dnsmessage/message.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dns/dnsmessage/message.go b/dns/dnsmessage/message.go index 0cdf89f9f..51a08f055 100644 --- a/dns/dnsmessage/message.go +++ b/dns/dnsmessage/message.go @@ -317,6 +317,7 @@ type Header struct { Truncated bool RecursionDesired bool RecursionAvailable bool + AuthenticData bool RCode RCode } @@ -338,6 +339,9 @@ func (m *Header) pack() (id uint16, bits uint16) { if m.Response { bits |= headerBitQR } + if m.AuthenticData { + bits |= headerBitAD + } return } @@ -379,6 +383,7 @@ const ( headerBitTC = 1 << 9 // truncated headerBitRD = 1 << 8 // recursion desired headerBitRA = 1 << 7 // recursion available + headerBitAD = 1 << 5 // authentic data ) var sectionNames = map[section]string{ @@ -456,6 +461,7 @@ func (h *header) header() Header { Truncated: (h.bits & headerBitTC) != 0, RecursionDesired: (h.bits & headerBitRD) != 0, RecursionAvailable: (h.bits & headerBitRA) != 0, + AuthenticData: (h.bits & headerBitAD) != 0, RCode: RCode(h.bits & 0xF), } } From c5ef8a56ad1d85645c95f25e719a476595063471 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Wed, 25 May 2022 22:41:29 +0200 Subject: [PATCH 2/2] Add CD bit support --- dns/dnsmessage/message.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/dns/dnsmessage/message.go b/dns/dnsmessage/message.go index 51a08f055..093587829 100644 --- a/dns/dnsmessage/message.go +++ b/dns/dnsmessage/message.go @@ -318,6 +318,7 @@ type Header struct { RecursionDesired bool RecursionAvailable bool AuthenticData bool + CheckingDisabled bool RCode RCode } @@ -342,6 +343,9 @@ func (m *Header) pack() (id uint16, bits uint16) { if m.AuthenticData { bits |= headerBitAD } + if m.CheckingDisabled { + bits |= headerBitCD + } return } @@ -384,6 +388,7 @@ const ( headerBitRD = 1 << 8 // recursion desired headerBitRA = 1 << 7 // recursion available headerBitAD = 1 << 5 // authentic data + headerBitCD = 1 << 4 // checking disabled ) var sectionNames = map[section]string{ @@ -462,6 +467,7 @@ func (h *header) header() Header { RecursionDesired: (h.bits & headerBitRD) != 0, RecursionAvailable: (h.bits & headerBitRA) != 0, AuthenticData: (h.bits & headerBitAD) != 0, + CheckingDisabled: (h.bits & headerBitCD) != 0, RCode: RCode(h.bits & 0xF), } }