Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
const literal = net_utils.get_ipany_re('^\\[(?:IPv6:)?','\\]$','').exec(helo);
if (!literal) {
connection.results.add(plugin, {pass: 'literal_mismatch'});
return next();
}
const lmm_mode = parseInt(plugin.cfg.check.literal_mismatch, 10);
const helo_ip = literal[1];
if (lmm_mode > 2 && net_utils.is_private_ip(helo_ip)) {
connection.results.add(plugin, {pass: 'literal_mismatch(private)'});
return next();
}
if (lmm_mode > 1) {
if (net_utils.same_ipv4_network(connection.remote.ip, [helo_ip])) {
connection.results.add(plugin, {pass: 'literal_mismatch'});
return next();
}
connection.results.add(plugin, {fail: 'literal_mismatch'});
if (plugin.cfg.reject.literal_mismatch) {
return next(DENY, 'HELO IP literal not in the same /24 as your IP address');
}
return next();
}
if (helo_ip === connection.remote.ip) {
connection.results.add(plugin, {pass: 'literal_mismatch'});
return next();
}