From 5a990b1da97156f1b73c79db80725f6574883f33 Mon Sep 17 00:00:00 2001 From: Florian Schaal <florian@schaal-24.de> Date: Tue, 17 Feb 2015 09:15:59 -0500 Subject: [PATCH] resync-tool - better performance for dns-resync --- interface/web/tools/resync.php | 23 ++++++++++++++++++----- 1 files changed, 18 insertions(+), 5 deletions(-) diff --git a/interface/web/tools/resync.php b/interface/web/tools/resync.php old mode 100755 new mode 100644 index 8e3b32f..35279b1 --- a/interface/web/tools/resync.php +++ b/interface/web/tools/resync.php @@ -87,14 +87,17 @@ 'mail_domain' => array ( 'index_field' => 'domain_id', 'server_type' => 'mail', + 'server_id' => $server_id, ), 'mail_mailinglist' => array ( 'index_field' => 'mailinglist_id', 'server_type' => 'mail', + 'server_id' => $server_id, ), 'mail_user' => array ( 'index_field' => 'mailuser_id', 'server_type' => 'mail', + 'server_id' => $server_id, ), ); } @@ -103,6 +106,7 @@ 'mail_access' => array ( 'index_field' => 'access_id', 'server_type' => 'mail', + 'server_id' => $server_id, ), 'mail_content_filter' => array ( 'index_field' => 'content_filter_id', @@ -119,18 +123,22 @@ 'web_domain' => array ( 'index_field' => 'domain_id', 'server_type' => 'web', + 'server_id' => $server_id, ), 'shell_user' => array ( 'index_field' => 'shell_user_id', 'server_type' => 'web', + 'server_id' => $server_id, ), 'cron' => array ( 'index_field' => 'id', 'server_type' => 'cron', + 'server_id' => $server_id, ), 'ftp_user' => array ( 'index_field' => 'ftp_user_id', 'server_type' => 'web', + 'server_id' => $server_id, ), ); } @@ -139,6 +147,7 @@ 'dns_soa' => array ( 'index_field' => 'id', 'server_type' => 'dns', + 'server_id' => $server_id, ), ); } @@ -147,6 +156,7 @@ 'webdav_user' => array ( 'index_field' => 'webdav_user_id', 'server_type' => 'file', + 'server_id' => $server_id, ), ); } @@ -155,6 +165,7 @@ 'web_database' => array ( 'index_field' => 'web_database_id', 'server_type' => 'db', + 'server_id' => $server_id, ), ); } @@ -163,6 +174,7 @@ 'openvz_vm' => array ( 'index_field' => 'vm_id', 'server_type' => 'vserver', + 'server_id' => $server_id, ), ); } @@ -170,7 +182,8 @@ //* firewall $array_out = array(); foreach($server_data as $db_table => $data) { - $records = $app->db->queryAllRecords("SELECT * FROM $db_table WHERE server_id = ?", $server_id); + $sql = @(isset($data['server_id']))?"SELECT * FROM $db_table WHERE server_id = $server_id":"SELECT * FROM $db_table";; + $records = $app->db->queryAllRecords($sql); if (!empty($records)) array_push($array_out, $db_table); } @@ -359,7 +372,7 @@ } //* fetch values during do_resync - private function query_server($db_table, $server_id, $server_type, $active=true) { + private function query_server($db_table, $server_id, $server_type, $active=true, $opt='') { global $app; $server_name = array(); @@ -376,7 +389,7 @@ unset($temp); if ( isset($temp_id) ) $server_id = rtrim($temp_id,','); - $sql = "SELECT * FROM $db_table WHERE server_id IN (".$server_id.")"; + $sql = "SELECT * FROM $db_table WHERE server_id IN (".$server_id.") ".$opt; if ($active) $sql .= " AND active = 'y'"; $records = $app->db->queryAllRecords($sql); @@ -491,7 +504,7 @@ $msg .= '<b>'.$app->tform->wordbook['do_dns_txt'].'</b><br>'; if(is_array($soa_records) && !empty($soa_records)) foreach($soa_records as $soa_rec) { - $temp = $this->query_server('dns_rr', $soa_rec['server_id'], $server_type); + $temp = $this->query_server('dns_rr', $soa_rec['server_id'], 'dns', true, "AND zone = ".$app->functions->intval($soa_rec['id'])); $rr_records = $temp[0]; if(!empty($rr_records)) { foreach($rr_records as $rec) { @@ -503,7 +516,7 @@ } $new_serial = $app->validate_dns->increase_serial($soa_rec['serial']); $app->db->datalogUpdate('dns_soa', "serial = '".$new_serial."'", 'id', $soa_rec['id']); - $msg .= '['.$server_name[$soa_rec['server_id']].'] '.$soa_rec['origin'].'<br>'; + $msg .= '['.$server_name[$soa_rec['server_id']].'] '.$soa_rec['origin'].' ('.count($rr_records).')<br>'; } else $msg .= $app->tform->wordbook['no_results_txt'].'<br>'; -- Gitblit v1.9.1