From 7a4501e581f5e01abf761b7ceaa55afde4dcb0aa Mon Sep 17 00:00:00 2001 From: "Christoph Burchert (Chb)" Date: Wed, 18 May 2011 02:08:45 +0200 Subject: [PATCH] added new setting: backup ftp passive mode, fixes #785 Signed-off-by: Christoph Burchert (Chb) --- actions/admin/settings/215.backup.php | 9 +++++++++ install/froxlor.sql | 1 + install/updates/froxlor/0.9/update_0.9.inc.php | 3 +++ lng/english.lng.php | 1 + lng/german.lng.php | 3 ++- scripts/jobs/cron_backup.php | 12 +++++++++++- 6 files changed, 27 insertions(+), 2 deletions(-) diff --git a/actions/admin/settings/215.backup.php b/actions/admin/settings/215.backup.php index 6ca33709..df354eb1 100644 --- a/actions/admin/settings/215.backup.php +++ b/actions/admin/settings/215.backup.php @@ -98,6 +98,15 @@ return array( 'default' => '', 'save_method' => 'storeSettingField', ), + 'backup_passive_mode' => array( + 'label' => $lng{'serversettings']['backup_ftp_passive_mode'], + 'settinggroup' => 'system', + 'varname' => 'backup_ftp_passive', + 'type' => 'bool', + 'default' => true, + 'save_method' => 'storeSettingField', + 'overview_option' => false, + ), ), ), ), diff --git a/install/froxlor.sql b/install/froxlor.sql index 45743e3d..43ece08d 100644 --- a/install/froxlor.sql +++ b/install/froxlor.sql @@ -631,6 +631,7 @@ INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('syste INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_server', ''); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_user', ''); INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_pass', ''); +INSERT INTO `panel_settings` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1'); # -------------------------------------------------------- # diff --git a/install/updates/froxlor/0.9/update_0.9.inc.php b/install/updates/froxlor/0.9/update_0.9.inc.php index 8accb57e..69d66bac 100644 --- a/install/updates/froxlor/0.9/update_0.9.inc.php +++ b/install/updates/froxlor/0.9/update_0.9.inc.php @@ -1594,6 +1594,9 @@ if(isFroxlorVersion('0.9.20.1-svn1') || isFroxlorVersion('0.9.20.2-svn1')) // add table column for gender $db->query("ALTER TABLE `" . TABLE_PANEL_CUSTOMERS . "` ADD `gender` INT( 1 ) NOT NULL DEFAULT '0' AFTER `firstname`"); + /* add new setting: backup FTP mode */ + $db->query("INSERT INTO `" . TABLE_PANEL_SETTINGS . "` (`settinggroup`, `varname`, `value`) VALUES ('system', 'backup_ftp_passive', '1')"); + lastStepStatus(0); updateToVersion('0.9.21-svn1'); diff --git a/lng/english.lng.php b/lng/english.lng.php index 4f42ef9f..ff9d57ba 100644 --- a/lng/english.lng.php +++ b/lng/english.lng.php @@ -1626,6 +1626,7 @@ $lng['gender']['title'] = 'Gender'; $lng['gender']['male'] = 'male'; $lng['gender']['female'] = 'female'; $lng['gender']['undef'] = 'not specified'; +$lng['serversettings']['backup_ftp_passive_mode'] = 'Use passive mode'; // Country code (ISO-3166-2) $lng['country']['AF'] = "Afghanistan"; diff --git a/lng/german.lng.php b/lng/german.lng.php index e99136d1..da435ed3 100644 --- a/lng/german.lng.php +++ b/lng/german.lng.php @@ -1605,4 +1605,5 @@ $lng['crondesc']['cron_backup'] = 'Backup cronjob'; $lng['gender']['title'] = 'Geschlecht'; $lng['gender']['male'] = 'männlich'; $lng['gender']['female'] = 'weiblich'; -$lng['gender']['undef'] = 'keine Angabe'; \ No newline at end of file +$lng['gender']['undef'] = 'keine Angabe'; +$lng['serversettings']['backup_ftp_passive_mode'] = 'Passiven Modus verwenden'; \ No newline at end of file diff --git a/scripts/jobs/cron_backup.php b/scripts/jobs/cron_backup.php index 1cf8bb05..2cd6cb73 100644 --- a/scripts/jobs/cron_backup.php +++ b/scripts/jobs/cron_backup.php @@ -122,7 +122,17 @@ if($settings['system']['backup_enabled'] == '1'){ if(preg_match('/.*\.tar\.gz$/', $ftp_file)){ $ftp_con = ftp_connect($settings['system']['backup_ftp_server']); $ftp_login = ftp_login($ftp_con, $settings['system']['backup_ftp_user'], $settings['system']['backup_ftp_pass']); - ftp_pasv($ftp_con, true); + + /* Check whether to use passive mode or not */ + if($settings['system']['backup_ftp_passive'] == 1) + { + ftp_pasv($ftp_con, true); + } + else + { + ftp_pasv($ftp_con, false); + } + $ftp_upload = ftp_put($ftp_con, $ftp_file, $row['documentroot'] . $settings['system']['backup_dir'] . "/" . $ftp_file, FTP_BINARY); } }