Skip to content

Commit

Permalink
fix: fixed FQDN issue (per <validatorjs/validator.js#1545>)
Browse files Browse the repository at this point in the history
  • Loading branch information
niftylettuce committed Dec 4, 2020
1 parent 590a6d3 commit 248a5b9
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
18 changes: 8 additions & 10 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ const dnsbl = require('dnsbl');
const getFQDN = require('get-fqdn');
const getStream = require('get-stream');
const ip = require('ip');
const isFQDN = require('is-fqdn');
const isSANB = require('is-string-and-not-blank');
const ms = require('ms');
const mxConnect = require('mx-connect');
Expand Down Expand Up @@ -918,7 +919,7 @@ class ForwardEmail {

// ensure fully qualified domain name
/*
if (!validator.isFQDN(domain))
if (!isFQDN(domain))
throw new CustomError(
`${domain} is not a fully qualified domain name ("FQDN")`
);
Expand Down Expand Up @@ -1018,7 +1019,7 @@ class ForwardEmail {

// if it is a FQDN then look it up by IP address
let value = ip;
if (validator.isFQDN(value)) {
if (isFQDN(value)) {
try {
// TODO: may want to also lookup the AAAA value too besides A
// by passing `{ all: true }` option to return an Array of addresses
Expand Down Expand Up @@ -1069,7 +1070,7 @@ class ForwardEmail {
try {
// check against blacklist
if (
validator.isFQDN(session.clientHostname) &&
isFQDN(session.clientHostname) &&
this.isBlacklisted(session.clientHostname)
)
throw new CustomError(
Expand Down Expand Up @@ -2516,7 +2517,7 @@ class ForwardEmail {
if (
addr.length !== 2 ||
!_.isString(addr[1]) ||
(!validator.isFQDN(addr[1]) &&
(!isFQDN(addr[1]) &&
!validator.isIP(addr[1]) &&
!validator.isEmail(addr[1]) &&
!validator.isURL(addr[1], this.config.isURLOptions))
Expand All @@ -2531,17 +2532,14 @@ class ForwardEmail {
forwardingAddresses.push(addr[1]);
else forwardingAddresses.push(addr[1].toLowerCase());
}
} else if (
validator.isFQDN(lowerCaseAddress) ||
validator.isIP(lowerCaseAddress)
) {
} else if (isFQDN(lowerCaseAddress) || validator.isIP(lowerCaseAddress)) {
// allow domain alias forwarding
// (e.. the record is just "b.com" if it's not a valid email)
globalForwardingAddresses.push(`${username}@${lowerCaseAddress}`);
} else if (validator.isEmail(lowerCaseAddress)) {
const domain = this.parseDomain(lowerCaseAddress, false);
if (
(validator.isFQDN(domain) || validator.isIP(domain)) &&
(isFQDN(domain) || validator.isIP(domain)) &&
validator.isEmail(lowerCaseAddress)
) {
globalForwardingAddresses.push(lowerCaseAddress);
Expand Down Expand Up @@ -2673,7 +2671,7 @@ class ForwardEmail {

return forwardingAddresses.map((forwardingAddress) => {
if (
validator.isFQDN(forwardingAddress) ||
isFQDN(forwardingAddress) ||
validator.isIP(forwardingAddress) ||
validator.isURL(forwardingAddress, this.config.isURLOptions)
)
Expand Down
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
"get-stream": "^6.0.0",
"iconv": "^3.0.0",
"ip": "^1.1.5",
"is-fqdn": "^2.0.1",
"is-string-and-not-blank": "^0.0.2",
"lodash": "^4.17.20",
"mailparser": "^2.8.1",
Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4786,6 +4786,11 @@ is-extglob@^2.1.0, is-extglob@^2.1.1:
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=

is-fqdn@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/is-fqdn/-/is-fqdn-2.0.1.tgz#2c47b17007b780cd034922ef86a4b3aad0901352"
integrity sha512-oQgLvyS2gWO5ZT3EbgdpkIN5fORg5Sadn0SQ4seTwt/fuKxQHrg8k/BaI02dGgcek+Gc2zxrd1tBo7h5HyBdNA==

is-fullwidth-code-point@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
Expand Down

0 comments on commit 248a5b9

Please sign in to comment.