From 1e71ec618455b88a3dcd2f2cd42e2d098ffeeb1c Mon Sep 17 00:00:00 2001 From: Guangcong Luo Date: Fri, 13 Sep 2013 10:19:00 -0700 Subject: [PATCH] Cache DNSBL results --- dnsbl.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) 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); }); }