From 7de808a36eebcb241d087532fdbc1bb301a7aa29 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Tue, 7 Oct 2008 01:11:09 +0000 Subject: Download and use crypt_acb.php which is a copy of crypt.php only included in 1.3. --- packages/autoconfigbackup/autoconfigbackup.php | 2 + packages/autoconfigbackup/autoconfigbackup.xml | 5 + packages/autoconfigbackup/crypt_acb.php | 104 +++++++++++++++++++++ packages/autoconfigbackup/upload_config_filter.php | 35 ++++--- 4 files changed, 134 insertions(+), 12 deletions(-) create mode 100644 packages/autoconfigbackup/crypt_acb.php diff --git a/packages/autoconfigbackup/autoconfigbackup.php b/packages/autoconfigbackup/autoconfigbackup.php index 6a03105e..24f26f05 100644 --- a/packages/autoconfigbackup/autoconfigbackup.php +++ b/packages/autoconfigbackup/autoconfigbackup.php @@ -34,6 +34,8 @@ require("guiconfig.inc"); $pfSversion = str_replace("\n", "", file_get_contents("/etc/version")); +if(strstr("1.2", $pfSversion)) + require("crypt_acb.php"); // Seperator used during client / server communications $oper_sep = "\|\|"; diff --git a/packages/autoconfigbackup/autoconfigbackup.xml b/packages/autoconfigbackup/autoconfigbackup.xml index dd2371a1..f188af0b 100644 --- a/packages/autoconfigbackup/autoconfigbackup.xml +++ b/packages/autoconfigbackup/autoconfigbackup.xml @@ -63,6 +63,11 @@ 0755 http://www.pfsense.com/packages/config/autoconfigbackup/autoconfigbackup.inc + + /etc/inc + 0755 + http://www.pfsense.com/packages/config/autoconfigbackup/crypt_acb.php + Settings diff --git a/packages/autoconfigbackup/crypt_acb.php b/packages/autoconfigbackup/crypt_acb.php new file mode 100644 index 00000000..8c56dcaf --- /dev/null +++ b/packages/autoconfigbackup/crypt_acb.php @@ -0,0 +1,104 @@ + array("pipe", "r"), + 1 => array("pipe", "w"), + 2 => array("pipe", "e")); + + $fp = proc_open($pspec, $dspec, $pipes); + if (!$fp) + return false; + + fwrite($pipes[0], $data); + fclose($pipes[0]); + + $rslt = stream_get_contents($pipes[1]); + fclose($pipes[1]); + + proc_close($fp); + + return $rslt; + } + + function encrypt_data(& $data, $pass) { + return base64_encode(crypt_data($data, $pass, "-e")); + } + + function decrypt_data(& $data, $pass) { + return crypt_data(base64_decode($data), $pass, "-d"); + } + + function tagfile_reformat($in, & $out, $tag) { + + $out = "---- BEGIN {$tag} ----\n"; + + $size = 80; + $oset = 0; + while ($size >= 64) { + $line = substr($in, $oset, 64); + $out .= $line."\n"; + $size = strlen($line); + $oset += $size; + } + + $out .= "---- END {$tag} ----\n"; + + return true; + } + + function tagfile_deformat($in, & $out, $tag) { + + $btag_val = "---- BEGIN {$tag} ----"; + $etag_val = "---- END {$tag} ----"; + + $btag_len = strlen($btag_val); + $etag_len = strlen($etag_val); + + $btag_pos = stripos($in, $btag_val); + $etag_pos = stripos($in, $etag_val); + + if (($btag_pos === false) || ($etag_pos === false)) + return false; + + $body_pos = $btag_pos + $btag_len; + $body_len = strlen($in); + $body_len -= strlen($btag_len); + $body_len -= strlen($etag_len); + + $out = substr($in, $body_pos, $body_len); + + return true; + } + +?> \ No newline at end of file diff --git a/packages/autoconfigbackup/upload_config_filter.php b/packages/autoconfigbackup/upload_config_filter.php index 9f02234c..77f4473e 100644 --- a/packages/autoconfigbackup/upload_config_filter.php +++ b/packages/autoconfigbackup/upload_config_filter.php @@ -1,5 +1,9 @@ AutoConfigBackup -> Settings."; + + $notice_text = "Either the username, password or encryption password is not set for Automatic Configuration Backup. "; + $notice_text .= "Please correct this in Diagnostics -> AutoConfigBackup -> Settings."; log_error($notice_text); - file_notice("autoconfigurationbackup", $notice_text, $notice_text, ""); + file_notice("AutoConfigBackup", $notice_text, $notice_text, ""); + } else { /* If configuration has changed, upload to pfS */ if($last_backup_date <> $last_config_change) { @@ -34,9 +41,10 @@ if(!$username or !$password or !$encryptpw) { 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."); + + $notice_text = "Beginning http://portal.pfsense.org configuration backup."; + log_error($notice_text); + update_filter_reload_status($notice_text); // Encrypt config.xml $data = file_get_contents("/cf/conf/config.xml"); @@ -78,12 +86,14 @@ if(!$username or !$password or !$encryptpw) { 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"); + $notice_text = "An error occured while uploading your pfSense configuration to portal.pfsense.org"; + log_error($notice_text . " - " . $data); + file_notice("autoconfigurationbackup", $notice_text, $data, ""); + update_filter_reload_status($notice_text . " - " . $data); } else { - log_error("End of portal.pfsense.org configuration backup (success)."); - update_filter_reload_status("End of portal.pfsense.org configuration backup (success)."); + $notice_text = "End of portal.pfsense.org configuration backup (success)."; + log_error($notice_text); + update_filter_reload_status($notice_text); } // Unlock config @@ -92,8 +102,9 @@ if(!$username or !$password or !$encryptpw) { conf_mount_ro(); } else { - log_error("No portal.pfsense.org backup required."); + log_error("No http://portal.pfsense.org backup required."); } + } ?> \ No newline at end of file -- cgit v1.2.3