diff options
Diffstat (limited to 'config/dspam/pkg/dspam-utilfunc.inc')
-rw-r--r-- | config/dspam/pkg/dspam-utilfunc.inc | 458 |
1 files changed, 0 insertions, 458 deletions
diff --git a/config/dspam/pkg/dspam-utilfunc.inc b/config/dspam/pkg/dspam-utilfunc.inc deleted file mode 100644 index 903790b8..00000000 --- a/config/dspam/pkg/dspam-utilfunc.inc +++ /dev/null @@ -1,458 +0,0 @@ -<?php -/* $Id$ */ -/* Copyright (C) 2006 Daniel S. Haischt */ -require_once("functions.inc"); -require_once("dspam.inc"); - -function &GetPrefs($user) { - global $CONFIG, $USER; - $prefs = array(); - $FILE = "{$USER}.prefs"; - - if ($CONFIG['PREFERENCES_EXTENSION'] == 1) { - $handle = popen ("{$CONFIG['DSPAM_BIN']}/dspam_admin agg pref " . quotemeta($user)); - - while (!feof($handle)) { - $buffer = chop(fgets($handle, 4096)); - list($key, $value) = split("=", $buffer); - $prefs[$key] = $value; - } - - pclose($handle); - - } - - if (count(array_keys($prefs)) == 0 || $CONFIG['PREFERENCES_EXTENSION'] != 1) { - - /* This step is only required if the user - * wants to use the legacy DSPAm CGI app. - */ - if (! file_exists("{$CONFIG['DSPAM_WWW']}/default.prefs")) { - /* try to copy the sample file */ - if (file_exists("{$CONFIG['DSPAM_WWW']}/default.prefs.sample")) { - copy("{$CONFIG['DSPAM_WWW']}/default.prefs.sample", - "{$CONFIG['DSPAM_WWW']}/default.prefs"); - } - } - $handle = fopen ("{$CONFIG['DSPAM_WWW']}/default.prefs", "r"); - - while (!feof($handle)) { - $buffer = chop(fgets($handle, 4096)); - list($key, $value) = split("=", $buffer); - $prefs[$key] = $value; - } - - fclose($handle); - - if(file_exists($FILE)) { - $handle = fopen ($FILE, "r"); - - while (!feof($handle)) { - $buffer = chop(fgets($handle, 4096)); - list($key, $value) = split("=", $buffer); - $prefs[$key] = $value; - } - } - } - return $prefs; -} - -function CheckQuarantine() { - global $MAILBOX, $DATA; - $f = 0; - - if (file_exists($MAILBOX)) { - $handle = fopen($MAILBOX, "r"); - - while (!feof($handle)) { - $buffer = fgets($handle, 4096); - if (preg_match('/^From /', $buffer) <= 0) {continue;} - $f++; - } - - fclose ($handle); - } - - if ($f == 0) { - $f = "Empty"; - } - - $DATA['TOTAL_QUARANTINED_MESSAGES'] = $f; -} - -function http_parse_query( $array = NULL, $convention = '%s' ) { - if( count( $array ) == 0 ) { - return ''; - } else { - if( function_exists( 'http_build_query' ) ){ - $query = http_build_query( $array ); - } else { - $query = ''; - - foreach( $array as $key => $value ) { - if( is_array( $value ) ){ - $new_convention = sprintf( $convention, $key ) . '[%s]'; - $query .= http_parse_query( $value, $new_convention ); - } else { - $key = urlencode( $key ); - $value = urlencode( $value ); - $query .= sprintf( $convention, $key ) . "=$value&"; - } - } - } - - return $query; - } -} - -/* just a wrapper function */ -function SafeVars($PAIRS) { - $url = http_parse_query($PAIRS); - return $url; -} - -function To12Hour($h) { - if ($h < 0) { $h += 24; } - if ($h > 11) { if ($h > 12) { $h -= 12; } $h .= "p"; } - else { if ($h == 0) { $h = "12"; } $h .= "a"; } - return $h; -} - -function GetPath($store) { - global $CONFIG, $USER; - $PATH = ""; - - /* Domain-scalen */ - if ($CONFIG['DOMAIN_SCALE'] == 1) { - $splittmp = (split('@', $store)); - $VPOPUSERNAME = $splittmp[0]; - $VPOPDOMAIN = $splittmp[1]; - if ($VPOPDOMAIN == "") {$VPOPDOMAIN = "local";} - - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$VPOPDOMAIN}/{$VPOPUSERNAME}/" . - "{$VPOPUSERNAME}"; - return $PATH; - - /* Normal scale */ - } else if ($CONFIG['LARGE_SCALE'] == 0) { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$USER}/{$USER}"; - return $PATH; - - /* Large-scale */ - } else { - if (strlen($USER) > 1) { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/" . substr($USER, 0, 1) . - "/". substr($USER, 1, 1) . "/{$USER}/{$USER}"; - } else { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$USER}/{$USER}"; - } - return $PATH; - } -} - -function GetUserDir($store) { - global $CONFIG, $USER; - $PATH = ""; - - /* Domain-scalen */ - if ($CONFIG['DOMAIN_SCALE'] == 1) { - $splittmp = (split('@', $store)); - $VPOPUSERNAME = $splittmp[0]; - $VPOPDOMAIN = $splittmp[1]; - if ($VPOPDOMAIN == "") {$VPOPDOMAIN = "local";} - - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$VPOPDOMAIN}/{$VPOPUSERNAME}"; - return $PATH; - - /* Normal scale */ - } else if ($CONFIG['LARGE_SCALE'] == 0) { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$USER}/"; - return $PATH; - - /* Large-scale */ - } else { - if (strlen($USER) > 1) { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/" . substr($USER, 0, 1) . - "/". substr($USER, 1, 1) . "/{$USER}/{$USER}"; - } else { - $PATH = "{$CONFIG['DSPAM_HOME']}/data/{$USER}"; - } - return $PATH; - } -} - -function GetDomain($store) { - global $CONFIG, $USER; - $PATH = ""; - - /* Domain-scalen */ - if ($CONFIG['DOMAIN_SCALE'] == 1) { - $splittmp = (split('@', $store)); - $VPOPUSERNAME = $splittmp[0]; - $VPOPDOMAIN = $splittmp[1]; - if ($VPOPDOMAIN == "") {$VPOPDOMAIN = "local";} - - return $VPOPDOMAIN; - } -} - -function isDSPAMAdmin($username = "") { - global $config, $CONFIG; - - $groupindex = index_groups(); - $userindex = index_users(); - - if ($username == "") { return 0; } - - $gname = $config['system']['group'][$groupindex[$config['system']['user'][$userindex[$username]]['groupname']]]['name']; - - if (isset($gname)) { - return ($gname === $CONFIG['DSPAM_ADMIN_GROUP']); - } - - return 0; -} - -function createUserNotificationMessages() { - global $config, $CONFIG, $USER, $CURRENT_USER, $CURRENT_STORE; - - $firstrun = "{$USER}.firstrun"; - $firstspam = "{$USER}.firstspam"; - $quarantinefull = "{$USER}.quarantinefull"; - $savemsg = ""; - - if (isset($config['installedpackages']['dspam']['config'][0]['dspam-domain'])) - $domain = $config['installedpackages']['dspam']['config'][0]['dspam-domain']; - else - $domain = $config['system']['domain']; - - if (GetDomain($CURRENT_STORE) <> "") - $user_domain = GetDomain($CURRENT_STORE); - else - $user_domain = $config['system']['domain']; - - $userdir = GetUserDir($CURRENT_STORE); - $hostname = $config['system']['hostname']; - $support_user = $config['installedpackages']['dspam']['config'][0]['dspam-contact']; - - /* return if there are no sample files */ - if (! file_exists("{$CONFIG['DSPAM_HOME']}/firstrun.txt.sample") || - ! file_exists("{$CONFIG['DSPAM_HOME']}/firstspam.txt.sample") || - ! file_exists("{$CONFIG['DSPAM_HOME']}/quarantinefull.txt.sample") || - ! file_exists($userdir)) { - return; - } - - /* create firstrun.txt */ - if (! file_exists("{$firstrun}")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/firstrun.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $user_domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$firstrun}", $sample_msg); - $savemsg .= " »{$firstrun}«, "; - } - - /* create firstspam.txt */ - if (! file_exists("{$firstspam}")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/firstspam.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $user_domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$firstspam}", $sample_msg); - $savemsg .= " »{$firstspam}«, "; - } - - /* create quarantinefull.txt */ - if (! file_exists("{$quarantinefull}")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/quarantinefull.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $user_domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$quarantinefull}", $sample_msg); - $savemsg .= " »{$quarantinefull}«."; - } - - if ($savemsg <> "") { - $savemsg = gettext("The following files were created: ") . $savemsg; - return $savemsg; - } - - return; -} - -function createNotificationMessages() { - global $config, $CONFIG, $USER, $CURRENT_USER; - - $firstrun = "{$CONFIG['DSPAM_HOME']}/firstrun.txt"; - $firstspam = "{$CONFIG['DSPAM_HOME']}/firstspam.txt"; - $quarantinefull = "{$CONFIG['DSPAM_HOME']}/quarantinefull.txt"; - $savemsg = ""; - - if (isset($config['installedpackages']['dspam']['config'][0]['dspam-domain'])) - $domain = $config['installedpackages']['dspam']['config'][0]['dspam-domain']; - else - $domain = $config['system']['domain']; - - $hostname = $config['system']['hostname']; - $support_user = $config['installedpackages']['dspam']['config'][0]['dspam-contact']; - - /* return if there are no sample files */ - if (! file_exists("{$CONFIG['DSPAM_HOME']}/firstrun.txt.sample") || - ! file_exists("{$CONFIG['DSPAM_HOME']}/firstspam.txt.sample") || - ! file_exists("{$CONFIG['DSPAM_HOME']}/quarantinefull.txt.sample")) { - return; - } - - /* create firstrun.txt */ - if (! file_exists("{$CONFIG['DSPAM_HOME']}/firstrun.txt")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/firstrun.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$firstrun}", $sample_msg); - $savemsg .= " »{$firstrun}«, "; - } - - /* create firstspam.txt */ - if (! file_exists("{$CONFIG['DSPAM_HOME']}/firstspam.txt")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/firstspam.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$firstspam}", $sample_msg); - $savemsg .= " »{$firstspam}«, "; - } - - /* create quarantinefull.txt */ - if (! file_exists("{$CONFIG['DSPAM_HOME']}/quarantinefull.txt")) { - $sample_msg = file_get_contents("{$CONFIG['DSPAM_HOME']}/quarantinefull.txt.sample"); - - $sample_msg = str_replace("support", $support_user, $sample_msg); - $sample_msg = str_replace("configureme.com", $domain, $sample_msg); - $sample_msg = str_replace("http://www.yourdomain.com/dspam/", - "http://{$hostname}.{$domain}/dspam.php", - $sample_msg); - - @file_put_contents("{$quarantinefull}", $sample_msg); - $savemsg .= " »{$quarantinefull}«."; - } - - if ($savemsg <> "") { - $savemsg = gettext("The following files were created: ") . $savemsg; - return $savemsg; - } - - return; -} - -function &check_dspam_installation() { - global $config; - - /* create RC files if necessary */ - if (! file_exists("/usr/local/etc/rc.d")) { - @mkdir("/usr/local/etc/rc.d"); - } - if (! file_exists("/usr/local/etc/rc.d/000.mysql.sh")) { - @copy("/usr/local/pkg/000.mysql.sh", "/usr/local/etc/rc.d/000.mysql.sh"); - @chmod("/usr/local/etc/rc.d/000.mysql.sh", 0755); - } - if (! file_exists("/usr/local/etc/rc.d/010.clamav-clamd.sh")) { - @copy("/usr/local/pkg/010.clamav-clamd.sh", - "/usr/local/etc/rc.d/010.clamav-clamd.sh"); - @chmod("/usr/local/etc/rc.d/010.clamav-clamd.sh", 0755); - } - if (! file_exists("/usr/local/etc/rc.d/020.clamav-freshclam.sh")) { - @copy("/usr/local/pkg/020.clamav-freshclam.sh", - "/usr/local/etc/rc.d/020.clamav-freshclam.sh"); - @chmod("/usr/local/etc/rc.d/020.clamav-freshclam.sh", 0755); - } - if (! file_exists("/usr/local/etc/rc.d/030.p3scan.sh")) { - @copy("/usr/local/pkg/030.p3scan.sh", - "/usr/local/etc/rc.d/030.p3scan.sh"); - @chmod("/usr/local/etc/rc.d/030.p3scan.sh", 0755); - } - - /* create conf files for those packages DSPAM depends on */ - if (! file_exists("/usr/local/etc/clamd.conf")) { - @copy("/usr/local/pkg/clamd.conf", - "/usr/local/etc/clamd.conf"); - } - if (! file_exists("/usr/local/etc/freshclam.conf")) { - @copy("/usr/local/pkg/freshclam.conf", - "/usr/local/etc/freshclam.conf"); - } - - if (! is_service_running("dspam")) { - $input_errors[] = "The DSPAM daemon process is not running. " . - "If you are certain that you did configure DSPAM " . - "appropriatly, you can start the corresponding process " . - "using the service control panel which is part of the " . - "»Status« menu item."; - } - if (! is_service_running("p3scan")) { - $input_errors[] = "The POP3 proxy process is not running. " . - "If you are certain that you did configure the POP3 proxy " . - "appropriatly, you can start the corresponding process " . - "using the service control panel which is part of the " . - "»Status« menu item."; - } - if (! is_service_running("clamd")) { - $input_errors[] = "The ClamAV daemon process is not running. " . - "If you are certain that you did configure DSPAM " . - "appropriatly, you can start the corresponding process " . - "using the service control panel which is part of the " . - "»Status« menu item (ClamAV does not need any configuration)."; - } - if (! is_service_running("freshclam")) { - $input_errors[] = "The freshclam daemon process is not running. " . - "If you are certain that you did configure DSPAM " . - "appropriatly, you can start the corresponding process " . - "using the service control panel which is part of the " . - "»Status« menu item (freshclam does not need any configuration)."; - } - if (! is_service_running("mysql")) { - $input_errors[] = "The MySQL daemon process is not running. " . - "If you are certain that you did configure DSPAM " . - "appropriatly, you can start the corresponding process " . - "using the service control panel which is part of the " . - "»Status« menu item (MySQL does not need any configuration)."; - } - - if (empty($config['installedpackages']['dspam']['config']) || - empty($config['installedpackages']['dspam']['config'][0]['storage-driver']) || - (file_exists('/usr/local/etc/dspam.conf') == false)) { - /* create default config files etc. */ - sync_package_dspam(); - - $input_errors[] = "It seems that you are using DSPAM for the very first time. " . - "Please run the DSPAM wizard from the »Services« menu " . - "if you would like to configure DSPAM right now. " . - "If you are not eligible to administer DSPAM you may contact " . - "your local DSPAM admin personal to solve this issue."; - } - - return $input_errors; -} - -?> |