Split EDNS UL LEASE and KEY-LEASE into seperate YAML values
Update leases consist of 1 or 2 values. Give each component its own name so they can be easily extracted.
This commit is contained in:
@@ -610,7 +610,7 @@ if [ -x "$DIG" ]; then
|
||||
echo_i "checking ednsopt UL prints as expected (single lease) +yaml ($n)"
|
||||
ret=0
|
||||
dig_with_opts @10.53.0.3 +yaml +ednsopt=UL:00000e10 +qr a.example >dig.out.test$n 2>&1 || ret=1
|
||||
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS UL >yamlget.out.test$n 2>&1 || ret=1
|
||||
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS UL LEASE >yamlget.out.test$n 2>&1 || ret=1
|
||||
read -r value <yamlget.out.test$n
|
||||
[ "$value" = "3600 (1 hour)" ] || ret=1
|
||||
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||||
@@ -631,9 +631,12 @@ if [ -x "$DIG" ]; then
|
||||
echo_i "checking ednsopt UL prints as expected (split lease) +yaml ($n)"
|
||||
ret=0
|
||||
dig_with_opts @10.53.0.3 +yaml +ednsopt=UL:00000e1000127500 +qr a.example >dig.out.test$n 2>&1 || ret=1
|
||||
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS UL >yamlget.out.test$n 2>&1 || ret=1
|
||||
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS UL LEASE >yamlget.out.test$n 2>&1 || ret=1
|
||||
read -r value <yamlget.out.test$n
|
||||
[ "$value" = "3600/1209600 (1 hour/2 weeks)" ] || ret=1
|
||||
[ "$value" = "3600 (1 hour)" ] || ret=1
|
||||
$PYTHON yamlget.py dig.out.test$n 0 message query_message_data OPT_PSEUDOSECTION EDNS UL KEY-LEASE >yamlget.out.test$n 2>&1 || ret=1
|
||||
read -r value <yamlget.out.test$n
|
||||
[ "$value" = "1209600 (2 weeks)" ] || ret=1
|
||||
if [ $ret -ne 0 ]; then echo_i "failed"; fi
|
||||
status=$((status + ret))
|
||||
fi
|
||||
|
||||
+21
-9
@@ -3683,32 +3683,44 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
|
||||
case DNS_OPT_UL:
|
||||
if (optlen == 4U || optlen == 8U) {
|
||||
uint32_t secs, key = 0;
|
||||
msg->indent.count++;
|
||||
|
||||
secs = isc_buffer_getuint32(&optbuf);
|
||||
ADD_STRING(target, "\n");
|
||||
INDENT(style);
|
||||
ADD_STRING(target, "LEASE:");
|
||||
snprintf(buf, sizeof(buf), " %u", secs);
|
||||
ADD_STRING(target, buf);
|
||||
if (optlen == 8U) {
|
||||
key = isc_buffer_getuint32(
|
||||
&optbuf);
|
||||
snprintf(buf, sizeof(buf),
|
||||
"/%u", key);
|
||||
ADD_STRING(target, buf);
|
||||
}
|
||||
|
||||
ADD_STRING(target, " (");
|
||||
result = dns_ttl_totext(secs, true,
|
||||
true, target);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
ADD_STRING(target, ")");
|
||||
|
||||
if (optlen == 8U) {
|
||||
ADD_STRING(target, "/");
|
||||
key = isc_buffer_getuint32(
|
||||
&optbuf);
|
||||
ADD_STRING(target, "\n");
|
||||
INDENT(style);
|
||||
ADD_STRING(target,
|
||||
"KEY-LEASE:");
|
||||
snprintf(buf, sizeof(buf),
|
||||
" %u", key);
|
||||
ADD_STRING(target, buf);
|
||||
|
||||
ADD_STRING(target, " (");
|
||||
result = dns_ttl_totext(
|
||||
key, true, true,
|
||||
target);
|
||||
if (result != ISC_R_SUCCESS) {
|
||||
goto cleanup;
|
||||
}
|
||||
ADD_STRING(target, ")");
|
||||
}
|
||||
ADD_STRING(target, ")\n");
|
||||
ADD_STRING(target, "\n");
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user