Spezialfall TXT/SPF-Record bei dem wir automatischen record nicht ueberschreiben
Hanno Böck

Hanno Böck commited on 2023-03-01 12:05:58
Zeige 1 geänderte Dateien mit 6 Einfügungen und 2 Löschungen.

... ...
@@ -207,10 +207,14 @@ function get_domain_auto_records($domainname)
207 207
 }
208 208
 
209 209
 
210
-function warn_autorecord_collission($hostname, $domain, $type)
210
+function warn_autorecord_collission($hostname, $domain, $type, $data)
211 211
 {
212 212
     $autorecords = get_domain_auto_records($domain);
213 213
     foreach ($autorecords as $ar) {
214
+        if (!str_starts_with($data, "v=spf1") && $hostname == null) {
215
+            // Spezialfall SPF-Record
216
+            continue;
217
+        }
214 218
         if ($ar['hostname'] == $hostname && $ar['type'] == $type) {
215 219
             warning('Sie haben einen DNS-Record angelegt, für den bisher ein automatisch erzeuger Record vorhanden war. Ihr neuer Eintrag wird den bisherigen ersetzen. Bitte haben Sie einen Moment Geduld und laden Sie diese Seite in wenigen Minuten neu. Der automatisch erzeute Record sollte dann verschwunden sein.');
216 220
             break;
... ...
@@ -245,7 +249,7 @@ function save_dns_record($id, $record)
245 249
     if ($record['ttl'] &&  (int) $record['ttl'] < 1) {
246 250
         system_failure('Fehler bei TTL');
247 251
     }
248
-    warn_autorecord_collission($record['hostname'], $dom->fqdn, $record['type']);
252
+    warn_autorecord_collission($record['hostname'], $dom->fqdn, $record['type'], $record['data']);
249 253
     switch ($record['type']) {
250 254
         case 'a':
251 255
             if ($record['dyndns']) {
252 256