From 3fa4439583c61c28737848cbce7e02b6ebadad5a Mon Sep 17 00:00:00 2001
From: Florian Schaal <florian@schaal-24.de>
Date: Sat, 27 Jun 2015 05:18:53 -0400
Subject: [PATCH] FS#3526 - Add option to disable BIND zone check (the intention for the feature request was more to hide log-messages and not to disable the named-checkzone-call)

---
 interface/web/admin/lib/lang/ar_server_config.lng        |    1 +
 interface/web/admin/lib/lang/es_server_config.lng        |    1 +
 install/tpl/server.ini.master                            |    1 +
 interface/web/admin/lib/lang/tr_server_config.lng        |    1 +
 interface/web/admin/form/server_config.tform.php         |    6 ++++++
 interface/web/admin/lib/lang/de_server_config.lng        |    1 +
 interface/web/admin/lib/lang/nl_server_config.lng        |    1 +
 interface/web/admin/lib/lang/hu_server_config.lng        |    1 +
 interface/web/admin/lib/lang/pl_server_config.lng        |    1 +
 interface/web/admin/lib/lang/ru_server_config.lng        |    1 +
 interface/web/admin/lib/lang/el_server_config.lng        |    1 +
 interface/web/admin/templates/server_config_dns_edit.htm |    6 ++++--
 interface/web/admin/lib/lang/ro_server_config.lng        |    1 +
 interface/web/admin/lib/lang/br_server_config.lng        |    1 +
 interface/web/admin/lib/lang/hr_server_config.lng        |    1 +
 server/plugins-available/bind_plugin.inc.php             |    6 +++++-
 interface/web/admin/lib/lang/fr_server_config.lng        |    1 +
 interface/web/admin/lib/lang/fi_server_config.lng        |    1 +
 interface/web/admin/lib/lang/se_server_config.lng        |    1 +
 interface/web/admin/lib/lang/en_server_config.lng        |    1 +
 interface/web/admin/lib/lang/sk_server_config.lng        |    1 +
 interface/web/admin/lib/lang/cz_server_config.lng        |    1 +
 interface/web/admin/lib/lang/it_server_config.lng        |    1 +
 interface/web/admin/lib/lang/id_server_config.lng        |    1 +
 interface/web/admin/lib/lang/ja_server_config.lng        |    1 +
 interface/web/admin/lib/lang/pt_server_config.lng        |    1 +
 interface/web/admin/lib/lang/bg_server_config.lng        |    1 +
 27 files changed, 39 insertions(+), 3 deletions(-)

diff --git a/install/tpl/server.ini.master b/install/tpl/server.ini.master
index ec7fac8..f521cab 100644
--- a/install/tpl/server.ini.master
+++ b/install/tpl/server.ini.master
@@ -115,6 +115,7 @@
 bind_zonefiles_dir=/etc/bind
 named_conf_path=/etc/bind/named.conf
 named_conf_local_path=/etc/bind/named.conf.local
+disable_bind_log=n
 
 [fastcgi]
 fastcgi_starter_path=/var/www/php-fcgi-scripts/[system_user]/
diff --git a/interface/web/admin/form/server_config.tform.php b/interface/web/admin/form/server_config.tform.php
index a03636a..6b00e18 100644
--- a/interface/web/admin/form/server_config.tform.php
+++ b/interface/web/admin/form/server_config.tform.php
@@ -1204,6 +1204,12 @@
 			'width' => '40',
 			'maxlength' => '255'
 		),
+		'disable_bind_log' => array (
+			'datatype' => 'VARCHAR',
+			'formtype' => 'CHECKBOX',
+			'default' => 'n',
+			'value' => array(0 => 'n', 1 => 'y')
+		),
 		//#################################
 		// ENDE Datatable fields
 		//#################################
diff --git a/interface/web/admin/lib/lang/ar_server_config.lng b/interface/web/admin/lib/lang/ar_server_config.lng
index b03eaeb..e2f2db4 100644
--- a/interface/web/admin/lib/lang/ar_server_config.lng
+++ b/interface/web/admin/lib/lang/ar_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/bg_server_config.lng b/interface/web/admin/lib/lang/bg_server_config.lng
index 10fbc0b..4365d91 100644
--- a/interface/web/admin/lib/lang/bg_server_config.lng
+++ b/interface/web/admin/lib/lang/bg_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/br_server_config.lng b/interface/web/admin/lib/lang/br_server_config.lng
index 8946db1..e34e4ff 100644
--- a/interface/web/admin/lib/lang/br_server_config.lng
+++ b/interface/web/admin/lib/lang/br_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/cz_server_config.lng b/interface/web/admin/lib/lang/cz_server_config.lng
index c5a3dbc..8df2dbe 100644
--- a/interface/web/admin/lib/lang/cz_server_config.lng
+++ b/interface/web/admin/lib/lang/cz_server_config.lng
@@ -252,5 +252,6 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
 
