зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
19ef172933
Коммит
b56229307b
|
@ -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",
|
||||
|
|
Загрузка…
Ссылка в новой задаче