Fix DNS validation and error handling

This commit is contained in:
Andras Bacsai
2024-02-07 14:59:33 +01:00
parent 9e1a7d5d9a
commit 9a899deeb8
2 changed files with 7 additions and 5 deletions

View File

@@ -243,9 +243,11 @@ class General extends Component
return str($domain)->trim()->lower(); return str($domain)->trim()->lower();
}); });
$domains = $domains->unique(); $domains = $domains->unique();
foreach ($domains as $domain) { if ($this->application->additional_servers->count() === 0) {
if (!validate_dns_entry($domain, $this->application->destination->server)) { foreach ($domains as $domain) {
$showToaster && $this->dispatch('error', "Validating DNS ($domain) failed.","Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='text-white underline' href='https://coolify.io/docs/dns-settings'>documentation</a> for further help."); if (!validate_dns_entry($domain, $this->application->destination->server)) {
$showToaster && $this->dispatch('error', "Validating DNS ($domain) failed.","Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='text-white underline' href='https://coolify.io/docs/dns-settings'>documentation</a> for further help.");
}
} }
} }
check_fqdn_usage($this->application); check_fqdn_usage($this->application);

View File

@@ -104,7 +104,7 @@ function handleError(?Throwable $error = null, ?Livewire\Component $livewire = n
ray($error); ray($error);
if ($error instanceof TooManyRequestsException) { if ($error instanceof TooManyRequestsException) {
if (isset($livewire)) { if (isset($livewire)) {
return $livewire->dispatch('error', "Too many requests.","Please try again in {$error->secondsUntilAvailable} seconds."); return $livewire->dispatch('error', "Too many requests.", "Please try again in {$error->secondsUntilAvailable} seconds.");
} }
return "Too many requests. Please try again in {$error->secondsUntilAvailable} seconds."; return "Too many requests. Please try again in {$error->secondsUntilAvailable} seconds.";
} }
@@ -1690,7 +1690,7 @@ function check_fqdn_usage(ServiceApplication|Application $own_resource)
$naked_domain = str($domain)->replace('http://', '')->replace('https://', '')->value(); $naked_domain = str($domain)->replace('http://', '')->replace('https://', '')->value();
if ($domains->contains($naked_domain)) { if ($domains->contains($naked_domain)) {
if ($app->uuid !== $own_resource->uuid) { if ($app->uuid !== $own_resource->uuid) {
throw new \RuntimeException("Domain $naked_domain is already in use by another resource."); throw new \RuntimeException("Domain $naked_domain is already in use by another resource:<br> {$app->name}.");
} }
} }
} }