diff --git a/interface/web/admin/lib/lang/de_server_config.lng b/interface/web/admin/lib/lang/de_server_config.lng
index 336cea8..aa448d8 100644
--- a/interface/web/admin/lib/lang/de_server_config.lng
+++ b/interface/web/admin/lib/lang/de_server_config.lng
@@ -265,4 +265,5 @@
 $wb['php_ini_check_minutes_info_txt'] = '0 = keine Prüfung';
 $wb['php_handler_txt'] = 'Standard-PHP-Handler';
 $wb['enable_spdy_txt'] = 'Stellt SPDY zur Verfügung';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/el_server_config.lng b/interface/web/admin/lib/lang/el_server_config.lng
index ca7cf2b..2cef4ed 100644
--- a/interface/web/admin/lib/lang/el_server_config.lng
+++ b/interface/web/admin/lib/lang/el_server_config.lng
@@ -249,4 +249,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/en_server_config.lng b/interface/web/admin/lib/lang/en_server_config.lng
index 2628abf..b5e4237 100644
--- a/interface/web/admin/lib/lang/en_server_config.lng
+++ b/interface/web/admin/lib/lang/en_server_config.lng
@@ -280,4 +280,5 @@
 $wb['xmpp_port_https_txt'] = 'HTTPS';
 $wb['xmpp_port_pastebin_txt'] = 'Pastebin';
 $wb['xmpp_port_bosh_txt'] = 'BOSH';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/es_server_config.lng b/interface/web/admin/lib/lang/es_server_config.lng
index 1c91d0d..a62b3f6 100644
--- a/interface/web/admin/lib/lang/es_server_config.lng
+++ b/interface/web/admin/lib/lang/es_server_config.lng
@@ -252,4 +252,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/fi_server_config.lng b/interface/web/admin/lib/lang/fi_server_config.lng
index 8ece953..f4f8856 100755
--- a/interface/web/admin/lib/lang/fi_server_config.lng
+++ b/interface/web/admin/lib/lang/fi_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/fr_server_config.lng b/interface/web/admin/lib/lang/fr_server_config.lng
index d566538..0ceb4af 100644
--- a/interface/web/admin/lib/lang/fr_server_config.lng
+++ b/interface/web/admin/lib/lang/fr_server_config.lng
@@ -251,5 +251,6 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
 
diff --git a/interface/web/admin/lib/lang/hr_server_config.lng b/interface/web/admin/lib/lang/hr_server_config.lng
index 4a73d3f..eaf7fb6 100644
--- a/interface/web/admin/lib/lang/hr_server_config.lng
+++ b/interface/web/admin/lib/lang/hr_server_config.lng
@@ -255,6 +255,7 @@
 $wb['crontab_dir_error_regex'] = 'Neispravan crontab direktorij.';
 $wb['cron_wget_error_regex'] = 'Neispravna cron wget putanja.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
 
 
