From d256ddfcbc29c41251197aa40c7e65c6f976d316 Mon Sep 17 00:00:00 2001 From: "Michael Kaufmann (d00p)" Date: Wed, 2 Jun 2010 10:08:01 +0000 Subject: [PATCH] - added possibility to let the cron create mail-specific A-records (mail, imap, pop3, smtp) even when MX-servers are given, fixes #242 --- actions/admin/settings/160.nameserver.php | 8 ++++++++ install/froxlor.sql | 3 ++- install/updates/froxlor/0.9/update_0.9.inc.php | 13 +++++++++++++ install/updates/preconfig/0.9/preconfig_0.9.inc.php | 9 +++++++++ lib/tables.inc.php | 2 +- lng/english.lng.php | 5 ++++- lng/german.lng.php | 3 +++ scripts/jobs/cron_tasks.inc.dns.10.bind.php | 11 +++++++++++ 8 files changed, 51 insertions(+), 3 deletions(-) diff --git a/actions/admin/settings/160.nameserver.php b/actions/admin/settings/160.nameserver.php index f998914d..bc38c69a 100644 --- a/actions/admin/settings/160.nameserver.php +++ b/actions/admin/settings/160.nameserver.php @@ -59,6 +59,14 @@ return array( 'default' => '', 'save_method' => 'storeSettingField', ), + 'system_dns_createmailentry' => array( + 'label' => $lng['serversettings']['mail_also_with_mxservers'], + 'settinggroup' => 'system', + 'varname' => 'dns_createmailentry', + 'type' => 'bool', + 'default' => false, + 'save_method' => 'storeSettingField' + ), 'system_defaultttl' => array( 'label' => $lng['serversettings']['defaultttl'], 'settinggroup' => 'system', diff --git a/install/froxlor.sql b/install/froxlor.sql index 5c6a4644..17e7dda2 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -451,7 +451,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (18, 'system', 'vmail_homedir', '/var/customers/mail/'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (19, 'system', 'bindconf_directory', '/etc/bind/'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (20, 'system', 'bindreload_command', '/etc/init.d/bind9 reload'); -INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.8'); +INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (22, 'panel', 'version', '0.9.9-svn1'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (23, 'system', 'hostname', 'SERVERNAME'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (24, 'login', 'maxloginattempts', '3'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (25, 'login', 'deactivatetime', '900'); @@ -570,6 +570,7 @@ INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) V INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (139, 'system', 'ftpserver', 'proftpd'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (140, 'customredirect', 'enabled', '1'); INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (141, 'customredirect', 'default', '1'); +INSERT INTO `panel_settings` (`settingid`, `settinggroup`, `varname`, `value`) VALUES (142, 'system', 'dns_createmailentry', '0'); # -------------------------------------------------------- diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 1d8885ff..c9e615dd 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -775,4 +775,17 @@ if(isFroxlorVersion('0.9.7')) updateToVersion('0.9.8'); } +if(isFroxlorVersion('0.9.8')) +{ + showUpdateStep("Updating from 0.9.8 to 0.9.9-svn1", false); + + $update_defdns_mailentry = isset($_POST['update_defdns_mailentry']) ? '1' : '0'; + + showUpdateStep("Adding new settings"); + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'dns_createmailentry', '".(int)$update_defdns_mailentry."');"); + lastStepStatus(0); + + updateToVersion('0.9.9-svn1'); +} + ?> diff --git a/install/updates/preconfig/0.9/preconfig_0.9.inc.php b/install/updates/preconfig/0.9/preconfig_0.9.inc.php index 9edc449d..607f864e 100644 --- a/install/updates/preconfig/0.9/preconfig_0.9.inc.php +++ b/install/updates/preconfig/0.9/preconfig_0.9.inc.php @@ -149,4 +149,13 @@ function parseAndOutputPreconfig(&$has_preconfig, &$return, $current_version) eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";"); } } + + if(versionInUpdate($current_version, '0.9.9-svn1')) + { + $has_preconfig = true; + $description = 'When entering MX servers to Froxlor there was no mail-, imap-, pop3- and smtp-"A record" created. You can now chose whether this should be done or not.'; + $question = 'Do you want these A-records to be created even with MX servers given?: '; + $question.= makeyesno('update_defdns_mailentry', '1', '0', '0'); + eval("\$return.=\"" . getTemplate("update/preconfigitem") . "\";"); + } } diff --git a/lib/tables.inc.php b/lib/tables.inc.php index 83e40c58..291f2e3f 100644 --- a/lib/tables.inc.php +++ b/lib/tables.inc.php @@ -72,7 +72,7 @@ define('PACKAGE_ENABLED', 2); // VERSION INFO -$version = '0.9.8'; +$version = '0.9.9-svn1'; $dbversion = '2'; $branding = ''; diff --git a/lng/english.lng.php b/lng/english.lng.php index 5521c2d0..7085b0c8 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1421,7 +1421,10 @@ $lng['redirect_desc']['rc_found'] = 'found'; $lng['redirect_desc']['rc_seeother'] = 'see other'; $lng['redirect_desc']['rc_tempred'] = 'temporary redirect'; -// ADDED UN FROXLOR 0.9.8 +// ADDED IN FROXLOR 0.9.8 $lng['error']['exception'] = '%s'; +// ADDED IN FROXLOR 0.9.9-svn1 +$lng['serversettings']['mail_also_with_mxservers'] = 'Create mail-, imap-, pop3- and smtp-"A record" also with MX-Servers set'; + ?> diff --git a/lng/german.lng.php b/lng/german.lng.php index f1cb09e6..f3203f6b 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1407,4 +1407,7 @@ $lng['tasks']['aps_task_upgrade'] = 'Upgrade eines oder mehrerer APS Pakete'; $lng['tasks']['aps_task_sysupdate'] = 'Aktualisiere alle APS Pakete'; $lng['tasks']['aps_task_sysdownload'] = 'Herunterladen neuer APS Pakete'; + +// ADDED IN FROXLOR 0.9.9-svn1 +$lng['serversettings']['mail_also_with_mxservers'] = 'Erstelle mail-, imap-, pop3- and smtp-"A Record" auch wenn MX-Server angegeben sind'; ?> diff --git a/scripts/jobs/cron_tasks.inc.dns.10.bind.php b/scripts/jobs/cron_tasks.inc.dns.10.bind.php index 641254ca..7de3a646 100644 --- a/scripts/jobs/cron_tasks.inc.dns.10.bind.php +++ b/scripts/jobs/cron_tasks.inc.dns.10.bind.php @@ -225,6 +225,17 @@ class bind { $zonefile.= '@ IN MX ' . trim($mxserver) . "\n"; } + + if($this->settings['system']['dns_createmailentry'] == '1') + { + $zonefile.= 'mail IN ' . $ip_a_record . "\n"; + if($domain['iswildcarddomain'] != '1') + { + $zonefile.= 'imap IN ' . $ip_a_record . "\n"; + $zonefile.= 'smtp IN ' . $ip_a_record . "\n"; + $zonefile.= 'pop3 IN ' . $ip_a_record . "\n"; + } + } } /*