diff --git a/actions/admin/settings/160.nameserver.php b/actions/admin/settings/160.nameserver.php index 463f413a..625089b7 100644 --- a/actions/admin/settings/160.nameserver.php +++ b/actions/admin/settings/160.nameserver.php @@ -99,6 +99,19 @@ return array( 'default' => '', 'save_method' => 'storeSettingField' ), + 'system_powerdns_mode' => array( + 'label' => $lng['serversettings']['powerdns_mode'], + 'settinggroup' => 'system', + 'varname' => 'powerdns_mode', + 'type' => 'option', + 'default' => 'Native', + 'option_mode' => 'one', + 'option_options' => array( + 'Native' => 'Native', + 'Master' => 'Master' + ), + 'save_method' => 'storeSettingField' + ), 'system_dns_createmailentry' => array( 'label' => $lng['serversettings']['mail_also_with_mxservers'], 'settinggroup' => 'system', diff --git a/install/froxlor.sql b/install/froxlor.sql index 3f793925..487f1208 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -611,6 +611,7 @@ opcache.interned_strings_buffer'), ('system', 'documentroot_use_default_value', '0'), ('system', 'passwordcryptfunc', '3'), ('system', 'axfrservers', ''), + ('system', 'powerdns_mode', 'Native'), ('system', 'customer_ssl_path', '/etc/ssl/froxlor-custom/'), ('system', 'allow_error_report_admin', '1'), ('system', 'allow_error_report_customer', '0'), @@ -722,7 +723,7 @@ opcache.interned_strings_buffer'), ('panel', 'logo_overridetheme', '0'), ('panel', 'logo_overridecustom', '0'), ('panel', 'version', '0.10.27'), - ('panel', 'db_version', '202107300'); + ('panel', 'db_version', '202108180'); DROP TABLE IF EXISTS `panel_tasks`; diff --git a/install/updates/froxlor/0.10/update_0.10.inc.php b/install/updates/froxlor/0.10/update_0.10.inc.php index 0eb6d0e2..572b309d 100644 --- a/install/updates/froxlor/0.10/update_0.10.inc.php +++ b/install/updates/froxlor/0.10/update_0.10.inc.php @@ -914,3 +914,10 @@ if (\Froxlor\Froxlor::isDatabaseVersion('202107260')) { lastStepStatus(0); \Froxlor\Froxlor::updateToDbVersion('202107300'); } + +if (\Froxlor\Froxlor::isDatabaseVersion('202107300')) { + showUpdateStep("Adds the possibility to select the PowerDNS Operation Mode", true); + Settings::AddNew("system.powerdns_mode", 'Native'); + lastStepStatus(0); + \Froxlor\Froxlor::updateToDbVersion('202108180'); +} diff --git a/lib/Froxlor/Cron/Dns/PowerDNS.php b/lib/Froxlor/Cron/Dns/PowerDNS.php index fa0e8d69..39556b2e 100644 --- a/lib/Froxlor/Cron/Dns/PowerDNS.php +++ b/lib/Froxlor/Cron/Dns/PowerDNS.php @@ -1,6 +1,8 @@ (2016-) * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @package Cron - * + * */ class PowerDNS extends DnsBase { @@ -111,15 +113,16 @@ class PowerDNS extends DnsBase private function insertZone($domainname, $serial = 0) { - $ins_stmt = \Froxlor\Dns\PowerDNS::getDB()->prepare(" - INSERT INTO domains set `name` = :domainname, `notified_serial` = :serial, `type` = 'NATIVE' + $ins_stmt = \Froxlor\Dns\PowerDNS::getDB()->prepare(" + INSERT INTO domains set `name` = :domainname, `notified_serial` = :serial, `type` = :type "); - $ins_stmt->execute(array( - 'domainname' => $domainname, - 'serial' => $serial - )); - $lastid = \Froxlor\Dns\PowerDNS::getDB()->lastInsertId(); - return $lastid; + $ins_stmt->execute(array( + 'domainname' => $domainname, + 'serial' => $serial, + 'type' => strtoupper(Settings::Get('system.powerdns_mode')) + )); + $lastid = \Froxlor\Dns\PowerDNS::getDB()->lastInsertId(); + return $lastid;; } private function insertRecords($domainid = 0, $records = array(), $origin = "") diff --git a/lib/Froxlor/Froxlor.php b/lib/Froxlor/Froxlor.php index 6e5a7952..b121605b 100644 --- a/lib/Froxlor/Froxlor.php +++ b/lib/Froxlor/Froxlor.php @@ -10,7 +10,7 @@ final class Froxlor const VERSION = '0.10.27'; // Database version (YYYYMMDDC where C is a daily counter) - const DBVERSION = '202107300'; + const DBVERSION = '202108180'; // Distribution branding-tag (used for Debian etc.) const BRANDING = ''; diff --git a/lng/english.lng.php b/lng/english.lng.php index 1ebee0e6..51073260 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1596,6 +1596,8 @@ $lng['serversettings']['panel_allow_theme_change_admin'] = 'Allow admins to chan $lng['serversettings']['panel_allow_theme_change_customer'] = 'Allow customers to change the theme'; $lng['serversettings']['axfrservers']['title'] = 'AXFR servers'; $lng['serversettings']['axfrservers']['description'] = 'A comma separated list of IP addresses allowed to transfer (AXFR) dns zones.'; +$lng['serversettings']['powerdns_mode']['title'] = 'PowerDNS Operation Mode'; +$lng['serversettings']['powerdns_mode']['description'] = 'Select the PoweDNS mode: Native for no replication (Default) / Master if DNS replication is needed.'; $lng['panel']['ssleditor'] = 'SSL settings for this domain'; $lng['admin']['ipsandports']['ssl_paste_description'] = 'Paste your complete certificate content in the textbox'; $lng['admin']['ipsandports']['ssl_cert_file_content'] = 'Content of the ssl certificate'; diff --git a/lng/german.lng.php b/lng/german.lng.php index f0f2a6da..cb6d976d 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1320,6 +1320,8 @@ $lng['serversettings']['panel_allow_theme_change_admin'] = 'Erlaube Admins das T $lng['serversettings']['panel_allow_theme_change_customer'] = 'Erlaube Kunden das Theme zu wechseln'; $lng['serversettings']['axfrservers']['title'] = 'AXFR Server'; $lng['serversettings']['axfrservers']['description'] = 'Eine durch Kommas getrennte Liste von IP Adressen, die DNS-Zonen transferieren dürfen (AXFR).'; +$lng['serversettings']['powerdns_mode']['title'] = 'PowerDNS Operation Mode'; +$lng['serversettings']['powerdns_mode']['description'] = 'Wählen Sie den PowerDNS-Modus: Native für keine DNS-Replikation (Standard) / Master wenn eine DNS-Replikation benötigt wird.'; $lng['panel']['ssleditor'] = 'SSL-Einstellungen für diese Domain'; $lng['admin']['ipsandports']['ssl_paste_description'] = 'Bitte den Inhalt der Zertifikatsdatei in das Textfeld kopieren.'; $lng['admin']['ipsandports']['ssl_cert_file_content'] = 'Inhalt des SSL-Zertifikats (Certificate)';