diff --git a/interface/web/admin/lib/lang/hu_server_config.lng b/interface/web/admin/lib/lang/hu_server_config.lng
index b29b744..58b9524 100644
--- a/interface/web/admin/lib/lang/hu_server_config.lng
+++ b/interface/web/admin/lib/lang/hu_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/id_server_config.lng b/interface/web/admin/lib/lang/id_server_config.lng
index 930a58c..5f89667 100644
--- a/interface/web/admin/lib/lang/id_server_config.lng
+++ b/interface/web/admin/lib/lang/id_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/it_server_config.lng b/interface/web/admin/lib/lang/it_server_config.lng
index cba103f..c3d435b 100644
--- a/interface/web/admin/lib/lang/it_server_config.lng
+++ b/interface/web/admin/lib/lang/it_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/ja_server_config.lng b/interface/web/admin/lib/lang/ja_server_config.lng
index 37fb09a..3f3c639 100644
--- a/interface/web/admin/lib/lang/ja_server_config.lng
+++ b/interface/web/admin/lib/lang/ja_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/nl_server_config.lng b/interface/web/admin/lib/lang/nl_server_config.lng
index 44eea44..e9c32b5 100644
--- a/interface/web/admin/lib/lang/nl_server_config.lng
+++ b/interface/web/admin/lib/lang/nl_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/pl_server_config.lng b/interface/web/admin/lib/lang/pl_server_config.lng
index 5e17c41..9c55a4f 100644
--- a/interface/web/admin/lib/lang/pl_server_config.lng
+++ b/interface/web/admin/lib/lang/pl_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/pt_server_config.lng b/interface/web/admin/lib/lang/pt_server_config.lng
index adf7085..712d15a 100644
--- a/interface/web/admin/lib/lang/pt_server_config.lng
+++ b/interface/web/admin/lib/lang/pt_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/ro_server_config.lng b/interface/web/admin/lib/lang/ro_server_config.lng
index a7ab9bc..d6d950f 100644
--- a/interface/web/admin/lib/lang/ro_server_config.lng
+++ b/interface/web/admin/lib/lang/ro_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/ru_server_config.lng b/interface/web/admin/lib/lang/ru_server_config.lng
index 6a4080a..1acfb05 100644
--- a/interface/web/admin/lib/lang/ru_server_config.lng
+++ b/interface/web/admin/lib/lang/ru_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/se_server_config.lng b/interface/web/admin/lib/lang/se_server_config.lng
index 5818cfa..baf79af 100644
--- a/interface/web/admin/lib/lang/se_server_config.lng
+++ b/interface/web/admin/lib/lang/se_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/sk_server_config.lng b/interface/web/admin/lib/lang/sk_server_config.lng
index 392664b..1e8ae4d 100644
--- a/interface/web/admin/lib/lang/sk_server_config.lng
+++ b/interface/web/admin/lib/lang/sk_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/lib/lang/tr_server_config.lng b/interface/web/admin/lib/lang/tr_server_config.lng
index 60a24ee..2e7a7df 100644
--- a/interface/web/admin/lib/lang/tr_server_config.lng
+++ b/interface/web/admin/lib/lang/tr_server_config.lng
@@ -254,4 +254,5 @@
 $wb['crontab_dir_error_regex'] = 'Invalid crontab directory.';
 $wb['cron_wget_error_regex'] = 'Invalid cron wget path.';
 $wb['network_filesystem_txt'] = 'Network Filesystem';
+$wb["disable_bind_log_txt"] = "Disable bind9 messages for Loglevel WARN";
 ?>
diff --git a/interface/web/admin/templates/server_config_dns_edit.htm b/interface/web/admin/templates/server_config_dns_edit.htm
index 19f020a..b2b7966 100644
--- a/interface/web/admin/templates/server_config_dns_edit.htm
+++ b/interface/web/admin/templates/server_config_dns_edit.htm
@@ -20,11 +20,13 @@
             <div class="form-group">
                 <label for="named_conf_local_path" class="col-sm-3 control-label">{tmpl_var name='named_conf_local_path_txt'}</label>
                 <div class="col-sm-9"><input type="text" name="named_conf_local_path" id="named_conf_local_path" value="{tmpl_var name='named_conf_local_path'}" class="form-control" /></div></div>
-        
+			<div class="form-group">
+				<label for="disable_bind_log" class="col-sm-3 control-label">{tmpl_var name='disable_bind_log_txt'}</label>
+				<div class="col-sm-9">{tmpl_var name='disable_bind_log'}</div></div>
             
         <input type="hidden" name="id" value="{tmpl_var name='id'}">
             
         <div class="clear"><div class="right">
             <button class="btn btn-default formbutton-success" type="button" value="{tmpl_var name='btn_save_txt'}" data-submit-form="pageForm" data-form-action="admin/server_config_edit.php">{tmpl_var name='btn_save_txt'}</button>
             <button class="btn btn-default formbutton-default" type="button" value="{tmpl_var name='btn_cancel_txt'}" data-load-content="admin/server_config_list.php">{tmpl_var name='btn_cancel_txt'}</button>
-        </div></div>
\ No newline at end of file
+        </div></div>
diff --git a/server/plugins-available/bind_plugin.inc.php b/server/plugins-available/bind_plugin.inc.php
index bb65eef..c538cb9 100644
--- a/server/plugins-available/bind_plugin.inc.php
+++ b/server/plugins-available/bind_plugin.inc.php
@@ -133,7 +133,11 @@
 			if($return_status === 0) {
 				$app->log("Writing BIND domain file: ".$filename, LOGLEVEL_DEBUG);
 			} else {
-				$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), LOGLEVEL_WARN);
+				if($dns_config['disable_bind_log'] === 'y') {
+					$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), LOGLEVEL_DEBUG);
+				} else {
+					$app->log("Writing BIND domain file failed: ".$filename." ".implode(' ', $out), LOGLEVEL_WARN);
+				}
 				rename($filename, $filename.'.err');
 			}
 			unset($tpl);

--
Gitblit v1.9.1