0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-05-19 19:33:45 +02:00

ircd::net::dns::resolver: Add conf item to ease off ServFail retries.

This commit is contained in:
Jason Volk 2023-03-14 21:15:04 -07:00
parent 684dd18497
commit ac3b85114b
2 changed files with 16 additions and 1 deletions

View file

@ -37,6 +37,7 @@ ircd::net::dns::resolver
static conf::item<milliseconds> send_rate; static conf::item<milliseconds> send_rate;
static conf::item<size_t> send_burst; static conf::item<size_t> send_burst;
static conf::item<size_t> retry_max; static conf::item<size_t> retry_max;
static conf::item<bool> retry_serv_fail;
answers_callback callback; answers_callback callback;
std::vector<ip::udp::endpoint> server; // The list of active servers std::vector<ip::udp::endpoint> server; // The list of active servers

View file

@ -39,6 +39,13 @@ ircd::net::dns::resolver::retry_max
{ "default", 20L }, { "default", 20L },
}; };
decltype(ircd::net::dns::resolver::retry_serv_fail)
ircd::net::dns::resolver::retry_serv_fail
{
{ "name", "ircd.net.dns.resolver.retry_serv_fail" },
{ "default", true },
};
decltype(ircd::net::dns::resolver::servers) decltype(ircd::net::dns::resolver::servers)
ircd::net::dns::resolver::servers ircd::net::dns::resolver::servers
{ {
@ -726,7 +733,14 @@ ircd::net::dns::resolver::handle_reply(const ipport &from,
// Handle ServFail as a special case here. We can try again without // Handle ServFail as a special case here. We can try again without
// handling this tag or propagating this error any further yet. // handling this tag or propagating this error any further yet.
if(header.rcode == 2 && tag.tries < size_t(server.size())) const bool serv_fail_retry
{
retry_serv_fail
&& header.rcode == 2
&& tag.tries < size_t(server.size())
};
if(serv_fail_retry)
{ {
log::error log::error
{ {