From 7ca7b43fdac41232155d092b55b79a09477c1883 Mon Sep 17 00:00:00 2001 From: Morne Lotze Date: Tue, 11 Jun 2019 11:41:39 +0200 Subject: [PATCH] add semicolon to DKIM record data (#825) * add semicolon to dkim record data Addresses https://github.com/atech/postal/issues/812 As the semicolon at the end of a DKIM record is optional, some DNS software removes it. The above change sanitizes the DKIM record before it gets checked * fixed method typo fixed a typo caused by my US spelling checker * typo fix v2 a proper fix for the typo --- app/models/domain/dns_checks.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/models/domain/dns_checks.rb b/app/models/domain/dns_checks.rb index 3d5c805..45c7452 100644 --- a/app/models/domain/dns_checks.rb +++ b/app/models/domain/dns_checks.rb @@ -68,7 +68,11 @@ class Domain # # DKIM # - + + def sanitised_dkim_record + return records.first.strip.ends_with?(';') ? records.first.strip : "#{records.first.strip};" + end + def check_dkim_record domain = "#{dkim_record_name}.#{name}" result = resolver.getresources(domain, Resolv::DNS::Resource::IN::TXT) @@ -80,7 +84,7 @@ class Domain if records.size > 1 self.dkim_status = 'Invalid' self.dkim_error = "There are #{records.size} records for at #{domain}. There should only be one." - elsif records.first.strip != self.dkim_record + elsif sanitised_dkim_record != self.dkim_record self.dkim_status = 'Invalid' self.dkim_error = "The DKIM record at #{domain} does not match the record we have provided. Please check it has been copied correctly." else