gecko-dev/netwerk/test/unit/test_dns_disable_ipv6.js
Valentin Gosu 4f8b38c03b Bug 1190502 - RESOLVE_DISABLE_IPV4 returns A records r=mcmanus
nsHostResolver::ThreadFunc should not override addressFamily with PR_AF_UNSPEC
for IPv6 since GetAddrInfo.cpp::GetAddrInfo() can handle PR_AF_INET6.
_GetAddrInfo_Portable does this before calling PR_GetAddrInfoByName and
creates the AddrInfo with a disableIPv4 flag if necessary.
2015-08-10 11:22:02 +02:00

42 lines
1.0 KiB
JavaScript

//
// Tests that calling asyncResolve with the RESOLVE_DISABLE_IPV6 flag doesn't
// return any IPv6 addresses.
//
var dns = Cc["@mozilla.org/network/dns-service;1"].getService(Ci.nsIDNSService);
var ioService = Cc["@mozilla.org/network/io-service;1"].getService(Ci.nsIIOService);
var listener = {
onLookupComplete: function(inRequest, inRecord, inStatus) {
if (inStatus != Cr.NS_OK) {
do_check_eq(inStatus, Cr.NS_ERROR_UNKNOWN_HOST);
do_test_finished();
return;
}
while (true) {
try {
var answer = inRecord.getNextAddrAsString();
// If there is an answer it should be an IPv4 address
dump(answer);
do_check_true(answer.indexOf(':') == -1);
do_check_true(answer.indexOf('.') != -1);
} catch (e) {
break;
}
}
do_test_finished();
}
};
function run_test() {
do_test_pending();
try {
dns.asyncResolve("example.com", Ci.nsIDNSService.RESOLVE_DISABLE_IPV6, listener, null);
} catch (e) {
dump(e);
do_check_true(false);
do_test_finished();
}
}