aboutsummaryrefslogtreecommitdiffstats
path: root/config/dspam/pkg/dspam-utilfunc.inc
diff options
context:
space:
mode:
Diffstat (limited to 'config/dspam/pkg/dspam-utilfunc.inc')
-rw-r--r--config/dspam/pkg/dspam-utilfunc.inc458
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;
-}
-
-?>