LookupServer: Try other available DNS nameservers on network errors

We were accidentally short-circuting DNS lookup on network errors when
contacting the first DNS server, instead of trying the other available
options.
This commit is contained in:
Idan Horowitz 2022-07-02 21:36:41 +03:00
parent c8d1c263d6
commit 888d8e53a3
Notes: sideshowbarker 2024-07-17 09:46:45 +09:00

View File

@ -196,7 +196,10 @@ ErrorOr<Vector<Answer>> LookupServer::lookup(Name const& name, RecordType record
int retries = 3;
Vector<Answer> upstream_answers;
do {
upstream_answers = TRY(lookup(name, nameserver, did_get_response, record_type));
auto upstream_answers_or_error = lookup(name, nameserver, did_get_response, record_type);
if (upstream_answers_or_error.is_error())
continue;
upstream_answers = upstream_answers_or_error.release_value();
if (did_get_response)
break;
} while (--retries);