Collapse common switch cases when emitting EDNS options

The CHAIN and REPORT-CHANNEL EDNS options are both domain names so they
can be combined.  THE CLIENT-TAG and SERVER-TAG EDNS options are both 16
bit integers so they can be combined.
This commit is contained in:
Mark Andrews
2025-02-26 15:22:58 +11:00
parent 6cb12e85da
commit ebc2345cb3
+2 -42
View File
@@ -3740,6 +3740,7 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
}
break;
case DNS_OPT_CHAIN:
case DNS_OPT_REPORT_CHANNEL:
if (optlen > 0U) {
isc_buffer_t sb = optbuf;
isc_buffer_setactive(&optbuf, optlen);
@@ -3796,14 +3797,6 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
}
break;
case DNS_OPT_CLIENT_TAG:
if (optlen == 2U) {
uint16_t id =
isc_buffer_getuint16(&optbuf);
snprintf(buf, sizeof(buf), " %u\n", id);
ADD_STRING(target, buf);
continue;
}
break;
case DNS_OPT_SERVER_TAG:
if (optlen == 2U) {
uint16_t id =
@@ -3813,19 +3806,6 @@ dns_message_pseudosectiontoyaml(dns_message_t *msg, dns_pseudosection_t section,
continue;
}
break;
case DNS_OPT_REPORT_CHANNEL:
if (optlen > 0U) {
isc_buffer_t sb = optbuf;
isc_buffer_setactive(&optbuf, optlen);
result = render_nameopt(&optbuf,
target);
if (result == ISC_R_SUCCESS) {
ADD_STRING(target, "\n");
continue;
}
optbuf = sb;
}
break;
default:
break;
}
@@ -4169,6 +4149,7 @@ dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
ADD_STRING(target, "\n");
continue;
case DNS_OPT_CHAIN:
case DNS_OPT_REPORT_CHANNEL:
if (optlen > 0U) {
isc_buffer_t sb = optbuf;
isc_buffer_setactive(&optbuf, optlen);
@@ -4229,14 +4210,6 @@ dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
}
break;
case DNS_OPT_CLIENT_TAG:
if (optlen == 2U) {
uint16_t id =
isc_buffer_getuint16(&optbuf);
snprintf(buf, sizeof(buf), " %u\n", id);
ADD_STRING(target, buf);
continue;
}
break;
case DNS_OPT_SERVER_TAG:
if (optlen == 2U) {
uint16_t id =
@@ -4246,19 +4219,6 @@ dns_message_pseudosectiontotext(dns_message_t *msg, dns_pseudosection_t section,
continue;
}
break;
case DNS_OPT_REPORT_CHANNEL:
if (optlen > 0U) {
isc_buffer_t sb = optbuf;
isc_buffer_setactive(&optbuf, optlen);
result = render_nameopt(&optbuf,
target);
if (result == ISC_R_SUCCESS) {
ADD_STRING(target, "\n");
continue;
}
optbuf = sb;
}
break;
default:
break;
}