Commit e7017883 authored by Marcelo Alejo Calle's avatar Marcelo Alejo Calle
Browse files

No utilizar dns si no se pasa server ip dns

parent ad31768b
......@@ -46,7 +46,7 @@ module.exports = async function (configApp, app, loadDefault) {
Object.assign(config, configApp);
if (!configApp.extra) {
configApp.extra = { dns: ['8.8.8.8'] };
configApp.extra = { dns: [] };
}
let services = {};
......
......@@ -4,7 +4,7 @@ const debug = require('debug')('app:dns:verificarCorreo');
const dns = require('dns');
module.exports = function dnsService (services, config) {
dns.setServers(config.dns);
if (config.dns && config.dns[0]) dns.setServers(config.dns);
let listaDominios = {
count: 0,
......@@ -93,45 +93,50 @@ module.exports = function dnsService (services, config) {
result.advertencia = `El dominio "@${dominio}" es institucional`;
}
try {
const res = await verificarDns(dominio);
result.mx = res;
if (!res || !res[0]) {
console.error('[verificarDominio]', res);
result.advertencia = `El dominio "@${dominio}" no puede ser verificado.`;
} else {
if (!res[0].exchange) {
result.error = `El dominio "@${dominio}" no recibe correos.`;
}
for (const ex of res) {
if (await buscarEnLista(ex.exchange, 'LISTA_NEGRA')) {
result.error = `El dominio "@${dominio}" no esta permitido.`;
return result;
} else if (await buscarEnLista(ex.exchange, 'INSTITUCIONAL', false)) {
result.advertencia = `El dominio "@${dominio}" es institucional.`;
return result;
if (config.dns && config.dns[0]) {
try {
const res = await verificarDns(dominio);
result.mx = res;
if (!res || !res[0]) {
console.error('[verificarDominio]', res);
result.advertencia = `El dominio "@${dominio}" no puede ser verificado.`;
} else {
if (!res[0].exchange) {
result.error = `El dominio "@${dominio}" no recibe correos.`;
}
for (const ex of res) {
if (await buscarEnLista(ex.exchange, 'LISTA_NEGRA')) {
result.error = `El dominio "@${dominio}" no esta permitido.`;
return result;
} else if (await buscarEnLista(ex.exchange, 'INSTITUCIONAL', false)) {
result.advertencia = `El dominio "@${dominio}" es institucional.`;
return result;
}
}
}
}
await registrarDominio(dominio);
return result;
} catch (err) {
await registrarDominio(dominio);
if (err.message.indexOf('ENOTFOUND') >= 0) {
result.error = `El dominio "@${dominio}", no existe.`;
return result;
}
if (err.message.indexOf('ENODATA') >= 0) {
result.error = `El dominio "@${dominio}", no recibe correos.`;
await registrarDominio(dominio);
return result;
}
if (err.message.indexOf('ETIMEOUT') >= 0) {
} catch (err) {
await registrarDominio(dominio);
if (err.message.indexOf('ENOTFOUND') >= 0) {
result.error = `El dominio "@${dominio}", no existe.`;
return result;
}
if (err.message.indexOf('ENODATA') >= 0) {
result.error = `El dominio "@${dominio}", no recibe correos.`;
return result;
}
if (err.message.indexOf('ETIMEOUT') >= 0) {
console.error('[verificarDominio]', err);
result.advertencia = `El dominio "@${dominio}", no puede ser verificado.`;
return result;
}
console.error('[verificarDominio]', err);
result.advertencia = `El dominio "@${dominio}", no puede ser verificado.`;
return result;
throw err;
}
console.error('[verificarDominio]', err);
throw err;
} else {
await registrarDominio(dominio);
return result;
}
};
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment