dns: add custom timeout.
This commit is contained in:
parent
7d9d3f979d
commit
647b6909c6
@ -31,7 +31,7 @@ exports.resolve = function resolve(host, proxy) {
|
||||
return socks.resolve(proxy, host);
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
dns.resolve(host, 'A', (err, result) => {
|
||||
dns.resolve(host, 'A', to((err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
@ -43,7 +43,7 @@ exports.resolve = function resolve(host, proxy) {
|
||||
}
|
||||
|
||||
resolve(result);
|
||||
});
|
||||
}));
|
||||
});
|
||||
};
|
||||
|
||||
@ -61,7 +61,7 @@ exports.lookup = function lookup(host, proxy) {
|
||||
return new Promise((resolve, reject) => {
|
||||
let addrs = [];
|
||||
|
||||
dns.lookup(host, options, (err, result) => {
|
||||
dns.lookup(host, options, to((err, result) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
@ -76,6 +76,24 @@ exports.lookup = function lookup(host, proxy) {
|
||||
addrs.push(addr.address);
|
||||
|
||||
resolve(addrs);
|
||||
});
|
||||
}));
|
||||
});
|
||||
};
|
||||
|
||||
/*
|
||||
* Helpers
|
||||
*/
|
||||
|
||||
function to(callback) {
|
||||
let timeout = setTimeout(() => {
|
||||
callback(new Error('DNS request timed out.'));
|
||||
callback = null;
|
||||
}, 5000);
|
||||
|
||||
return function(err, result) {
|
||||
if (callback) {
|
||||
clearTimeout(timeout);
|
||||
callback(err, result);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user