Bug 1772111 - Refine TRR skiped reasons for retry, r=necko-reviewers,dragana

Differential Revision: https://phabricator.services.mozilla.com/D148107
This commit is contained in:
Kershaw Chang 2022-06-16 09:56:06 +00:00
Родитель 19ef172933
Коммит b56229307b
2 изменённых файлов: 26 добавлений и 5 удалений

Просмотреть файл

@ -72,6 +72,29 @@ inline bool IsRelevantTRRSkipReason(TRRSkippedReason aReason) {
return true;
}
inline bool IsBlockedTRRRequest(TRRSkippedReason aReason) {
// See TRR::MaybeBlockRequest. These are the reasons that could block sending
// TRR requests.
return (aReason == TRRSkippedReason::TRR_EXCLUDED ||
aReason == TRRSkippedReason::TRR_MODE_NOT_ENABLED ||
aReason == TRRSkippedReason::TRR_HOST_BLOCKED_TEMPORARY);
}
inline bool IsNonRecoverableTRRSkipReason(TRRSkippedReason aReason) {
// These are non-recoverable reasons and we'll fallback to native without
// retrying.
return (aReason == TRRSkippedReason::TRR_NXDOMAIN ||
aReason == TRRSkippedReason::TRR_NO_ANSWERS ||
aReason == TRRSkippedReason::TRR_DISABLED_FLAG ||
aReason == TRRSkippedReason::TRR_RCODE_FAIL);
}
inline bool IsFailedConfirmationOrNoConnectivity(TRRSkippedReason aReason) {
// TRR is in non-confirmed state now, so we don't try to use TRR at all.
return (aReason == TRRSkippedReason::TRR_NOT_CONFIRMED ||
aReason == TRRSkippedReason::TRR_NO_CONNECTIVITY);
}
} // namespace net
} // namespace mozilla

Просмотреть файл

@ -1325,11 +1325,9 @@ bool nsHostResolver::MaybeRetryTRRLookup(
return NS_SUCCEEDED(NativeLookup(aAddrRec, aLock));
}
if (aFirstAttemptSkipReason == TRRSkippedReason::TRR_RCODE_FAIL ||
aFirstAttemptSkipReason == TRRSkippedReason::TRR_NO_ANSWERS ||
aFirstAttemptSkipReason == TRRSkippedReason::TRR_NXDOMAIN ||
aFirstAttemptSkipReason == TRRSkippedReason::TRR_DISABLED_FLAG ||
aFirstAttemptSkipReason == TRRSkippedReason::TRR_NOT_CONFIRMED) {
if (IsFailedConfirmationOrNoConnectivity(aFirstAttemptSkipReason) ||
IsNonRecoverableTRRSkipReason(aFirstAttemptSkipReason) ||
IsBlockedTRRRequest(aFirstAttemptSkipReason)) {
LOG(
("nsHostResolver::MaybeRetryTRRLookup retrying with native in strict "
"mode, skip reason was %d",