зеркало из https://github.com/mozilla/gecko-dev.git
Backed out 2 changesets (bug 1666711, bug 1666249) for causing failures at test_trr_additional_section.js. CLOSED TREE
Backed out changeset a802f1c429bc (bug 1666711) Backed out changeset da73031913b7 (bug 1666249)
This commit is contained in:
Родитель
227392af30
Коммит
499dcd036b
|
@ -199,10 +199,6 @@ class AddrInfo {
|
|||
mInfo->mAddresses = std::move(addresses);
|
||||
}
|
||||
|
||||
void SetCanonicalHostname(const nsACString& aCname) {
|
||||
mInfo->mCanonicalName = aCname;
|
||||
}
|
||||
|
||||
already_AddRefed<AddrInfo> Finish() { return mInfo.forget(); }
|
||||
|
||||
private:
|
||||
|
|
|
@ -1520,7 +1520,6 @@ nsresult TRR::ReturnData(nsIChannel* aChannel) {
|
|||
new AddrInfo(mHost, mType, nsTArray<NetAddr>(), mDNS.mTtl));
|
||||
auto builder = ai->Build();
|
||||
builder.SetAddresses(std::move(mDNS.mAddresses));
|
||||
builder.SetCanonicalHostname(mCname);
|
||||
|
||||
// Set timings.
|
||||
nsCOMPtr<nsITimedChannel> timedChan = do_QueryInterface(aChannel);
|
||||
|
|
|
@ -83,16 +83,21 @@ function trr_clear_prefs() {
|
|||
/// This class sends a DNS query and can be awaited as a promise to get the
|
||||
/// response.
|
||||
class TRRDNSListener {
|
||||
constructor(name, options = {}) {
|
||||
constructor(
|
||||
name,
|
||||
expectedAnswer,
|
||||
expectedSuccess = true,
|
||||
delay,
|
||||
trrServer = "",
|
||||
expectEarlyFail = false
|
||||
) {
|
||||
this.name = name;
|
||||
this.options = options;
|
||||
this.expectedAnswer = options.expectedAnswer ?? undefined;
|
||||
this.expectedSuccess = options.expectedSuccess ?? true;
|
||||
this.delay = options.delay;
|
||||
this.expectedAnswer = expectedAnswer;
|
||||
this.expectedSuccess = expectedSuccess;
|
||||
this.delay = delay;
|
||||
this.promise = new Promise(resolve => {
|
||||
this.resolve = resolve;
|
||||
});
|
||||
let trrServer = options.trrServer || "";
|
||||
|
||||
const dns = Cc["@mozilla.org/network/dns-service;1"].getService(
|
||||
Ci.nsIDNSService
|
||||
|
@ -108,15 +113,15 @@ class TRRDNSListener {
|
|||
this.request = dns.asyncResolve(
|
||||
name,
|
||||
Ci.nsIDNSService.RESOLVE_TYPE_DEFAULT,
|
||||
this.options.flags || 0,
|
||||
0,
|
||||
resolverInfo,
|
||||
this,
|
||||
currentThread,
|
||||
{} // defaultOriginAttributes
|
||||
);
|
||||
Assert.ok(!options.expectEarlyFail);
|
||||
Assert.ok(!expectEarlyFail);
|
||||
} catch (e) {
|
||||
Assert.ok(options.expectEarlyFail);
|
||||
Assert.ok(expectEarlyFail);
|
||||
this.resolve([e]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -73,8 +73,8 @@ add_task(async function test_parse_additional_section() {
|
|||
]
|
||||
);
|
||||
|
||||
await new TRRDNSListener("something.foo", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("else.foo", { expectedAnswer: "2.3.4.5" });
|
||||
await new TRRDNSListener("something.foo", "1.2.3.4");
|
||||
await new TRRDNSListener("else.foo", "2.3.4.5");
|
||||
|
||||
await trrServer.registerDoHAnswers(
|
||||
"a.foo",
|
||||
|
@ -108,14 +108,14 @@ add_task(async function test_parse_additional_section() {
|
|||
},
|
||||
]);
|
||||
|
||||
let req1 = new TRRDNSListener("a.foo", { expectedAnswer: "1.2.3.4" });
|
||||
let req1 = new TRRDNSListener("a.foo", "1.2.3.4");
|
||||
|
||||
// A request for b.foo will be in progress by the time we parse the additional
|
||||
// record. To keep things simple we don't end up saving the record, instead
|
||||
// we wait for the in-progress request to complete.
|
||||
// This check is also racy - if the response for a.foo completes before we make
|
||||
// this request, we'll put the other IP in the cache. But that is very unlikely.
|
||||
let req2 = new TRRDNSListener("b.foo", { expectedAnswer: "3.4.5.6" });
|
||||
let req2 = new TRRDNSListener("b.foo", "3.4.5.6");
|
||||
|
||||
await Promise.all([req1, req2]);
|
||||
|
||||
|
@ -143,8 +143,8 @@ add_task(async function test_parse_additional_section() {
|
|||
]
|
||||
);
|
||||
|
||||
await new TRRDNSListener("xyz.foo", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("abc.foo", { expectedAnswer: "::1:2:3:4" });
|
||||
await new TRRDNSListener("xyz.foo", "1.2.3.4");
|
||||
await new TRRDNSListener("abc.foo", "::1:2:3:4");
|
||||
|
||||
// IPv6 additional
|
||||
await trrServer.registerDoHAnswers(
|
||||
|
@ -170,8 +170,8 @@ add_task(async function test_parse_additional_section() {
|
|||
]
|
||||
);
|
||||
|
||||
await new TRRDNSListener("ipv6.foo", { expectedAnswer: "2001::a:b:c:d" });
|
||||
await new TRRDNSListener("def.foo", { expectedAnswer: "::a:b:c:d" });
|
||||
await new TRRDNSListener("ipv6.foo", "2001::a:b:c:d");
|
||||
await new TRRDNSListener("def.foo", "::a:b:c:d");
|
||||
|
||||
// IPv6 additional
|
||||
await trrServer.registerDoHAnswers(
|
||||
|
@ -197,8 +197,8 @@ add_task(async function test_parse_additional_section() {
|
|||
]
|
||||
);
|
||||
|
||||
await new TRRDNSListener("ipv6b.foo", { expectedAnswer: "2001::a:b:c:d" });
|
||||
await new TRRDNSListener("qqqq.foo", { expectedAnswer: "9.8.7.6" });
|
||||
await new TRRDNSListener("ipv6b.foo", "2001::a:b:c:d");
|
||||
await new TRRDNSListener("qqqq.foo", "9.8.7.6");
|
||||
|
||||
// Multiple IPs and multiple additional records
|
||||
await trrServer.registerDoHAnswers(
|
||||
|
@ -249,7 +249,7 @@ add_task(async function test_parse_additional_section() {
|
|||
|
||||
let [inRequest, inRecord, inStatus] = await new TRRDNSListener(
|
||||
"multiple.foo",
|
||||
{ expectedAnswer: "9.9.9.9" }
|
||||
"9.9.9.9"
|
||||
);
|
||||
let IPs = [];
|
||||
inRecord.QueryInterface(Ci.nsIDNSAddrRecord);
|
||||
|
@ -260,9 +260,11 @@ add_task(async function test_parse_additional_section() {
|
|||
equal(IPs.length, 1);
|
||||
equal(IPs[0], "9.9.9.9");
|
||||
IPs = [];
|
||||
[inRequest, inRecord, inStatus] = await new TRRDNSListener("yuiop.foo", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
[inRequest, inRecord, inStatus] = await new TRRDNSListener(
|
||||
"yuiop.foo",
|
||||
undefined,
|
||||
false
|
||||
);
|
||||
inRecord.QueryInterface(Ci.nsIDNSAddrRecord);
|
||||
inRecord.rewind();
|
||||
while (inRecord.hasMore()) {
|
||||
|
|
|
@ -92,7 +92,7 @@ add_task(async function test_trr_casing() {
|
|||
data: "1.2.3.4",
|
||||
},
|
||||
]);
|
||||
await new TRRDNSListener("a.example.com", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("a.example.com", "1.2.3.4");
|
||||
|
||||
await trrServer.registerDoHAnswers("a.test.com", "A", [
|
||||
{
|
||||
|
@ -123,7 +123,7 @@ add_task(async function test_trr_casing() {
|
|||
data: "8.8.8.8",
|
||||
},
|
||||
]);
|
||||
await new TRRDNSListener("a.test.com", { expectedAnswer: "8.8.8.8" });
|
||||
await new TRRDNSListener("a.test.com", "8.8.8.8");
|
||||
|
||||
await trrServer.registerDoHAnswers("CAPITAL.COM", "A", [
|
||||
{
|
||||
|
@ -134,8 +134,8 @@ add_task(async function test_trr_casing() {
|
|||
data: "2.2.2.2",
|
||||
},
|
||||
]);
|
||||
await new TRRDNSListener("CAPITAL.COM", { expectedAnswer: "2.2.2.2" });
|
||||
await new TRRDNSListener("CAPITAL.COM.", { expectedAnswer: "2.2.2.2" });
|
||||
await new TRRDNSListener("CAPITAL.COM", "2.2.2.2");
|
||||
await new TRRDNSListener("CAPITAL.COM.", "2.2.2.2");
|
||||
|
||||
await trrServer.stop();
|
||||
});
|
||||
|
|
|
@ -78,14 +78,7 @@ add_task(async function test_follow_cnames_same_response() {
|
|||
data: "1.2.3.4",
|
||||
},
|
||||
]);
|
||||
let [inRequest, inRecord, inStatus] = await new TRRDNSListener(
|
||||
"something.foo",
|
||||
{
|
||||
expectedAnswer: "1.2.3.4",
|
||||
flags: Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
|
||||
}
|
||||
);
|
||||
equal(inRecord.QueryInterface(Ci.nsIDNSAddrRecord).canonicalName, "xyz.foo");
|
||||
await new TRRDNSListener("something.foo", "1.2.3.4");
|
||||
|
||||
await trrServer.registerDoHAnswers("a.foo", "A", [
|
||||
{
|
||||
|
@ -105,7 +98,7 @@ add_task(async function test_follow_cnames_same_response() {
|
|||
data: "2.3.4.5",
|
||||
},
|
||||
]);
|
||||
await new TRRDNSListener("a.foo", { expectedAnswer: "2.3.4.5" });
|
||||
await new TRRDNSListener("a.foo", "2.3.4.5");
|
||||
|
||||
await trrServer.stop();
|
||||
});
|
||||
|
|
|
@ -61,7 +61,7 @@ add_task(async function test_extended_error_bogus() {
|
|||
},
|
||||
]);
|
||||
|
||||
await new TRRDNSListener("something.foo", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("something.foo", "1.2.3.4");
|
||||
|
||||
await trrServer.registerDoHAnswers(
|
||||
"a.foo",
|
||||
|
@ -84,9 +84,7 @@ add_task(async function test_extended_error_bogus() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
let [, , inStatus] = await new TRRDNSListener("a.foo", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
let [, , inStatus] = await new TRRDNSListener("a.foo", undefined, false);
|
||||
Assert.ok(
|
||||
!Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be an error code`
|
||||
|
@ -115,9 +113,7 @@ add_task(async function test_extended_error_filtered() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
let [, , inStatus] = await new TRRDNSListener("b.foo", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
let [, , inStatus] = await new TRRDNSListener("b.foo", undefined, false);
|
||||
Assert.ok(
|
||||
!Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be an error code`
|
||||
|
@ -146,7 +142,7 @@ add_task(async function test_extended_error_not_ready() {
|
|||
);
|
||||
|
||||
// For this code it's OK to fallback
|
||||
await new TRRDNSListener("c.foo", { expectedAnswer: "127.0.0.1" });
|
||||
await new TRRDNSListener("c.foo", "127.0.0.1");
|
||||
});
|
||||
|
||||
add_task(async function ipv6_answer_and_delayed_ipv4_error() {
|
||||
|
@ -183,7 +179,7 @@ add_task(async function ipv6_answer_and_delayed_ipv4_error() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
await new TRRDNSListener("delay1.com", { expectedAnswer: "::a:b:c:d" });
|
||||
await new TRRDNSListener("delay1.com", "::a:b:c:d");
|
||||
});
|
||||
|
||||
add_task(async function ipv4_error_and_delayed_ipv6_answer() {
|
||||
|
@ -225,7 +221,7 @@ add_task(async function ipv4_error_and_delayed_ipv6_answer() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
await new TRRDNSListener("delay2.com", { expectedAnswer: "::a:b:c:d" });
|
||||
await new TRRDNSListener("delay2.com", "::a:b:c:d");
|
||||
});
|
||||
|
||||
add_task(async function ipv4_answer_and_delayed_ipv6_error() {
|
||||
|
@ -262,7 +258,7 @@ add_task(async function ipv4_answer_and_delayed_ipv6_error() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
await new TRRDNSListener("delay3.com", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("delay3.com", "1.2.3.4");
|
||||
});
|
||||
|
||||
add_task(async function delayed_ipv4_answer_and_ipv6_error() {
|
||||
|
@ -304,5 +300,5 @@ add_task(async function delayed_ipv4_answer_and_ipv6_error() {
|
|||
);
|
||||
|
||||
// Check that we don't fall back to DNS
|
||||
await new TRRDNSListener("delay4.com", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("delay4.com", "1.2.3.4");
|
||||
});
|
||||
|
|
|
@ -248,7 +248,7 @@ add_task(async function test_aliasform() {
|
|||
},
|
||||
]);
|
||||
|
||||
await new TRRDNSListener("test.com", { expectedAnswer: "1.2.3.4" });
|
||||
await new TRRDNSListener("test.com", "1.2.3.4");
|
||||
|
||||
// Test a chain of HTTPSSVC AliasForm and CNAMEs
|
||||
await trrServer.registerDoHAnswers("x.com", "A", [
|
||||
|
@ -297,7 +297,7 @@ add_task(async function test_aliasform() {
|
|||
},
|
||||
]);
|
||||
|
||||
await new TRRDNSListener("x.com", { expectedAnswer: "4.3.2.1" });
|
||||
await new TRRDNSListener("x.com", "4.3.2.1");
|
||||
|
||||
// We get a ServiceForm instead of a A answer, CNAME or AliasForm
|
||||
await trrServer.registerDoHAnswers("no-ip-host.com", "A", [
|
||||
|
@ -321,9 +321,11 @@ add_task(async function test_aliasform() {
|
|||
},
|
||||
]);
|
||||
|
||||
let [, , inStatus] = await new TRRDNSListener("no-ip-host.com", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
let [, , inStatus] = await new TRRDNSListener(
|
||||
"no-ip-host.com",
|
||||
undefined,
|
||||
false
|
||||
);
|
||||
Assert.ok(
|
||||
!Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be an error code`
|
||||
|
@ -354,9 +356,7 @@ add_task(async function test_aliasform() {
|
|||
},
|
||||
]);
|
||||
|
||||
[, , inStatus] = await new TRRDNSListener("loop.com", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
[, , inStatus] = await new TRRDNSListener("loop.com", undefined, false);
|
||||
Assert.ok(
|
||||
!Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be an error code`
|
||||
|
@ -377,9 +377,7 @@ add_task(async function test_aliasform() {
|
|||
},
|
||||
]);
|
||||
|
||||
[, , inStatus] = await new TRRDNSListener("empty.com", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
[, , inStatus] = await new TRRDNSListener("empty.com", undefined, false);
|
||||
Assert.ok(
|
||||
!Components.isSuccessCode(inStatus),
|
||||
`${inStatus} should be an error code`
|
||||
|
|
|
@ -85,9 +85,7 @@ add_task(async function test_add_nat64_prefix_to_trr() {
|
|||
data: "1.2.3.4",
|
||||
},
|
||||
]);
|
||||
let [, inRecord] = await new TRRDNSListener("xyz.foo", {
|
||||
expectedSuccess: false,
|
||||
});
|
||||
let [, inRecord] = await new TRRDNSListener("xyz.foo", undefined, false);
|
||||
|
||||
inRecord.QueryInterface(Ci.nsIDNSAddrRecord);
|
||||
inRecord.getNextAddrAsString();
|
||||
|
|
Загрузка…
Ссылка в новой задаче