diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index b90f0b2dd..1d541c1d6 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -7,11 +7,6 @@ "from": "async@>=1.2.1 <2.0.0", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz" }, - "attempt": { - "version": "1.0.1", - "from": "attempt@>=1.0.1 <2.0.0", - "resolved": "http://registry.npmjs.org/attempt/-/attempt-1.0.1.tgz" - }, "aws-sdk": { "version": "2.3.5", "from": "aws-sdk@>=2.1.46 <3.0.0", diff --git a/package.json b/package.json index 3f0fe2615..78331fdd6 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,6 @@ ], "dependencies": { "async": "^1.2.1", - "attempt": "^1.0.1", "aws-sdk": "^2.1.46", "body-parser": "^1.13.1", "bytes": "^2.3.0", diff --git a/src/waitfordns.js b/src/waitfordns.js index a6c19ed64..757d49fd1 100644 --- a/src/waitfordns.js +++ b/src/waitfordns.js @@ -4,7 +4,6 @@ exports = module.exports = waitForDns; var assert = require('assert'), async = require('async'), - attempt = require('attempt'), debug = require('debug')('box:src/waitfordns'), dns = require('native-dns'), tld = require('tldjs'); @@ -56,8 +55,8 @@ function waitForDns(domain, value, type, options, callback) { assert(type === 'A' || type === 'CNAME'); var defaultOptions = { - retryInterval: 5000, - retries: Infinity + interval: 5000, + times: Infinity }; if (typeof options === 'function') { @@ -71,20 +70,20 @@ function waitForDns(domain, value, type, options, callback) { var zoneName = tld.getDomain(zoneName); debug('waitForIp: domain %s to be %s in zone %s.', domain, value, zoneName); - attempt(function (attempts) { - var callback = this; // gross - debug('waitForDNS: %s attempt %s.', domain, attempts); + var attempt = 1; + async.retry(options, function retryCallback() { + debug('waitForDNS: %s attempt %s.', domain, attempt++); dns.resolveNs(zoneName, function (error, nameservers) { - if (error || !nameservers) return callback(error || new Error('Unable to get nameservers')); + if (error || !nameservers) return retryCallback(error || new Error('Unable to get nameservers')); async.every(nameservers, isChangeSynced.bind(null, domain, value, type), function (synced) { debug('waitForIp: %s %s ns: %j', domain, synced ? 'done' : 'not done', nameservers); - callback(synced ? null : new Error('ETRYAGAIN')); + retryCallback(synced ? null : new Error('ETRYAGAIN')); }); }); - }, { interval: options.retryInterval, retries: options.retries }, function (error) { + }, function retryDone(error) { if (error) return callback(error); debug('waitForDNS: %s done.', domain);