diff --git a/server/model/domain_expiry.js b/server/model/domain_expiry.js index ec97c04ff..7ffd38674 100644 --- a/server/model/domain_expiry.js +++ b/server/model/domain_expiry.js @@ -30,24 +30,28 @@ async function getRdapServer(tld) { return null; } - const candidates = []; - if (tld) { - candidates.push(tld); - if (tld.includes(".")) { - const root = tld.split(".").pop(); - if (root && root !== tld) { - candidates.push(root); - } + const services = rdapList["services"] ?? []; + const findServer = (candidate) => { + if (!candidate) { + return null; } - } - - for (const candidate of candidates) { - for (const service of rdapList["services"]) { - const [tlds, urls] = service; + for (const [tlds, urls] of services) { if (tlds.includes(candidate)) { return urls[0]; } } + return null; + }; + + let server = findServer(tld); + if (!server && tld?.includes(".")) { + const root = tld.split(".").pop(); + if (root && root !== tld) { + server = findServer(root); + } + } + if (server) { + return server; } log.debug("rdap", `No RDAP server found for TLD ${tld}`); return null;