mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-01 16:58:09 +00:00
Merge branch 'edge' of http://10.6.6.2/zerotier/zerotierone into edge
This commit is contained in:
commit
c22c0a20f6
@ -19,8 +19,8 @@ if (!config.maxmind) {
|
|||||||
console.error('FATAL: only MaxMind GeoIP2 is currently supported and is not configured in config.js');
|
console.error('FATAL: only MaxMind GeoIP2 is currently supported and is not configured in config.js');
|
||||||
process.exit(1);
|
process.exit(1);
|
||||||
}
|
}
|
||||||
var geo = require('geoip2ws')(config.maxmind);
|
|
||||||
|
|
||||||
|
var geo = require('geoip2ws')(config.maxmind);
|
||||||
var cache = require('levelup')(__dirname + '/cache.leveldb');
|
var cache = require('levelup')(__dirname + '/cache.leveldb');
|
||||||
|
|
||||||
function lookup(ip,callback)
|
function lookup(ip,callback)
|
||||||
@ -32,17 +32,25 @@ function lookup(ip,callback)
|
|||||||
if (cachedEntry) {
|
if (cachedEntry) {
|
||||||
let ts = cachedEntry.ts;
|
let ts = cachedEntry.ts;
|
||||||
let r = cachedEntry.r;
|
let r = cachedEntry.r;
|
||||||
if (ts) {
|
if ((ts)&&((Date.now() - ts) < CACHE_TTL)) {
|
||||||
if ((Date.now() - ts) < CACHE_TTL)
|
//console.error(ip+': cached!');
|
||||||
return callback(null,r);
|
return callback(null,(r) ? r : null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {}
|
} catch (e) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cache.put(ip,JSON.stringify({
|
||||||
|
ts: Date.now() - (CACHE_TTL - 30000), // set ts to expire in 30 seconds while the query is in progress
|
||||||
|
r: null
|
||||||
|
}),function(err) {
|
||||||
|
|
||||||
geo(ip,function(err,result) {
|
geo(ip,function(err,result) {
|
||||||
if (err)
|
if (err) {
|
||||||
|
//console.error(err);
|
||||||
return callback(err,null);
|
return callback(err,null);
|
||||||
|
}
|
||||||
|
|
||||||
if (!result)
|
if (!result)
|
||||||
result = null;
|
result = null;
|
||||||
|
|
||||||
@ -55,6 +63,9 @@ function lookup(ip,callback)
|
|||||||
return callback(null,result);
|
return callback(null,result);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user