diff --git a/dnsbl.js b/dnsbl.js index 3744012692..9a8ed39553 100644 --- a/dnsbl.js +++ b/dnsbl.js @@ -2,15 +2,16 @@ var dns = require('dns'); var blocklist = 'zen.spamhaus.org'; +var dnsblCache = {}; + exports.query = function queryDnsbl(ip, callback) { + if (ip in dnsblCache) { + callback(dnsblCache[ip]); + return; + } var reversedIp = ip.split('.').reverse().join('.'); dns.resolve4(reversedIp+'.'+blocklist, function(err, addresses) { - if (err) { - // not on blacklist - callback(false); - } else { - // on blacklist - callback(true); - } + var isBlocked = dnsblCache[ip] = !err; + callback(isBlocked); }); }