"") fwrite($fd, "maxchilds = {$cfg['maxchilds']}\n"); else fwrite($fd, "maxchilds = 10\n"); if (isset($cfg['ipaddr']) && $cfg['ipaddr'] <> "") fwrite($fd, "ip = {$cfg['ipaddr']}\n"); else fwrite($fd, "ip = 0.0.0.0\n"); /* TODO: Even if the port is configurable, it is hardcoded in p3scan.c. This needs to be changed for the sake of flexebility. */ if (isset($cfg['port']) && $cfg['port'] <> "") fwrite($fd, "port = {$cfg['port']}\n"); else fwrite($fd, "port = 8110\n"); if (isset($cfg['sslport']) && $cfg['sslport'] <> "") fwrite($fd, "sslport = {$cfg['sslport']}\n"); else fwrite($fd, "sslport = 995\n"); if (isset($cfg['targetip']) && $cfg['targetip'] <> "") fwrite($fd, "targetip = {$cfg['targetip']}\n"); else fwrite($fd, "targetip = 0.0.0.0\n"); if (isset($cfg['targetport']) && $cfg['targetport'] <> "") fwrite($fd, "targetport = {$cfg['targetport']}\n"); else fwrite($fd, "targetport = 8110\n"); if (isset($cfg['emailport']) && $cfg['emailport'] <> "") fwrite($fd, "emailport = {$cfg['emailport']}\n"); else fwrite($fd, "emailport = 25\n"); if (isset($cfg['daemonuser']) && $cfg['daemonuser'] <> "") fwrite($fd, "user = {$cfg['daemonuser']}\n"); else fwrite($fd, "user = root\n"); fwrite($fd, "notifydir = /var/spool/p3scan/notify\n"); fwrite($fd, "virusdir = /var/spool/p3scan\n"); fwrite($fd, "template = /usr/local/etc/p3scan/p3scan.mail\n"); /* ================================================================ */ /* == Tab: Message Processing == */ /* ================================================================ */ fwrite($fd, "## Message Processing Settings.\n"); if (isset($cfgmsg['justdelete']) && $cfgmsg['justdelete'] <> "") fwrite($fd, "justdelete\n"); if (isset($cfgmsg['bytesfree']) && $cfgmsg['bytesfree'] <> "") fwrite($fd, "bytesfree = {$cfgmsg['bytesfree']}\n"); else fwrite($fd, "bytesfree = 10000\n"); if (isset($cfgmsg['broken']) && $cfgmsg['broken'] <> "") fwrite($fd, "broken\n"); if (isset($cfgmsg['timeout']) && $cfgmsg['timeout'] <> "") fwrite($fd, "timeout = {$cfgmsg['timeout']}\n"); else fwrite($fd, "timeout = 30\n"); if (isset($cfgmsg['ispspam']) && $cfgmsg['ispspam'] <> "") fwrite($fd, "ispspam = {$cfg['ispspam']}\n"); if (file_exists("/usr/local/bin/renattach")) fwrite($fd, "renattach = /usr/local/bin/renattach\n"); if (isset($cfgmsg['subject']) && $cfgmsg['subject'] <> "") fwrite($fd, "subject = {$cfgmsg['subject']}\n"); else fwrite($fd, "subject = Subject: \"[Virus] found in a mail to you:\" \n"); if (isset($cfgmsg['notify']) && $cfgmsg['notify'] <> "") fwrite($fd, "notify = {$cfgmsg['notify']}\n"); else fwrite($fd, "notify = Per instruction, the message has been deleted.\n"); if (isset($cfgmsg['smtpreject']) && $cfgmsg['smtpreject'] <> "") fwrite($fd, "smtprset = {$cfgmsg['smtpreject']}\n"); else fwrite($fd, "smtprset = Virus detected! P3scan rejected message!\n"); if (isset($cfgmsg['checksize']) && $cfgmsg['checksize'] <> "") fwrite($fd, "checksize = {$cfgmsg['checksize']}\n"); if (isset($cfgmsg['footer']) && $cfgmsg['footer'] <> "") fwrite($fd, "footer = {$cfgmsg['footer']}\n"); /* ================================================================ */ /* == Tab: Emergency Contact == */ /* ================================================================ */ fwrite($fd, "## Emergency Contacts.\n"); if (is_array($cfgemer)) { foreach ($cfgemer as $addr) { $contact .= "{$addr['emailaddress']} "; } if (isset($contact) && $contact <> "") fwrite($fd, "emergcon = {$contact}\n"); } /* ================================================================ */ /* == Tab: Virus Scanner Settings == */ /* ================================================================ */ fwrite($fd, "## Virus Scanner Settings.\n"); if (isset($cfgvir['scannertype']) && $cfgvir['scannertype'] <> "") fwrite($fd, "scannertype = {$cfgvir['scannertype']}\n"); else fwrite($fd, "scannertype = clamd\n"); if (isset($cfgvir['scanner']) && $cfgvir['scanner'] <> "") fwrite($fd, "scanner = {$cfgvir['scanner']}\n"); else fwrite($fd, "scanner = 127.0.0.1:3310\n"); if (isset($cfgvir['viruscode']) && $cfgvir['viruscode'] <> "") fwrite($fd, "viruscode = {$cfgvir['viruscode']}\n"); else fwrite($fd, "viruscode = 1\n"); if (isset($cfgvir['goodcode']) && $cfgvir['goodcode'] <> "") fwrite($fd, "goodcode = {$cfgvir['goodcode']}\n"); if (isset($cfgvir['virusregexp']) && $cfgvir['virusregexp'] <> "") fwrite($fd, "virusregexp = {$cfgvir['virusregexp']}\n"); if (isset($cfgvir['demime']) && $cfgvir['demime'] <> "") fwrite($fd, "demime\n"); /* ================================================================ */ /* == Tab: SPAM Settings == */ /* ================================================================ */ if (isset($cfgspam['checkspam']) && $cfgpam['checkspam'] <> "") { fwrite($fd, "## SPAM Settings.\n"); fwrite($fd, "checkspam\n"); if (isset($cfgvir['spamcheck']) && $cfgvir['spamcheck'] <> "") fwrite($fd, "spamcheck = {$cfgspam['spamcheck']}\n"); else fwrite($fd, "spamcheck = /usr/local/bin/dspam --user dspamuser --mode=teft --stdout --deliver=innocent,spam --feature=ch,no,wh\n"); } fclose($fd); /* NOTE: The following code requires the p3scan.inc file to be saved with UNIX Linefeeds. LF that is and NOT CR LF. */ $start = << "030.p3scan.sh", "start" => $start, "stop" => $stop ) ); conf_mount_ro(); config_unlock(); if (! file_exists("/usr/local/etc/p3scan")) { mkdir("/usr/local/etc/p3scan"); } if (! file_exists("/usr/local/etc/p3scan/p3scan.conf")) { mwexec("ln -s /etc/p3scan.conf /usr/local/etc/p3scan/p3scan.conf"); } if (! file_exists("/usr/local/etc/p3scan/p3scan.mail")) { $fd = fopen("/usr/local/etc/p3scan/p3scan.mail","w"); $p3scanmail = << EOD; fwrite($fd, $p3scanmail); fclose($fd); } mwexec("/usr/local/etc/rc.d/030.p3scan.sh stop"); mwexec("/usr/local/etc/rc.d/030.p3scan.sh start"); return 0; } function custom_php_install_command() { global $config, $g; sync_package_p3scan(); } function custom_php_deinstall_command() { global $config, $g; conf_mount_rw(); unlink_if_exists("/usr/local/pkg/pf/p3scan_rules.php"); unlink_if_exists("/usr/local/www/p3scan_rules.php"); unlink_if_exists("/usr/local/etc/p3scan/p3scan.conf"); unlink_if_exists("/usr/local/etc/p3scan/p3scan.mail"); unlink_if_exists("/usr/local/etc/rc.d/030.p3scan.sh"); rmdir("/usr/local/etc/p3scan"); conf_mount_ro(); } ?>