From b553b2bf146cf20bd3ddfeba52ec5cc5b70a1da9 Mon Sep 17 00:00:00 2001
From: Marius Cramer <m.cramer@pixcept.de>
Date: Thu, 27 Nov 2014 02:31:46 -0500
Subject: [PATCH] Merge remote-tracking branch 'ispc/master' into new-layout-3.1
---
server/lib/classes/cron.d/500-backup_mail.inc.php | 38 +++++++++++++++-----------------------
1 files changed, 15 insertions(+), 23 deletions(-)
diff --git a/server/lib/classes/cron.d/500-backup_mail.inc.php b/server/lib/classes/cron.d/500-backup_mail.inc.php
index 8740c55..2473afe 100644
--- a/server/lib/classes/cron.d/500-backup_mail.inc.php
+++ b/server/lib/classes/cron.d/500-backup_mail.inc.php
@@ -59,19 +59,11 @@
if($backup_mode == '') $backup_mode = 'userzip';
if($backup_dir != '') {
- //* mount backup directory, if necessary
$run_backups = true;
- $server_config['backup_dir_mount_cmd'] = trim($server_config['backup_dir_mount_cmd']);
- if($server_config['backup_dir_is_mount'] == 'y' && $server_config['backup_dir_mount_cmd'] != ''){
- if(!$app->system->is_mounted($backup_dir)){
- exec(escapeshellcmd($server_config['backup_dir_mount_cmd']));
- sleep(1);
- if(!$app->system->is_mounted($backup_dir)) $run_backups = false;
- }
- }
+ //* mount backup directory, if necessary
+ if( $server_config['backup_dir_is_mount'] == 'y' && !$app->system->mount_backup_dir($backup_dir) ) $run_backups = false;
- $sql = "SELECT * FROM mail_user WHERE server_id = '".intval($conf['server_id'])."' AND maildir <> ''";
- $records = $app->db->queryAllRecords($sql);
+ $records = $app->db->queryAllRecords("SELECT * FROM mail_user WHERE server_id = ? AND maildir <> ''", intval($conf['server_id']));
if(is_array($records) && $run_backups) {
if(!is_dir($backup_dir)) {
@@ -83,10 +75,10 @@
foreach($records as $rec) {
//* Do the mailbox backup
if($rec['backup_interval'] == 'daily' or ($rec['backup_interval'] == 'weekly' && date('w') == 0) or ($rec['backup_interval'] == 'monthly' && date('d') == '01')) {
- $email = $rec['email'][1];
- $sql="SELECT * FROM mail_domain WHERE domain = ?" . $app->db->quote(explode("@",$email))."'";
+ $email = $rec['email'];
+ $email=explode("@",$email)[1];
+ $domain_rec=$app->db->queryOneRecord("SELECT * FROM mail_domain WHERE domain = ?", $email);
unset($email);
- $domain_rec=$app->db->queryOneRecord($sql);
$mail_backup_dir = $backup_dir.'/mail'.$domain_rec['domain_id'];
if(!is_dir($mail_backup_dir)) mkdir($mail_backup_dir, 0750);
@@ -116,9 +108,9 @@
chgrp($mail_backup_dir.'/'.$mail_backup_file, 'root');
chmod($mail_backup_dir.'/'.$mail_backup_file, 0640);
/* Insert mail backup record in database */
- $sql = "INSERT INTO mail_backup (server_id,parent_domain_id,mailuser_id,backup_mode,tstamp,filename,filesize) VALUES (".$conf['server_id'].",".$domain_rec['domain_id'].",".$rec['mailuser_id'].",'".$backup_mode."',".time().",'".$app->db->quote($mail_backup_file)."','".$app->functions->formatBytes(filesize($mail_backup_dir.'/'.$mail_backup_file))."')";
- $app->db->query($sql);
- if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
+ $sql = "INSERT INTO mail_backup (server_id, parent_domain_id, mailuser_id, backup_mode, tstamp, filename, filesize) VALUES (?, ?, ?, ?, ?, ?, ?)";
+ $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id'], $backup_mode, time(), $mail_backup_file, $app->functions->formatBytes(filesize($mail_backup_dir.'/'.$mail_backup_file)));
+ if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id'], $backup_mode, time(), $mail_backup_file, $app->functions->formatBytes(filesize($mail_backup_dir.'/'.$mail_backup_file)));
} else {
/* Backup failed - remove archive */
if(is_file($mail_backup_dir.'/'.$mail_backup_file)) unlink($mail_backup_dir.'/'.$mail_backup_file);
@@ -138,9 +130,9 @@
for ($n = $backup_copies; $n <= 10; $n++) {
if(isset($files[$n]) && is_file($mail_backup_dir.'/'.$files[$n])) {
unlink($mail_backup_dir.'/'.$files[$n]);
- $sql = "DELETE FROM mail_backup WHERE server_id = ".$conf['server_id']." AND parent_domain_id = ".$domain_rec['domain_id']." AND filename = '".$app->db->quote($files[$n])."'";
- $app->db->query($sql);
- if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
+ $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND filename = ?";
+ $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $files[$n]);
+ if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $files[$n]);
}
}
unset($files);
@@ -149,9 +141,9 @@
/* Remove inactive backups */
if($rec['backup_interval'] == 'none') {
/* remove backups from db */
- $sql = "DELETE FROM mail_backup WHERE server_id = ".$conf['server_id']." AND parent_domain_id = ".$domain_rec['domain_id']." AND mailuser_id = ".$rec['mailuser_id'];
- $app->db->query($sql);
- if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql);
+ $sql = "DELETE FROM mail_backup WHERE server_id = ? AND parent_domain_id = ? AND mailuser_id = ?";
+ $app->db->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id']);
+ if($app->db->dbHost != $app->dbmaster->dbHost) $app->dbmaster->query($sql, $conf['server_id'], $domain_rec['domain_id'], $rec['mailuser_id']);
/* remove archives */
$mail_backup_dir = $backup_dir.'/mail'.$rec['domain_id'];
$mail_backup_file = 'mail'.$rec['mailuser_id'].'_*';
--
Gitblit v1.9.1