mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-22 10:10:06 +00:00
This commit adds support for the EDNS Report-Channel option, which is returned in authoritative responses when EDNS is in use. "send-report-channel" sets the Agent-Domain value that will be included in EDNS Report-Channel options. This is configurable at the options/view level; the value is a DNS name. Setting the Agent-Domain to the root zone (".") disables the option. When this value has been set, incoming queries matchng the form _er.<qtype>.<qname>.<extended-error-code>._er.<agent-domain>/TXT will be logged to the dns-reporting-agent channel at INFO level. (Note: error reporting queries will only be accepted if sent via TCP or with a good server cookie. If neither is present, named returns BADCOOKIE to complete the DNS COOKIE handshake, or TC=1 to switch the client to TCP.)
55 lines
1.4 KiB
Bash
55 lines
1.4 KiB
Bash
#!/bin/sh
|
|
|
|
# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
|
|
#
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
#
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
# file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
#
|
|
# See the COPYRIGHT file distributed with this work for additional
|
|
# information regarding copyright ownership.
|
|
|
|
list1=$(
|
|
grep -h LOGCATEGORY lib/*/include/*/*.h bin/named/include/named/*.h \
|
|
| grep -E "^[[:space:]]+[^[:space:]]+_LOGCATEGORY_[^[:space:]]+([[:space:]]+=[[:space:]]+[-0-9]+)?," \
|
|
| grep -Ev "ISC_LOGCATEGORY_(MAX|INVALID)" \
|
|
| sed -e 's/.*LOGCATEGORY_\([A-Z_]*\).*/\1/' -e 's/^RRL$/rate-limit/' \
|
|
-e 's/DRA/dns-reporting-agent/' \
|
|
| tr 'A-Z' 'a-z' \
|
|
| tr _ - \
|
|
| sed 's/^tat$/trust-anchor-telemetry/' \
|
|
| sort -u
|
|
)
|
|
list2=$(
|
|
sed -ne 's/^``\(.*\)``/\1/p' doc/arm/logging-categories.inc.rst \
|
|
| sort -u
|
|
)
|
|
status=0
|
|
for i in $list1; do
|
|
ok=no
|
|
for j in $list2; do
|
|
if test $i = $j; then
|
|
ok=yes
|
|
fi
|
|
done
|
|
if test $ok = no; then
|
|
echo "$i missing from doc/arm/logging-categories.rst."
|
|
status=1
|
|
fi
|
|
done
|
|
for i in $list2; do
|
|
ok=no
|
|
for j in $list1; do
|
|
if test $i = $j; then
|
|
ok=yes
|
|
fi
|
|
done
|
|
if test $ok = no; then
|
|
echo "documented logging category '$i' not in code."
|
|
status=1
|
|
fi
|
|
done
|
|
exit $status
|