diff options
Diffstat (limited to 'packages')
-rw-r--r-- | packages/autoconfigbackup/upload_config_filter.php | 118 |
1 files changed, 61 insertions, 57 deletions
diff --git a/packages/autoconfigbackup/upload_config_filter.php b/packages/autoconfigbackup/upload_config_filter.php index 7b5548e8..9f02234c 100644 --- a/packages/autoconfigbackup/upload_config_filter.php +++ b/packages/autoconfigbackup/upload_config_filter.php @@ -22,74 +22,78 @@ $reason = $config['revision']['description']; // Define upload_url, must be present after other variable definitions due to username, password $upload_url = "https://{$username}:{$password}@portal.pfsense.org/pfSconfigbackups/backup.php"; -/* If configuration has changed, upload to pfS */ -if($last_backup_date <> $last_config_change) { - if($username && $password && $encryptpw) { +if(!$username or !$password or !$encryptpw) { + $notice_text = "Either the username, password or encryption password is not set for Automatic Configuration Backup. Please correct this in Diagnostics -> AutoConfigBackup -> Settings."; + log_error($notice_text); + file_notice("autoconfigurationbackup", $notice_text, $notice_text, ""); +} else { + /* If configuration has changed, upload to pfS */ + if($last_backup_date <> $last_config_change) { - // Mount RW (if needed) - conf_mount_rw(); - // Lock config - config_lock(); + // Mount RW (if needed) + conf_mount_rw(); + // Lock config + config_lock(); - log_error("Beginning portal.pfsense.org configuration backup."); - update_filter_reload_status("Beginning portal.pfsense.org configuration backup."); + log_error("Beginning portal.pfsense.org configuration backup."); + update_filter_reload_status("Beginning portal.pfsense.org configuration backup."); - // Encrypt config.xml - $data = file_get_contents("/cf/conf/config.xml"); - $data = encrypt_data($data, $encryptpw); - tagfile_reformat($data, $data, "config.xml"); + // Encrypt config.xml + $data = file_get_contents("/cf/conf/config.xml"); + $data = encrypt_data($data, $encryptpw); + tagfile_reformat($data, $data, "config.xml"); - $post_fields = array( - 'reason' => urlencode($reason), - 'hostname' => urlencode($hostname), - 'configxml' => urlencode($data) - ); + $post_fields = array( + 'reason' => urlencode($reason), + 'hostname' => urlencode($hostname), + 'configxml' => urlencode($data) + ); - //url-ify the data for the POST - foreach($post_fields as $key=>$value) - $fields_string .= $key.'='.$value.'&'; - rtrim($fields_string,'&'); + //url-ify the data for the POST + foreach($post_fields as $key=>$value) + $fields_string .= $key.'='.$value.'&'; + rtrim($fields_string,'&'); - // Check configuration into the BSDP repo - $curl_session = curl_init(); - curl_setopt($curl_session, CURLOPT_URL, $upload_url); - curl_setopt($curl_session, CURLOPT_POST, count($post_fields)); - curl_setopt($curl_session, CURLOPT_POSTFIELDS, $fields_string); - curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1); - curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, 0); - $data = curl_exec($curl_session); - if (curl_errno($curl_session)) { - $fd = fopen("/tmp/backupdebug.txt", "w"); - fwrite($fd, $upload_url . "" . $fields_string . "\n\n"); - fwrite($fd, $data); - fwrite($fd, curl_error($curl_session)); - fclose($fd); - } else { - curl_close($curl_session); - } + // Check configuration into the BSDP repo + $curl_session = curl_init(); + curl_setopt($curl_session, CURLOPT_URL, $upload_url); + curl_setopt($curl_session, CURLOPT_POST, count($post_fields)); + curl_setopt($curl_session, CURLOPT_POSTFIELDS, $fields_string); + curl_setopt($curl_session, CURLOPT_RETURNTRANSFER, 1); + curl_setopt($curl_session, CURLOPT_SSL_VERIFYPEER, 0); + $data = curl_exec($curl_session); + if (curl_errno($curl_session)) { + $fd = fopen("/tmp/backupdebug.txt", "w"); + fwrite($fd, $upload_url . "" . $fields_string . "\n\n"); + fwrite($fd, $data); + fwrite($fd, curl_error($curl_session)); + fclose($fd); + } else { + curl_close($curl_session); + } - // Update last pfS backup time - $fd = fopen("/cf/conf/lastpfSbackup.txt", "w"); - fwrite($fd, $config['revision']['time']); - fclose($fd); + // Update last pfS backup time + $fd = fopen("/cf/conf/lastpfSbackup.txt", "w"); + fwrite($fd, $config['revision']['time']); + fclose($fd); - if(!strstr($data, "500")) { - log_error("An error occured while uploading your pfSense configuration to portal.pfsense.org ($data)"); - file_notice("autoconfigurationbackup", "An error occured while uploading your pfSense configuration to portal.pfsense.org", $data, ""); - update_filter_reload_status("An error occured while uploading your pfSense configuration to portal.pfsense.org - $data"); - } else { - log_error("End of portal.pfsense.org configuration backup (success)."); - update_filter_reload_status("End of portal.pfsense.org configuration backup (success)."); - } + if(!strstr($data, "500")) { + log_error("An error occured while uploading your pfSense configuration to portal.pfsense.org ($data)"); + file_notice("autoconfigurationbackup", "An error occured while uploading your pfSense configuration to portal.pfsense.org", $data, ""); + update_filter_reload_status("An error occured while uploading your pfSense configuration to portal.pfsense.org - $data"); + } else { + log_error("End of portal.pfsense.org configuration backup (success)."); + update_filter_reload_status("End of portal.pfsense.org configuration backup (success)."); + } - // Unlock config - config_unlock(); - // Mount image RO (if needed) - conf_mount_ro(); + // Unlock config + config_unlock(); + // Mount image RO (if needed) + conf_mount_ro(); + } else { + log_error("No portal.pfsense.org backup required."); } -} else { - log_error("No portal.pfsense.org backup required."); } ?>
\ No newline at end of file |