Compare commits

...
Author SHA1 Message Date
HemachandarandGitHub 12b61afbc8 Merge branch '1.8.x' into ser-1112 2026-02-17 18:52:22 +05:30
HemachandarandGitHub 0b2fce2b04 Merge branch '1.8.x' into ser-1112 2026-02-17 17:31:47 +05:30
Hemachandar 3ec2478daf feedback 2026-02-17 14:23:14 +05:30
Hemachandar f206862293 Add array support for DNS A records 2026-02-17 13:49:28 +05:30
3 changed files with 17 additions and 11 deletions
@@ -56,7 +56,8 @@ class Get extends Action
$isCNAMEValid = !empty(System::getEnv('_APP_DOMAIN_TARGET_CNAME', '')) && $validator->isKnown() && !$validator->isTest();
$validator = new IP(IP::V4);
$isAValid = !empty(System::getEnv('_APP_DOMAIN_TARGET_A', '')) && ($validator->isValid(System::getEnv('_APP_DOMAIN_TARGET_A')));
$targetA = \explode(',', System::getEnv('_APP_DOMAIN_TARGET_A', ''))[0];
$isAValid = !empty($targetA) && ($validator->isValid($targetA));
$validator = new IP(IP::V6);
$isAAAAValid = !empty(System::getEnv('_APP_DOMAIN_TARGET_AAAA', '')) && $validator->isValid(System::getEnv('_APP_DOMAIN_TARGET_AAAA'));
@@ -74,7 +75,7 @@ class Get extends Action
$variables = new Document([
'_APP_DOMAIN_TARGET_CNAME' => System::getEnv('_APP_DOMAIN_TARGET_CNAME'),
'_APP_DOMAIN_TARGET_AAAA' => System::getEnv('_APP_DOMAIN_TARGET_AAAA'),
'_APP_DOMAIN_TARGET_A' => System::getEnv('_APP_DOMAIN_TARGET_A'),
'_APP_DOMAIN_TARGET_A' => $targetA,
'_APP_DOMAIN_TARGET_CAA' => '0 issue "' . System::getEnv('_APP_DOMAIN_TARGET_CAA') . '"',
'_APP_STORAGE_LIMIT' => +System::getEnv('_APP_STORAGE_LIMIT'),
'_APP_COMPUTE_BUILD_TIMEOUT' => +System::getEnv('_APP_COMPUTE_BUILD_TIMEOUT'),
+10 -6
View File
@@ -178,13 +178,17 @@ class Action extends PlatformAction
}
// Ensure at least one of CNAME/A/AAAA record points to our servers properly
$targetA = System::getEnv('_APP_DOMAIN_TARGET_A', '');
if ((new IP(IP::V4))->isValid($targetA)) {
$validator = new $dnsValidatorClass($targetA, Record::TYPE_A, $dnsServers);
$validators[] = $validator;
foreach (\explode(',', System::getEnv('_APP_DOMAIN_TARGET_A', '')) as $targetA) {
if (empty($targetA)) {
continue;
}
if ((new IP(IP::V4))->isValid($targetA)) {
$validator = new $dnsValidatorClass($targetA, Record::TYPE_A, $dnsServers);
$validators[] = $validator;
if (\is_null($mainValidator)) {
$mainValidator = $validator;
if (\is_null($mainValidator)) {
$mainValidator = $validator;
}
}
}
+4 -3
View File
@@ -63,10 +63,11 @@ class Doctor extends Action
}
$ipv4 = new IP(IP::V4);
if (!$ipv4->isValid(System::getEnv('_APP_DOMAIN_TARGET_A'))) {
Console::log('🔴 A record target is not valid (' . System::getEnv('_APP_DOMAIN_TARGET_A') . ')');
$targetA = \explode(',', System::getEnv('_APP_DOMAIN_TARGET_A', ''))[0];
if (!$ipv4->isValid($targetA)) {
Console::log('🔴 A record target is not valid (' . $targetA . ')');
} else {
Console::log('🟢 A record target is valid (' . System::getEnv('_APP_DOMAIN_TARGET_A') . ')');
Console::log('🟢 A record target is valid (' . $targetA . ')');
}
$ipv6 = new IP(IP::V6);