From 6bee028188b8ce9a76c2fcf6458b3e7f6964dcfd Mon Sep 17 00:00:00 2001 From: NaiJi Date: Tue, 16 May 2023 12:49:55 -0300 Subject: [PATCH] feat: Implement proper DKIM creation for deSEC --- assets/translations/en.json | 4 +++- assets/translations/ru.json | 4 +++- .../rest_maps/dns_providers/desec/desec.dart | 19 ++++++++++++++----- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/assets/translations/en.json b/assets/translations/en.json index 0d825bff..b902c3a2 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -286,11 +286,13 @@ "select_provider_countries_text_hetzner": "Germany, Finland, USA", "select_provider_countries_text_do": "USA, Netherlands, Singapore, UK, Germany, Canada, India, Australia", "select_provider_price_title": "Average price", + "select_provider_price_free": "Free", "select_provider_price_text_hetzner": "€8 per month for a relatively small server and 50GB of disk storage", "select_provider_price_text_do": "$17 per month for a relatively small server and 50GB of disk storage", "select_provider_payment_title": "Payment methods", "select_provider_payment_text_hetzner": "Credit cards, SWIFT, SEPA, PayPal", "select_provider_payment_text_do": "Credit cards, Google Pay, PayPal", + "select_provider_payment_text_cloudflare": "Credit cards", "select_provider_email_notice": "E-mail hosting won't be available for new clients. Nevertheless it will be unlocked as soon as you complete your first payment.", "select_provider_site_button": "Visit site", "connect_to_server_provider": "Now log in ", @@ -506,4 +508,4 @@ "reset_onboarding_description": "Reset onboarding switch to show onboarding screen again", "cubit_statuses": "Cubit loading statuses" } -} +} \ No newline at end of file diff --git a/assets/translations/ru.json b/assets/translations/ru.json index 35498bd9..6b624c70 100644 --- a/assets/translations/ru.json +++ b/assets/translations/ru.json @@ -280,10 +280,12 @@ "select_provider_countries_text_hetzner": "Германия, Финляндия, США", "select_provider_countries_text_do": "США, Нидерланды, Сингапур, Великобритания, Германия, Канада, Индия, Австралия", "select_provider_price_title": "Средняя цена", + "select_provider_price_free": "Бесплатно", "select_provider_price_text_hetzner": "€8 в месяц за небольшой сервер и 50GB места на диске", "select_provider_price_text_do": "$17 в месяц за небольшой сервер и 50GB места на диске", "select_provider_payment_title": "Методы оплаты", "select_provider_payment_text_hetzner": "Банковские карты, SWIFT, SEPA, PayPal", + "select_provider_payment_text_cloudflare": "Банковские карты", "select_provider_payment_text_do": "Банковские карты, Google Pay, PayPal", "select_provider_email_notice": "Хостинг электронной почты недоступен для новых клиентов. Разблокировать можно будет после первой оплаты.", "select_provider_site_button": "Посетить сайт", @@ -473,4 +475,4 @@ "length_not_equal": "Длина строки [], должна быть равна {}", "length_longer": "Длина строки [], должна быть меньше либо равна {}" } -} +} \ No newline at end of file diff --git a/lib/logic/api_maps/rest_maps/dns_providers/desec/desec.dart b/lib/logic/api_maps/rest_maps/dns_providers/desec/desec.dart index 91eed57a..0a8197dc 100644 --- a/lib/logic/api_maps/rest_maps/dns_providers/desec/desec.dart +++ b/lib/logic/api_maps/rest_maps/dns_providers/desec/desec.dart @@ -196,13 +196,13 @@ class DesecApi extends DnsProviderApi { ? { 'type': record.type, 'ttl': record.ttl, - 'records': [record.content], + 'records': [extractContent(record)], } : { 'subname': record.name, 'type': record.type, 'ttl': record.ttl, - 'records': [record.content], + 'records': [extractContent(record)], }, ); } @@ -275,6 +275,15 @@ class DesecApi extends DnsProviderApi { ]; } + String? extractContent(final DnsRecord record) { + String? content = record.content; + if (record.type == 'TXT' && content != null && !content.startsWith('"')) { + content = '"$content"'; + } + + return content; + } + @override Future setDnsRecord( final DnsRecord record, @@ -290,13 +299,13 @@ class DesecApi extends DnsProviderApi { ? { 'type': record.type, 'ttl': record.ttl, - 'records': [record.content], + 'records': [extractContent(record)], } : { 'subname': record.name, 'type': record.type, 'ttl': record.ttl, - 'records': [record.content], + 'records': [extractContent(record)], }, ); await Future.delayed(const Duration(seconds: 1)); @@ -465,7 +474,7 @@ class DesecApi extends DnsProviderApi { if (dkimPublicKey != null) DesiredDnsRecord( name: 'selector._domainkey.$domainName', - content: dkimPublicKey, + content: '"$dkimPublicKey"', description: 'record.dkim', type: 'TXT', category: DnsRecordsCategory.email,