]> gerrit.simantics Code Review - simantics/district.git/blob - dns.js
446729b6f9af6b50cf7b05bab5465dd1e803ae78
[simantics/district.git] / dns.js
1 var dns = require('dns');
2 var retry = require('../lib/retry');
3
4 function faultTolerantResolve(address, cb) {
5   var opts = {
6     retries: 2,
7     factor: 2,
8     minTimeout: 1 * 1000,
9     maxTimeout: 2 * 1000,
10     randomize: true
11   };
12   var operation = retry.operation(opts);
13
14   operation.attempt(function(currentAttempt) {
15     dns.resolve(address, function(err, addresses) {
16       if (operation.retry(err)) {
17         return;
18       }
19
20       cb(operation.mainError(), operation.errors(), addresses);
21     });
22   });
23 }
24
25 faultTolerantResolve('nodejs.org', function(err, errors, addresses) {
26   console.warn('err:');
27   console.log(err);
28
29   console.warn('addresses:');
30   console.log(addresses);
31 });