2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

Change the EDNS KEY-TAG YAML output format

When using YAML, print the EDNS KEY-TAG as an array of integers
for easier machine parsing. Check the validity of the YAML output.
This commit is contained in:
Mark Andrews 2024-10-29 16:01:58 +11:00
parent 378bc7cfa6
commit 27e8732c17
2 changed files with 14 additions and 2 deletions

View File

@ -645,6 +645,18 @@ if [ -x "$DIG" ]; then
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status + ret))
if [ $HAS_PYYAML -ne 0 ]; then
n=$((n + 1))
ret=0
echo_i "check that dig processes +ednsopt=key-tag:<value-list> +yaml ($n)"
dig_with_opts @10.53.0.3 +yaml +ednsopt=key-tag:00010002 a.example +qr >dig.out.test$n 2>&1 || ret=1
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS KEY-TAG >yamlget.out.test$n 2>&1 || ret=1
read -r value <yamlget.out.test$n
[ "$value" = "[1, 2]" ] || ret=1
if [ $ret -ne 0 ]; then echo_i "failed"; fi
status=$((status + ret))
fi
n=$((n + 1))
echo_i "check that dig processes +ednsopt=key-tag:<malformed-value-list> and FORMERR is returned ($n)"
ret=0

View File

@ -3809,7 +3809,7 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
break;
case DNS_OPT_KEY_TAG:
if (optlen > 0U && (optlen % 2U) == 0U) {
const char *sep = "";
const char *sep = " [";
while (optlen > 0U) {
uint16_t id =
isc_buffer_getuint16(
@ -3820,7 +3820,7 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
sep = ",";
optlen -= 2;
}
ADD_STRING(target, "\n");
ADD_STRING(target, " ]\n");
continue;
}
break;