diff --git a/server/lib/classes/cron.d/500-backup.inc.php b/server/lib/classes/cron.d/500-backup.inc.php index 68c5920579d0d323ab8719f2accac5876b6202f7..81f80643665369c2f510f702bb9202523ddfb087 100644 --- a/server/lib/classes/cron.d/500-backup.inc.php +++ b/server/lib/classes/cron.d/500-backup.inc.php @@ -314,6 +314,8 @@ class cronjob_backup extends cronjob { } } } + //* end run_backups + if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir); } else { //* send email to admin that backup directory could not be mounted $global_config = $app->getconf->get_global_config('mail'); 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 a13974af6254f9319629c9f950eced9784ed6256..81e39ed0cc36b1bad4ed366c328e575565ff0965 100644 --- a/server/lib/classes/cron.d/500-backup_mail.inc.php +++ b/server/lib/classes/cron.d/500-backup_mail.inc.php @@ -181,7 +181,8 @@ class cronjob_backup_mail extends cronjob { } } } - } + if( $server_config['backup_dir_is_mount'] == 'y' ) $app->system->umount_backup_dir($backup_dir); + } //* end run_backups } parent::onRunJob(); diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php index 75dc73deb95e4ba18b60da2a771099ee5f1481eb..98fc51fdef84cf4a018eb9a927224ad525608c6e 100644 --- a/server/lib/classes/system.inc.php +++ b/server/lib/classes/system.inc.php @@ -1808,7 +1808,7 @@ class system{ fileowner($mount_cmd) === 0 ) { if (!$this->is_mounted($backup_dir)){ - exec($backup_dir_mount_cmd); + exec($mount_cmd); sleep(1); if (!$this->is_mounted($backup_dir)) $mounted = false; } @@ -1816,7 +1816,21 @@ class system{ return $mounted; } - + + function umount_backup_dir($backup_dir, $mount_cmd = '/usr/local/ispconfig/server/scripts/backup_dir_umount.sh'){ + if ( is_file($mount_cmd) && + is_executable($mount_cmd) && + fileowner($mount_cmd) === 0 + ) { + if ($this->is_mounted($backup_dir)){ + exec($mount_cmd); + sleep(1); + } + } + + return $this->is_mounted($backup_dir) == 0 ? true : false; + } + function getinitcommand($servicename, $action, $init_script_directory = ''){ global $conf; // upstart diff --git a/server/plugins-available/mail_plugin_dkim.inc.php b/server/plugins-available/mail_plugin_dkim.inc.php index 9fb927ee7e3e695038569aa5124b08f7beaaba56..7fea83c8a6c002e25d9446699f7d7f77d997c01d 100755 --- a/server/plugins-available/mail_plugin_dkim.inc.php +++ b/server/plugins-available/mail_plugin_dkim.inc.php @@ -405,7 +405,7 @@ class mail_plugin_dkim { } /* resync */ - if ($data['new']['active'] == 'y' && $data['new'] == $data['old']) { + if ($data['new']['active'] == 'y' && $data['new'] == $data['old'] && $data['new']['dkim']=='y') { $this->add_dkim($data); } }