From 2836ce487058c9c122a2b57a27bb0199a775bac9 Mon Sep 17 00:00:00 2001 From: NaiJi Date: Mon, 15 Jan 2024 14:45:36 +0400 Subject: [PATCH] fix(cloudflare): Convert MX name from @ to root domain - https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/265 --- .../server_installation/server_installation_cubit.dart | 2 ++ .../models/json/dns_providers/cloudflare_dns_adapter.dart | 6 +++++- lib/utils/network_utils.dart | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/logic/cubit/server_installation/server_installation_cubit.dart b/lib/logic/cubit/server_installation/server_installation_cubit.dart index fdfd4703..95726fb4 100644 --- a/lib/logic/cubit/server_installation/server_installation_cubit.dart +++ b/lib/logic/cubit/server_installation/server_installation_cubit.dart @@ -270,6 +270,7 @@ class ServerInstallationCubit extends Cubit { records: getProjectDnsRecords( state.serverDomain!.domainName, serverDetails.ip4, + false, ), domain: state.serverDomain!, ); @@ -277,6 +278,7 @@ class ServerInstallationCubit extends Cubit { records: getProjectDnsRecords( state.serverDomain!.domainName, serverDetails.ip4, + true, ), domain: state.serverDomain!, ); diff --git a/lib/logic/models/json/dns_providers/cloudflare_dns_adapter.dart b/lib/logic/models/json/dns_providers/cloudflare_dns_adapter.dart index 3a22c89e..8046555c 100644 --- a/lib/logic/models/json/dns_providers/cloudflare_dns_adapter.dart +++ b/lib/logic/models/json/dns_providers/cloudflare_dns_adapter.dart @@ -4,14 +4,18 @@ CloudflareDnsRecord _fromDnsRecord( final DnsRecord dnsRecord, final String rootDomain, ) { + final String type = dnsRecord.type; String name = dnsRecord.name ?? ''; if (name != rootDomain && name != '@') { name = '$name.$rootDomain'; } + if (type == 'MX' && name == '@') { + name = rootDomain; + } return CloudflareDnsRecord( content: dnsRecord.content, name: name, - type: dnsRecord.type, + type: type, zoneName: rootDomain, id: null, ttl: dnsRecord.ttl, diff --git a/lib/utils/network_utils.dart b/lib/utils/network_utils.dart index 345f62b7..a7dc874e 100644 --- a/lib/utils/network_utils.dart +++ b/lib/utils/network_utils.dart @@ -93,6 +93,7 @@ void launchURL(final url) async { List getProjectDnsRecords( final String? domainName, final String? ip4, + final bool isCreating, ) { final DnsRecord domainA = DnsRecord(type: 'A', name: domainName, content: ip4); @@ -139,7 +140,7 @@ List getProjectDnsRecords( mx, txt1, txt2, - txt3, + if (!isCreating) txt3, vpn, ]; }