diff --git a/bureau/admin/dom_edit.php b/bureau/admin/dom_edit.php index 7c7c692c..7cd4f44a 100644 --- a/bureau/admin/dom_edit.php +++ b/bureau/admin/dom_edit.php @@ -108,6 +108,10 @@ if ($r['dns_action']=='UPDATE') {?> die(); } +if (! empty($r['dns_result']) && $r['dns_result'] != '0') { + echo '
'; __($r['dns_result']); echo '
'; +} + ?> diff --git a/bureau/class/class_system_bind.php b/bureau/class/class_system_bind.php index 73599b91..916199a7 100644 --- a/bureau/class/class_system_bind.php +++ b/bureau/class/class_system_bind.php @@ -279,7 +279,7 @@ class system_bind { // return true if zone is locked function is_locked($domain) { - preg_match_all("/(\;\s*LOCKED:YES)/i", $this->get_zone($domain), $output_array); + preg_match_all("/(\;\s*LOCKED:YES)/i", $this->get_zone_file($domain), $output_array); if (isset($output_array[1][0]) && !empty($output_array[1][0])) { return true; } @@ -287,10 +287,14 @@ class system_bind { } function save_zone($domain) { - global $db; + global $db, $dom; // Do not save if the zone is LOCKED - if ( $this->is_locked($domain)) return false; + if ( $this->is_locked($domain)) { + $dom->set_dns_result($domain,"The zone file of this domain is locked"); + $dom->set_dns_action($domain, 'OK'); + return false; + } // Save file, and apply chmod/chown $file=$this->get_zone_file_uri($domain); @@ -298,7 +302,7 @@ class system_bind { chown($file, 'bind'); chmod($file, 0640); - $db->query("UPDATE domaines SET dns_action = 'OK' WHERE domaine = '".mysql_escape_string($domain)."';"); + $dom->set_dns_action($domain, 'OK'); return true; // fixme add tests } diff --git a/bureau/class/m_dom.php b/bureau/class/m_dom.php index 7a4a5586..5f9a104e 100644 --- a/bureau/class/m_dom.php +++ b/bureau/class/m_dom.php @@ -544,7 +544,7 @@ class m_dom { } $db->query("update sub_domaines set enable='$status' where id = '".intval($sub_id)."';"); - $db->query("UPDATE domaines SET dns_action='UPDATE' WHERE domaine='".mysql_escape_string($jh['domain'])."';"); + $this->set_dns_action($jh['domain'], 'UPDATE'); return true; } @@ -577,7 +577,7 @@ class m_dom { $err->log("dom","del_domaini_canl",$dom); $dom=strtolower($dom); $db->query("UPDATE sub_domaines SET web_action='UPDATE' WHERE domaine='$dom';"); - $db->query("UPDATE domaines SET dns_action='UPDATE' WHERE domaine='$dom';"); + $this->set_dns_action($dom, 'UPDATE'); # TODO : some work with domain sensitive classes @@ -617,7 +617,7 @@ class m_dom { // Now mark the domain for deletion: $db->query("UPDATE sub_domaines SET web_action='DELETE' WHERE domaine='$dom';"); - $db->query("UPDATE domaines SET dns_action='DELETE' WHERE domaine='$dom';"); + $this->set_dns_action($dom, 'DELETE'); return true; } @@ -2027,6 +2027,18 @@ function generate_apacheconf($p = null) { return true; } + function set_dns_action($domain, $dns_action) { + global $db; + $db->query("UPDATE domaines SET dns_action='".mysql_escape_string($dns_action)."' WHERE domaine='".mysql_escape_string($domain)."'; "); + return true; + } + + function set_dns_result($domain, $dns_result) { + global $db; + $db->query("UPDATE domaines SET dns_result='".mysql_escape_string($dns_result)."' WHERE domaine='".mysql_escape_string($domain)."'; "); + return true; + } + /* ----------------------------------------------------------------- */ /** hook function called by AlternC-upnp to know which open * tcp or udp ports this class requires or suggests