Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion apps/builder/app/builder/features/topbar/add-domain.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ export const AddDomain = ({
});
// enforce www subdomain when no support for cname flattening
// and root cname can conflict with MX or NS
if (!registrar.cnameFlattening) {
if (registrar.known && !registrar.cnameFlattening) {
domain = `www.${domain}`;
}
}
Expand Down
15 changes: 7 additions & 8 deletions packages/domain/src/rdap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,18 +88,17 @@ export const isDomainUsingCloudflareNameservers = async (domain: string) => {

const rdapServer = await findRdapServer(topLevelDomain);
if (!rdapServer) {
throw new Error(
console.error(
"RDAP Server for the given top level domain could not be found."
);
return undefined;
}

if (rdapServer) {
const data = await fetchRdap(rdapServer, domain);
if (data) {
// detect by nameservers rather than registrar url
// sometimes stored as *.NS.CLOUDFLARE.COM
return data.toLowerCase().includes(".ns.cloudflare.com");
}
const data = await fetchRdap(rdapServer, domain);
if (data) {
// detect by nameservers rather than registrar url
// sometimes stored as *.NS.CLOUDFLARE.COM
return data.toLowerCase().includes(".ns.cloudflare.com");
}
return false;
};
6 changes: 5 additions & 1 deletion packages/domain/src/trpc/domain.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,12 @@ export const domainRouter = router({
findDomainRegistrar: procedure
.input(z.object({ domain: z.string() }))
.query(async ({ input }) => {
const isCloudflare = await isDomainUsingCloudflareNameservers(
input.domain
);
return {
cnameFlattening: await isDomainUsingCloudflareNameservers(input.domain),
known: isCloudflare !== undefined,
cnameFlattening: isCloudflare === true,
};
}),

Expand Down