From 96b2e054b1beaeb2c3fa77a697aef2955f63bbe0 Mon Sep 17 00:00:00 2001 From: Scott Ullrich Date: Wed, 1 Feb 2006 01:48:49 +0000 Subject: Add xmlrpc sync code that will be used to sync spamd's config to backup firewalls --- packages/spamd.inc | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) (limited to 'packages') diff --git a/packages/spamd.inc b/packages/spamd.inc index 4868072c..2edcb129 100644 --- a/packages/spamd.inc +++ b/packages/spamd.inc @@ -127,6 +127,45 @@ function sync_package_spamd() { mwexec("/usr/local/etc/rc.d/spamd.sh start"); } +function sync_spamd_config_to_backup() { + global $g, $config; + if(is_array($config['installedpackages']['carpsettings']['config'])) { + foreach($config['installedpackages']['carpsettings']['config'] as $carp) { + if($carp['synchronizetoip'] != "" ) { + $synctoip = $carp['synchronizetoip']; + $password = $carp['password']; + $username = "admin"; + } + } + } + if($synctoip and $password) { + if($config['system']['webgui']['protocol'] != "") { + $synchronizetoip = $config['system']['webgui']['protocol']; + $synchronizetoip .= "://"; + } + $port = $config['system']['webgui']['port']; + /* if port is empty lets rely on the protocol selection */ + if($port == "") { + if($config['system']['webgui']['protocol'] == "http") { + $port = "80"; + } else { + $port = "443"; + } + } + $params = array(XML_RPC_encode($password),XML_RPC_encode($xml)); + /* create files to sync array */ + $filetosync = array("/var/db/spamd", "/var/db/whitelist.txt"); + /* loop through files to sync list and sync them up */ + foreach($filetosync as $f2s) { + $f2c_contents = file_get_contents($f2s); + xmlrpc_sync_file($url, $password, $f2s, $f2c_contents, $port); + } + /* signal remote process config reload */ + xmlrpc_exec_shell($url, $password, "/usr/bin/killall -HUP spamlogd", $port); + xmlrpc_exec_shell($url, $password, "/usr/bin/killall -HUP spamd", $port); + } +} + function custom_php_install_command() { global $config, $g; system("touch /var/db/whitelist.txt"); -- cgit v1.2.3