Verify reverse DNS when looking up hostnames for webirc

Fixes #3293
This commit is contained in:
Pavel Djundik 2019-07-11 23:10:03 +03:00
parent 257ce5d0a8
commit d3a98a523f

View File

@ -744,11 +744,23 @@ function performAuthentication(data) {
} }
function reverseDnsLookup(ip, callback) { function reverseDnsLookup(ip, callback) {
dns.reverse(ip, (err, hostnames) => { dns.reverse(ip, (reverseErr, hostnames) => {
if (!err && hostnames.length) { if (reverseErr || hostnames.length < 1) {
return callback(hostnames[0]); return callback(ip);
} }
callback(ip); dns.resolve(hostnames[0], net.isIP(ip) === 6 ? "AAAA" : "A", (resolveErr, resolvedIps) => {
if (resolveErr || resolvedIps.length < 1) {
return callback(ip);
}
for (const resolvedIp of resolvedIps) {
if (ip === resolvedIp) {
return callback(hostnames[0]);
}
}
return callback(ip);
});
}); });
} }