|
|
@ -4,8 +4,7 @@ var path = require('path'); |
|
|
|
var homeRe = new RegExp("^~(\\/|\\\\|\\" + path.sep + ")"); |
|
|
|
var re = /^[a-zA-Z0-9\.\-]+$/; |
|
|
|
var punycode = require('punycode'); |
|
|
|
var PromiseA = require('bluebird'); |
|
|
|
var dns = PromiseA.promisifyAll(require('dns')); |
|
|
|
var dnsResolveMxAsync = require('util').promisify(require('dns').resolveMx); |
|
|
|
|
|
|
|
module.exports.attachCertInfo = function (results) { |
|
|
|
// XXX Note: Parsing the certificate info comes at a great cost (~500kb)
|
|
|
@ -107,10 +106,10 @@ module.exports.testEmail = function (email) { |
|
|
|
if (2 !== parts.length || !parts[0] || !parts[1]) { |
|
|
|
err = new Error("malformed email address '" + email + "'"); |
|
|
|
err.code = 'E_EMAIL'; |
|
|
|
return PromiseA.reject(err); |
|
|
|
return Promise.reject(err); |
|
|
|
} |
|
|
|
|
|
|
|
return dns.resolveMxAsync(parts[1]).then(function (records) { |
|
|
|
return dnsResolveMxAsync(parts[1]).then(function (records) { |
|
|
|
// records only returns when there is data
|
|
|
|
if (!records.length) { |
|
|
|
throw new Error("sanity check fail: success, but no MX records returned"); |
|
|
@ -120,7 +119,7 @@ module.exports.testEmail = function (email) { |
|
|
|
if ('ENODATA' === err.code) { |
|
|
|
err = new Error("no MX records found for '" + parts[1] + "'"); |
|
|
|
err.code = 'E_EMAIL'; |
|
|
|
return PromiseA.reject(err); |
|
|
|
return Promise.reject(err); |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|