diff --git a/lib/permuteDomain.js b/lib/permuteDomain.js index f402cea6..90923bce 100644 --- a/lib/permuteDomain.js +++ b/lib/permuteDomain.js @@ -68,6 +68,11 @@ function permuteDomain(domain, allowSpecialUseDomain) { return [domain]; } + // Nuke trailing dot + if (domain.slice(-1) == ".") { + domain = domain.slice(0, -1) + } + const prefix = domain.slice(0, -(pubSuf.length + 1)); // ".example.com" const parts = prefix.split(".").reverse(); let cur = pubSuf; diff --git a/test/domain_and_path_test.js b/test/domain_and_path_test.js index 4e2ce093..de15f317 100644 --- a/test/domain_and_path_test.js +++ b/test/domain_and_path_test.js @@ -194,6 +194,16 @@ vows "foo.bar.example.localduhmain" ]); } + }, + "trailing dot": { + topic: tough.permuteDomain.bind(null, "foo.bar.example.com."), + "got three things": function(list) { + assert.deepEqual(list, [ + "example.com", + "bar.example.com", + "foo.bar.example.com" + ]); + } } }, permutePath: {