зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1610836 - Don't fail TRR_FIRST requests if the TRR service is not ready r=mayhemer
When it's first starting up, when mConfirmationState != CONFIRM_OK the TRR service is not ready to use. For TRR_FIRST requests we need to fallback to DNS while the service starts up. Differential Revision: https://phabricator.services.mozilla.com/D61218 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
ab97c8e874
Коммит
773c572e19
|
@ -1453,9 +1453,12 @@ nsresult nsHostResolver::NameLookup(nsHostRecord* rec) {
|
|||
rv = TrrLookup(rec);
|
||||
}
|
||||
|
||||
bool serviceNotReady =
|
||||
!gTRRService || !gTRRService->Enabled(effectiveRequestMode);
|
||||
|
||||
if (effectiveRequestMode == nsIRequest::TRR_DISABLED_MODE ||
|
||||
(effectiveRequestMode == nsIRequest::TRR_FIRST_MODE &&
|
||||
(rec->flags & RES_DISABLE_TRR) && NS_FAILED(rv))) {
|
||||
(rec->flags & RES_DISABLE_TRR || serviceNotReady) && NS_FAILED(rv))) {
|
||||
if (!rec->IsAddrRecord()) {
|
||||
return rv;
|
||||
}
|
||||
|
|
|
@ -1377,3 +1377,26 @@ add_task(async function test_vpnDetection() {
|
|||
"changed"
|
||||
);
|
||||
});
|
||||
|
||||
// confirmationNS set without confirmed NS yet
|
||||
// checks that we properly fall back to DNS is confirmation is not ready yet
|
||||
add_task(async function test_resolve_not_confirmed() {
|
||||
dns.clearCache(true);
|
||||
Services.prefs.setIntPref("network.trr.mode", 2); // TRR-first
|
||||
Services.prefs.clearUserPref("network.trr.useGET");
|
||||
Services.prefs.clearUserPref("network.trr.disable-ECS");
|
||||
Services.prefs.setCharPref(
|
||||
"network.trr.uri",
|
||||
`https://foo.example.com:${h2Port}/doh?responseIP=1::ffff`
|
||||
);
|
||||
Services.prefs.setCharPref(
|
||||
"network.trr.confirmationNS",
|
||||
"confirm.example.com"
|
||||
);
|
||||
|
||||
let [, , inStatus] = await new DNSListener("example.org", undefined, false);
|
||||
Assert.ok(
|
||||
Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be a success code`
|
||||
);
|
||||
});
|
||||
|
|
Загрузка…
Ссылка в новой задаче