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, ]; }