Bestätige eine Domain ohne weiteres, wenn die DNS-Server auf uns gesetzt sind.
Bernd Wurst

Bernd Wurst commited on 2018-02-20 11:35:38
Zeige 2 geänderte Dateien mit 34 Einfügungen und 3 Löschungen.

... ...
@@ -120,7 +120,8 @@ function create_domain_secret($dom) {
120 120
     return $secret;
121 121
 }
122 122
 
123
-function get_txt_record($hostname, $domainname, $tld) {
123
+
124
+function get_auth_dns($domainname, $tld) {
124 125
   $domain=idn_to_ascii($domainname.".".$tld, 0, INTL_IDNA_VARIANT_UTS46);
125 126
 
126 127
   $resp = shell_exec('dig @a.root-servers.net. +noall +authority -t ns '.$tld.'.');
... ...
@@ -146,11 +147,36 @@ function get_txt_record($hostname, $domainname, $tld) {
146 147
           $NS_IP = preg_replace("/^.*\\sIN\\s+A\\s+(\\S+)$/", '\1', $l);
147 148
       }
148 149
   }
150
+  return array("$NS" => $NS_IP);
151
+}
152
+
149 153
 
150
-  if ($NS_IP) {
151
-      $NS = $NS_IP;
154
+function has_own_ns($domainname, $tld)
155
+{
156
+  $nsdata = get_auth_dns($domainname, $tld);
157
+  $NS = NULL;
158
+  foreach ($nsdata as $host => $ip) {
159
+      $NS=$host;
160
+  }
161
+  DEBUG($NS);
162
+  if (in_array($NS, array('ns1.schokokeks-dns.de.', 'ns2.schokokeks-dns.de.', 'ns3.schokokeks-dns.de.'))) {
163
+      DEBUG('Domain hat unsere DNS-Server!');
164
+      return true;
165
+  }
166
+  return false;
152 167
 }
153 168
 
169
+
170
+function get_txt_record($hostname, $domainname, $tld) {
171
+  $domain=idn_to_ascii($domainname.".".$tld, 0, INTL_IDNA_VARIANT_UTS46);
172
+  $nsdata = get_auth_dns($domainname, $tld);
173
+  $NS = NULL;
174
+  foreach ($nsdata as $host => $ip) {
175
+      $NS = $host;
176
+      if ($ip) {
177
+          $NS = $ip;
178
+      }
179
+  }
154 180
   DEBUG('dig @'.$NS.' +short -t txt '.$hostname.'.'.$domain.'.');
155 181
   $resp = shell_exec('dig @'.$NS.' +short -t txt '.$hostname.'.'.$domain.'.');
156 182
   $TXT = trim($resp, "\n \"");
... ...
@@ -34,6 +34,11 @@ if ($dom->mailserver_lock === 0) {
34 34
 if ($dom->provider == 'terions') {
35 35
     system_failure("Diese Domain ist bereits über uns registriert und sollte schon freigeschaltet sein. Wenden Sie sich im Zweifel bitte an den Support.");
36 36
 }
37
+if (has_own_ns($dom->domainname, $dom->tld)) {
38
+    unset_mailserver_lock($dom);
39
+    success_msg("Die Domain {$dom->fqdn} wurde erfolgreich bestätigt und kann nun in vollem Umfang verwendet werden.");
40
+    redirect("domains");
41
+}
37 42
 if (!$dom->secret) {
38 43
     create_domain_secret($dom);
39 44
 }
40 45