Add peer controls for grease extensions

This commit is contained in:
Mark Andrews
2025-03-06 14:16:23 +11:00
parent d8fbe873f7
commit dbe6a64971
2 changed files with 39 additions and 12 deletions
+18
View File
@@ -91,6 +91,24 @@ dns_peer_setbogus(dns_peer_t *peer, bool newval);
isc_result_t
dns_peer_getbogus(dns_peer_t *peer, bool *retval);
isc_result_t
dns_peer_setdnsflags(dns_peer_t *peer, bool newval);
isc_result_t
dns_peer_getdnsflags(dns_peer_t *peer, bool *retval);
isc_result_t
dns_peer_setednsflags(dns_peer_t *peer, bool newval);
isc_result_t
dns_peer_getednsflags(dns_peer_t *peer, bool *retval);
isc_result_t
dns_peer_setednsneg(dns_peer_t *peer, bool newval);
isc_result_t
dns_peer_getednsneg(dns_peer_t *peer, bool *retval);
isc_result_t
dns_peer_setrequestixfr(dns_peer_t *peer, bool newval);
+21 -12
View File
@@ -52,6 +52,9 @@ struct dns_peer {
dns_transfer_format_t transfer_format;
uint32_t transfers;
uint32_t request_ixfr_maxdiffs;
bool grease_dns_flags;
bool grease_edns_flags;
bool grease_edns_neg;
bool support_ixfr;
bool provide_ixfr;
bool request_ixfr;
@@ -82,22 +85,25 @@ struct dns_peer {
*/
enum {
BOGUS_BIT = 0,
SERVER_TRANSFER_FORMAT_BIT,
TRANSFERS_BIT,
PROVIDE_IXFR_BIT,
REQUEST_IXFR_BIT,
REQUEST_IXFRMAXDIFFS_BIT,
SUPPORT_EDNS_BIT,
SERVER_UDPSIZE_BIT,
SERVER_MAXUDP_BIT,
REQUEST_NSID_BIT,
SEND_COOKIE_BIT,
REQUEST_EXPIRE_BIT,
EDNS_VERSION_BIT,
GREASE_DNS_FLAGS_BIT,
GREASE_EDNS_FLAGS_BIT,
GREASE_EDNS_NEG_BIT,
FORCE_TCP_BIT,
SERVER_PADDING_BIT,
PROVIDE_IXFR_BIT,
REQUEST_EXPIRE_BIT,
REQUEST_IXFRMAXDIFFS_BIT,
REQUEST_IXFR_BIT,
REQUEST_NSID_BIT,
REQUEST_TCP_KEEPALIVE_BIT,
REQUIRE_COOKIE_BIT,
SEND_COOKIE_BIT,
SERVER_MAXUDP_BIT,
SERVER_PADDING_BIT,
SERVER_TRANSFER_FORMAT_BIT,
SERVER_UDPSIZE_BIT,
SUPPORT_EDNS_BIT,
TRANSFERS_BIT,
DNS_PEER_FLAGS_COUNT
};
@@ -374,6 +380,9 @@ peer_delete(dns_peer_t **peer) {
}
ACCESS_OPTION(bogus, BOGUS_BIT, bool, bogus)
ACCESS_OPTION(dnsflags, GREASE_DNS_FLAGS_BIT, bool, grease_dns_flags)
ACCESS_OPTION(ednsflags, GREASE_EDNS_FLAGS_BIT, bool, grease_edns_flags)
ACCESS_OPTION(ednsneg, GREASE_EDNS_NEG_BIT, bool, grease_edns_neg)
ACCESS_OPTION(forcetcp, FORCE_TCP_BIT, bool, force_tcp)
ACCESS_OPTION(maxudp, SERVER_MAXUDP_BIT, uint16_t, maxudp)
ACCESS_OPTION(provideixfr, PROVIDE_IXFR_BIT, bool, provide_ixfr)