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:
parent
684dd18497
commit
ac3b85114b
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue