From: Mark Andrews Date: Tue, 29 Oct 2024 23:41:21 +0000 (+1100) Subject: Collapse common switch cases when emitting EDNS options X-Git-Tag: v9.21.8~16^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e7ef4e41ebd55ed1cfb2b2652b66a0f026aea1c7;p=thirdparty%2Fbind9.git 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. --- diff --git a/lib/dns/message.c b/lib/dns/message.c index dd9921eb95c..3c80e45c551 100644 --- a/lib/dns/message.c +++ b/lib/dns/message.c @@ -3766,6 +3766,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); @@ -3822,14 +3823,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 = @@ -3839,19 +3832,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; case DNS_OPT_ZONEVERSION: if (optlen >= 2U) { isc_buffer_t zonebuf = optbuf; @@ -4195,6 +4175,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); @@ -4255,14 +4236,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 = @@ -4272,19 +4245,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; case DNS_OPT_ZONEVERSION: if (optlen >= 2U) { isc_buffer_t zonebuf = optbuf;