71 lines
1.6 KiB
JavaScript
71 lines
1.6 KiB
JavaScript
"use strict";
|
|
|
|
/* import-globals-from trr_common.js */
|
|
|
|
let trrServer;
|
|
add_setup(async function setup() {
|
|
trr_test_setup();
|
|
|
|
registerCleanupFunction(async () => {
|
|
if (trrServer) {
|
|
await trrServer.stop();
|
|
}
|
|
trr_clear_prefs();
|
|
});
|
|
Services.prefs.setBoolPref("network.dns.always_ai_canonname", true);
|
|
});
|
|
|
|
add_task(async function test_canonical_flag() {
|
|
trrServer = new TRRServer();
|
|
await trrServer.start();
|
|
|
|
await trrServer.registerDoHAnswers("testdomain.com", "A", {
|
|
answers: [
|
|
{
|
|
name: "testdomain.com",
|
|
ttl: 55,
|
|
type: "A",
|
|
flush: false,
|
|
data: "5.5.5.5",
|
|
},
|
|
],
|
|
});
|
|
|
|
Services.prefs.setCharPref(
|
|
"network.trr.uri",
|
|
`https://foo.example.com:${trrServer.port()}/dns-query`
|
|
);
|
|
// Disable backup connection
|
|
Services.prefs.setBoolPref("network.dns.disableIPv6", true);
|
|
|
|
Services.prefs.setIntPref("network.trr.mode", Ci.nsIDNSService.MODE_TRRONLY);
|
|
|
|
await new TRRDNSListener("testdomain.com", {
|
|
expectedAnswer: "5.5.5.5",
|
|
flags: Ci.nsIDNSService.RESOLVE_CANONICAL_NAME,
|
|
});
|
|
let reqCount = await trrServer.requestCount("testdomain.com", "A");
|
|
|
|
await trrServer.registerDoHAnswers("testdomain.com", "A", {
|
|
answers: [
|
|
{
|
|
name: "testdomain.com",
|
|
ttl: 55,
|
|
type: "A",
|
|
flush: false,
|
|
data: "1.1.1.1",
|
|
},
|
|
],
|
|
});
|
|
|
|
// Expect to get cached entry
|
|
await new TRRDNSListener("testdomain.com", {
|
|
expectedAnswer: "5.5.5.5",
|
|
flags: Ci.nsIDNSService.RESOLVE_SPECULATE,
|
|
});
|
|
Assert.equal(
|
|
reqCount,
|
|
await trrServer.requestCount("testdomain.com", "A"),
|
|
"no new request should be made"
|
|
);
|
|
});
|