aboutsummaryrefslogtreecommitdiffstats
path: root/packages/dspam/www/wizards
diff options
context:
space:
mode:
Diffstat (limited to 'packages/dspam/www/wizards')
-rw-r--r--packages/dspam/www/wizards/dspam-lda-proxy.pngbin0 -> 20556 bytes
-rw-r--r--packages/dspam/www/wizards/dspam-pop-proxy.pngbin0 -> 18247 bytes
-rw-r--r--packages/dspam/www/wizards/dspam-smtp-relay.pngbin0 -> 30404 bytes
-rw-r--r--packages/dspam/www/wizards/dspam_wizard.xml1830
4 files changed, 1830 insertions, 0 deletions
diff --git a/packages/dspam/www/wizards/dspam-lda-proxy.png b/packages/dspam/www/wizards/dspam-lda-proxy.png
new file mode 100644
index 00000000..7a4565ec
--- /dev/null
+++ b/packages/dspam/www/wizards/dspam-lda-proxy.png
Binary files differ
diff --git a/packages/dspam/www/wizards/dspam-pop-proxy.png b/packages/dspam/www/wizards/dspam-pop-proxy.png
new file mode 100644
index 00000000..fa373385
--- /dev/null
+++ b/packages/dspam/www/wizards/dspam-pop-proxy.png
Binary files differ
diff --git a/packages/dspam/www/wizards/dspam-smtp-relay.png b/packages/dspam/www/wizards/dspam-smtp-relay.png
new file mode 100644
index 00000000..07f554c8
--- /dev/null
+++ b/packages/dspam/www/wizards/dspam-smtp-relay.png
Binary files differ
diff --git a/packages/dspam/www/wizards/dspam_wizard.xml b/packages/dspam/www/wizards/dspam_wizard.xml
new file mode 100644
index 00000000..659eaff1
--- /dev/null
+++ b/packages/dspam/www/wizards/dspam_wizard.xml
@@ -0,0 +1,1830 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<pfsensewizard>
+<!--
+ Tags which can be used to exec arbitrary PHP code:
+
+ <stepsubmitbeforesave />
+ <stepsubmitphpaction />
+ <stepbeforeformdisplay />
+ <formvalidate />
+ <disableallfieldsbydefault />
+ <stepafterformdisplay />
+ <javascriptafterformdisplay />
+-->
+<copyright>
+/*
+ dspam_wizard.xml
+ part of pfSense (http://www.pfsense.org/)
+
+ Copyright (C) 2006 Daniel S. Haischt
+ All rights reserved.
+*/
+</copyright>
+<totalsteps>15</totalsteps>
+<title>Services: DSPAM: DSPAM Wizard</title>
+<step>
+ <id>1</id>
+ <includefile>dspam.inc</includefile>
+ <title>DSPAM Setup Wizard</title>
+ <disableheader>true</disableheader>
+ <description>This wizard will guide you through the initial configuration of the DSPAM filter.</description>
+ <fields>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>2</id>
+ <includefile>dspam.inc</includefile>
+ <title>DSPAM Profile Selection</title>
+ <disableheader>true</disableheader>
+ <description>DSPAM can be used in different network environment. Hence we are providing three distinct profiles to suit different DSPAM use cases. Please select a particular profile from the below profile selection.</description>
+ <fields>
+ <field>
+ <name>dspamprofile</name>
+ <type>radio</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-profile</bindstofield>
+ <description>
+ &lt;center&gt;
+ &lt;p&gt;
+When your mail server gets ready to deliver mail to a user's mailbox it calls
+a delivery agent of some sort. On most UNIX systems, this is procmail, maildrop,
+mail.local, or a similar tool. When used as a delivery proxy, the DSPAM agent
+is called in place of your existing agent - or better put, it can masquerade
+as the local delivery agent. DSPAM then processes the message and will call
+the /real/ delivery agent to pass the good mail into the user's mailbox,
+quarantining the bad mail. DSPAM can optionally tag and deliver both spam
+and legitimate mail.
+ &lt;/p&gt;
+ &lt;p&gt;
+In the diagram below, MTA refers to Mail Transfer Agent, or your mail server
+software: Postfix, Sendmail, Exim, etc. LDA refers to the Local Delivery
+Agent: Procmail, Maildrop, etc..
+ &lt;/p&gt;
+ &lt;/center&gt;
+ </description>
+ <value>lda</value>
+ <dontdisplayname />
+ <typehint>&lt;center&gt;&lt;img src=&quot;/wizards/dspam-lda-proxy.png&quot; alt=&quot;DSPAM acts as a LDA proxy&quot; border=&quot;0&quot; /&gt;&lt;/center&gt;</typehint>
+ </field>
+ <field>
+ <name>dspamprofile</name>
+ <type>radio</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-profile</bindstofield>
+ <description>
+ &lt;center&gt;
+If you don't want to tinker with your existing mail server setup, DSPAM can
+be combined with one of a few open source programs designed to act as a POP3
+proxy. This means spam is filtered whenever the user checks their mail,
+rather than when it is delivered. The benefit to this is that you can set up
+a small machine on your network that will connect to your existing mail server,
+so no integration is needed. It also allows your users to arbitarily point their
+mail client at it if they desire filtering. The drawback to this approach is
+that the POP3 protocol has no way to tell the mail client that a message is
+spam, and so the user will have to download the spam (tagged, of course).
+ &lt;/center&gt;
+ </description>
+ <value>pop</value>
+ <dontdisplayname />
+ <typehint>&lt;center&gt;&lt;img src=&quot;/wizards/dspam-pop-proxy.png&quot; alt=&quot;DSPAM will be invoked by a POP3 proxy&quot; border=&quot;0&quot; /&gt;&lt;/center&gt;</typehint>
+ </field>
+ <field>
+ <name>dspamprofile</name>
+ <type>radio</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-profile</bindstofield>
+ <description>
+ &lt;center&gt;
+Newer versions of DSPAM have seen features that allow it to function more
+easily as an SMTP relay. An SMTP relay sits in front of your existing mail
+server (requiring no integration). To use an SMTP relay, the MX records for
+your domains are repointed to the relay machine running DSPAM. DSPAM then
+relays the good (and optionally bad) mail to the existing SMTP server. This
+allows you to use DSPAM with even a Windows-based destination mail server
+as no integration is necessary. See doc/relay.txt for one example of how to
+do this with Postfix.
+ &lt;/center&gt;
+ </description>
+ <value>smtp</value>
+ <dontdisplayname />
+ <typehint>&lt;center&gt;&lt;img src=&quot;/wizards/dspam-smtp-relay.png&quot; alt=&quot;DSPAM acts as a SMTP realy&quot; border=&quot;0&quot; /&gt;&lt;/center&gt;</typehint>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+ <stepsubmitphpaction>
+ if($_POST['dspamprofile'] != "") {
+
+ /* set default trusted users */
+ $config['installedpackages']['dspam']['config'][0]['tuser'][0]['name'] = "root";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][1]['name'] = "mail";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][1]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][2]['name'] = "mailnull";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][2]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][3]['name'] = "smmsp";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][3]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][4]['name'] = "daemon";
+ $config['installedpackages']['dspam']['config'][0]['tuser'][4]['descr'] = "desc";
+ /* set default features */
+ $config['installedpackages']['dspam']['config'][0]['feature'][0]['name'] = "chained";
+ $config['installedpackages']['dspam']['config'][0]['feature'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['feature'][1]['name'] = "whitelist";
+ $config['installedpackages']['dspam']['config'][0]['feature'][1]['descr'] = "desc";
+ /* set default algorithms */
+ $config['installedpackages']['dspam']['config'][0]['algorithm'][0]['name'] = "graham";
+ $config['installedpackages']['dspam']['config'][0]['algorithm'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['algorithm'][1]['name'] = "burton";
+ $config['installedpackages']['dspam']['config'][0]['algorithm'][1]['descr'] = "desc";
+ /* set default prefs */
+ $config['installedpackages']['dspam']['config'][0]['preference'][0]['value'] = "\"spamAction=quarantine\"";
+ $config['installedpackages']['dspam']['config'][0]['preference'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['preference'][1]['value'] = "\"signatureLocation=message\"";
+ $config['installedpackages']['dspam']['config'][0]['preference'][1]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['preference'][2]['value'] = "\"showFactors=on\"";
+ $config['installedpackages']['dspam']['config'][0]['preference'][2]['descr'] = "desc";
+ /* set default overrides */
+ $config['installedpackages']['dspam']['config'][0]['override'][0]['value'] = "trainingMode";
+ $config['installedpackages']['dspam']['config'][0]['override'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][1]['value'] = "spamAction spamSubject";
+ $config['installedpackages']['dspam']['config'][0]['override'][1]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][2]['value'] = "statisticalSedation";
+ $config['installedpackages']['dspam']['config'][0]['override'][2]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][3]['value'] = "enableBNR";
+ $config['installedpackages']['dspam']['config'][0]['override'][3]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][4]['value'] = "enableWhitelist";
+ $config['installedpackages']['dspam']['config'][0]['override'][4]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][5]['value'] = "signatureLocation";
+ $config['installedpackages']['dspam']['config'][0]['override'][5]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][6]['value'] = "showFactors";
+ $config['installedpackages']['dspam']['config'][0]['override'][6]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][7]['value'] = "optIn optOut";
+ $config['installedpackages']['dspam']['config'][0]['override'][7]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['override'][8]['value'] = "whitelistThreshold";
+ $config['installedpackages']['dspam']['config'][0]['override'][8]['descr'] = "desc";
+
+ if($_POST['dspamprofile'] == "lda" || $_POST['dspamprofile'] == "pop") {
+ $config['installedpackages']['dspam']['config'][0]['tdelivery-agent'] = "mail";
+ /* TCP/IP based deliver is not needed */
+ unset($config['installedpackages']['dspam']['config'][0]['tcpip-delivery']);
+ unset($config['installedpackages']['dspam']['config'][0]['tcpip-delivery-host']);
+ unset($config['installedpackages']['dspam']['config'][0]['tcpip-delivery-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['tcpip-delivery-ident']);
+ unset($config['installedpackages']['dspam']['config'][0]['tcpip-delivery-proto']);
+ $config['installedpackages']['dspam']['config'][0]['delivery-onfail'] = "error";
+
+ /* We will asume that the user is going to use the dspam and not the dspamc
+ * binary. Hence we are unsetting server/client settings.
+ */
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-queue-size']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-pid']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-mode']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-params']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-id']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-server-socket']);
+ /* Client */
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-client-enable']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-client-host']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-client-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dspam-client-id']);
+ } else if($_POST['dspamprofile'] == "smtp") {
+ /* TCP/IP based deliver is not needed */
+ $config['installedpackages']['dspam']['config'][0]['tcpip-delivery'] = "on";
+ $config['installedpackages']['dspam']['config'][0]['tcpip-delivery-host'] = "127.0.0.1";
+ $config['installedpackages']['dspam']['config'][0]['tcpip-delivery-port'] = "25";
+ $config['installedpackages']['dspam']['config'][0]['tcpip-delivery-ident'] = "localhost";
+ $config['installedpackages']['dspam']['config'][0]['tcpip-delivery-proto'] = "smtp";
+ $config['installedpackages']['dspam']['config'][0]['delivery-onfail'] = "error";
+
+ /* We will asume that the user is going to use the dspam and not the dspamc
+ * binary. Hence we are unsetting server/client settings.
+ */
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-port'] = "24";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-queue-size'] = "32";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-pid'] = "/var/run/dspam/dspam.pid";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-mode'] = "standard";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-params'] = "--deliver=innocent -d %u";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-id'] = "localhost";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-socket'] = "/var/run/dspam/dspam.sock";
+ /* server passwords */
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][0]['value'] = "secret";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][1]['value'] = "password";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][1]['descr'] = "desc";
+ /* Client */
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-enable'] = "on";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-host'] = "/tmp/dspam.sock";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-port'] = "24";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-id'] = "secret@Relay1";
+ }
+
+ write_config();
+ }
+ </stepsubmitphpaction>
+</step>
+<step>
+ <id>3</id>
+ <includefile>dspam.inc</includefile>
+ <title>Database Settings</title>
+ <description>
+ On this screen you will set the storage driver type that will be used to store
+ DSPAM tokens. After having completed this wizard you have to configure the
+ database that you did select herein.
+ </description>
+ <fields>
+ <field>
+ <name>storagedriver</name>
+ <type>select</type>
+ <bindstofield>installedpackages->dspam->config->0->storage-driver</bindstofield>
+ <description>Specifies the storage driver backend (library) to use.</description>
+ <default_value>mysql</default_value>
+ <onchange>toggleDBSettings();</onchange>
+ <size>1</size>
+ <options>
+ <option>
+ <name>mysql</name>
+ <value>mysql</value>
+ </option>
+ <option>
+ <name>sqlite</name>
+ <value>sqlite</value>
+ </option>
+ <option>
+ <name>bdb</name>
+ <value>bdb</value>
+ </option>
+ <option>
+ <name>pgsql</name>
+ <value>pgsql</value>
+ </option>
+ <option>
+ <name>oracle</name>
+ <value>oracle</value>
+ </option>
+ <option>
+ <name>hash</name>
+ <value>hash</value>
+ </option>
+ </options>
+ </field>
+ <field>
+ <name>msqlserver</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-server</bindstofield>
+ <description>Either a reference to a Unix domain socket or a reference to a specific host.</description>
+ <default_value>/tmp/mysql.sock</default_value>
+ <validate>^[a-z0-9.|/]+$</validate>
+ <message>Server name field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>msqlport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-port</bindstofield>
+ <description>Use this variable if you are going to a MySQL server instance using TCP/IP instead of a socket connection.</description>
+ <default_value>3306</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Port field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>msqluser</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-user</bindstofield>
+ <description>Username, that will be used to connect to a MySQL server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>msqlpwd</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-password</bindstofield>
+ <description>Password, that will be used to connect to a MySQL server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>msqldb</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-database</bindstofield>
+ <description>Database name, that contains DSPAM data.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>msqlcomp</name>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-compress</bindstofield>
+ <description>Indicates whether communication data between DSPAM and MySQL should be compressed.</description>
+ <default_value>on</default_value>
+ </field>
+ <field>
+ <name>msqlsuqt</name>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-squote</bindstofield>
+ <description>Use this if you have the 4.1 quote bug (see doc/mysql.txt).</description>
+ </field>
+ <field>
+ <name>msqlccache</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-ccache</bindstofield>
+ <description>Conection cache default set to 10.</description>
+ <default_value>10</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Connection cache field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>msqluid</name>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->mysql-uid</bindstofield>
+ <description>Insert user id into the DSPAM signature.</description>
+ <default_value>on</default_value>
+ </field>
+ <field>
+ <name>slitepr</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->sqlite-pragma</bindstofield>
+ <description>A particular SQLite pragma command to be used.</description>
+ </field>
+ <field>
+ <name>pgserver</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-server</bindstofield>
+ <description>A reference to a specific host that is running a PostgreSQL instance.</description>
+ <default_value>127.0.0.1</default_value>
+ <validate>^[a-z0-9.|-]+$</validate>
+ <message>Server name field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>pgport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-port</bindstofield>
+ <description>A number that represents the port a specific PostgreSQL instance is listening to.</description>
+ <default_value>5432</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Port field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>pguser</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-user</bindstofield>
+ <description>Username, that will be used to connect to a PostgreSQL server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>pgpwd</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-password</bindstofield>
+ <description>Password, that will be used to connect to a PostgreSQL server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>pgdb</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-database</bindstofield>
+ <description>Database name, that contains DSPAM data.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>pgccache</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-ccache</bindstofield>
+ <description>Conection cache default set to 3.</description>
+ <default_value>3</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Connection cache field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>pguid</name>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->pgsql-uid</bindstofield>
+ <description>Insert user id into the DSPAM signature.</description>
+ <default_value>on</default_value>
+ </field>
+ <field>
+ <name>oraserver</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->ora-server</bindstofield>
+ <description>A reference to a specific host that is running an Oracle database instance.</description>
+ <size>50</size>
+ <default_value>&quot;(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521))(CONNECT_DATA=(SID=PROD)))&quot;</default_value>
+ <required />
+ </field>
+ <field>
+ <name>orauser</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->ora-user</bindstofield>
+ <description>Username, that will be used to connect to a Oracle database server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>orapwd</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->ora-password</bindstofield>
+ <description>Password, that will be used to connect to a Oracle database server instance.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>orasch</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->ora-schema</bindstofield>
+ <description>Schema name, that contains DSPAM data.</description>
+ <default_value>dspam</default_value>
+ <required />
+ </field>
+ <field>
+ <name>hsrmax</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-rec-max</bindstofield>
+ <description>Default number of records to create in the initial segment when building hash files.</description>
+ <default_value>98317</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Default number of record field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>hsatex</name>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-auto-ex</bindstofield>
+ <description>Autoextend hash databases when they fill up. This allows them to continue to train by adding extents (extensions) to the file.</description>
+ <default_value>on</default_value>
+ <required />
+ </field>
+ <field>
+ <name>hsmxex</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-max-ext</bindstofield>
+ <description>The maximum number of extents that may be created in a single hash file.</description>
+ <default_value>0</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Default number of record field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>hsexsz</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-ext-size</bindstofield>
+ <description>The record size for newly created extents.</description>
+ <default_value>49157</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Default number of record field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>hsmxse</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-max-seek</bindstofield>
+ <description>The maximum number of records to seek to insert a new record before failing or adding a new extent.</description>
+ <default_value>100</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Default number of record field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>hsccus</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-co-user</bindstofield>
+ <description>If you are using a single, stateful hash database in daemon mode, specifying a concurrent user will cause the user to be permanently mapped into memory and shared via rwlocks.</description>
+ <default_value>user</default_value>
+ <required />
+ </field>
+ <field>
+ <name>hscoca</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dbsettings->0->hash-co-cache</bindstofield>
+ <description>If running in daemon mode, this is the max # of concurrent connections that will be supported.</description>
+ <default_value>10</default_value>
+ <validate>^[0-9]+$</validate>
+ <message>Default number of record field is invalid</message>
+ <required />
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+ <stepsubmitphpaction>
+ if ($_POST['storagedriver'] == "mysql") {
+ /* ============================================================================================= */
+ /* == SQLite == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['sqlite-pragma']);
+ /* ============================================================================================= */
+ /* == PostgreSQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-uid']);
+ /* ============================================================================================= */
+ /* == Oracle == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-schema']);
+ /* ============================================================================================= */
+ /* == Hash == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-rec-max']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-auto-ex']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-ext']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-ext-size']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-seek']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-cache']);
+ } else if ($_POST['storagedriver'] == "sqlite") {
+ /* ============================================================================================= */
+ /* == MySQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-compress']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-squote']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-uid']);
+ /* ============================================================================================= */
+ /* == PostgreSQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-uid']);
+ /* ============================================================================================= */
+ /* == Oracle == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-schema']);
+ /* ============================================================================================= */
+ /* == Hash == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-rec-max']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-auto-ex']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-ext']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-ext-size']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-seek']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-cache']);
+ } else if ($_POST['storagedriver'] == "bdb") {
+ /* NOP */
+ } else if ($_POST['storagedriver'] == "pgsql") {
+ /* ============================================================================================= */
+ /* == MySQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-compress']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-squote']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-uid']);
+ /* ============================================================================================= */
+ /* == SQLite == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['sqlite-pragma']);
+ /* ============================================================================================= */
+ /* == Oracle == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-schema']);
+ /* ============================================================================================= */
+ /* == Hash == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-rec-max']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-auto-ex']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-ext']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-ext-size']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-seek']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-cache']);
+ } else if ($_POST['storagedriver'] == "oracle") {
+ /* ============================================================================================= */
+ /* == MySQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-compress']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-squote']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-uid']);
+ /* ============================================================================================= */
+ /* == SQLite == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['sqlite-pragma']);
+ /* ============================================================================================= */
+ /* == PostgreSQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-uid']);
+ /* ============================================================================================= */
+ /* == Hash == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-rec-max']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-auto-ex']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-ext']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-ext-size']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-max-seek']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['hash-co-cache']);
+ } else if ($_POST['storagedriver'] == "hash") {
+ /* ============================================================================================= */
+ /* == MySQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-compress']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-squote']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['mysql-uid']);
+ /* ============================================================================================= */
+ /* == SQLite == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['sqlite-pragma']);
+ /* ============================================================================================= */
+ /* == PostgreSQL == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-port']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-database']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-ccache']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['pgsql-uid']);
+ /* ============================================================================================= */
+ /* == Oracle == */
+ /* ============================================================================================= */
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-server']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-user']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-password']);
+ unset($config['installedpackages']['dspam']['config'][0]['dbsettings'][0]['ora-schema']);
+ }
+ </stepsubmitphpaction>
+ <javascriptafterformdisplay>
+ function toggleDBSettings(idx) {
+ if (idx)
+ idx = idx;
+ else
+ idx = document.iform.storagedriver.selectedIndex;
+
+ switch (idx) {
+ case 0: /* mysql */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "none";
+ break;
+ case 1: /* sqlite */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "none";
+ break;
+ case 2: /* bdb */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "none";
+ break;
+ case 3: /* pgsql */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "none";
+ break;
+ case 4: /* oracle */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "none";
+ break;
+ case 5: /* hash */
+ /* mysql specifics */
+ trNode = document.iform.msqlserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqldb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlcomp.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlsuqt.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqlccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.msqluid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* sqlite specifics */
+ trNode = document.iform.slitepr.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* pgsql specifics */
+ trNode = document.iform.pgserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgport.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgpwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgdb.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pgccache.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.pguid.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* oracle specifics */
+ trNode = document.iform.oraserver.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orauser.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orapwd.parentNode.parentNode;
+ trNode.style.display = "none";
+ trNode = document.iform.orasch.parentNode.parentNode;
+ trNode.style.display = "none";
+ /* hash specifics */
+ trNode = document.iform.hsrmax.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hsatex.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hsmxex.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hsexsz.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hsmxse.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hsccus.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ trNode = document.iform.hscoca.parentNode.parentNode;
+ trNode.style.display = "table-row";
+ break;
+ }
+ }
+
+ toggleDBSettings(0);
+ </javascriptafterformdisplay>
+</step>
+<step>
+ <id>4</id>
+ <includefile>dspam.inc</includefile>
+ <title>Delivery Settings</title>
+ <description>
+ On this page you will specify how DSPAM should deliver email messages to
+ their final destination. This could be either a local delivery method or
+ a TCP/IP based delivery method.
+ </description>
+ <fields>
+ <field>
+ <name>dagent</name>
+ <description>Specifies the local delivery agent DSPAM should call when delivering mail as a trusted user.</description>
+ <type>select</type>
+ <options>
+ <option>
+ <name>procmail</name>
+ <value>procmail</value>
+ </option>
+ <option>
+ <name>mail</name>
+ <value>mail</value>
+ </option>
+ <option>
+ <name>mail.local</name>
+ <value>mail.local</value>
+ </option>
+ <option>
+ <name>deliver</name>
+ <value>deliver</value>
+ </option>
+ <option>
+ <name>maildrop</name>
+ <value>maildrop</value>
+ </option>
+ <option>
+ <name>exim</name>
+ <value>exim</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->tdelivery-agent</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>dspamc</name>
+ <description>Use &lt;code&gt;dspamc&lt;/code&gt; instead of &lt;code&gt;dspam&lt;/code&gt; to locally deliver mails from the MTA to the user's mailbox (this pulls in DSPAM client/server settings).</description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>tcpipdel</name>
+ <description>Use TCP/IP based delivery. This option needs to be ticked if you are going to deliver via LMTP or SMTP.</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->tcpip-delivery</bindstofield>
+ <enablefields>dhost,dport,dident,delproto</enablefields>
+ </field>
+ <field>
+ <name>dhost</name>
+ <type>input</type>
+ <donotdisable>false</donotdisable>
+ <bindstofield>installedpackages->dspam->config->0->tcpip-delivery-host</bindstofield>
+ <description>Alternatively, you may wish to use SMTP or LMTP delivery to deliver your message to the mail server.</description>
+ <validate>^[a-z0-9.|-]+$</validate>
+ <message>Host name field is invalid</message>
+ </field>
+ <field>
+ <name>dport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->tcpip-delivery-port</bindstofield>
+ <description>Port number of a particular host.</description>
+ <validate>^[0-9]+$</validate>
+ <message>Port field is invalid</message>
+ </field>
+ <field>
+ <name>dident</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->tcpip-delivery-ident</bindstofield>
+ <description>A particular identification string.</description>
+ </field>
+ <field>
+ <name>delproto</name>
+ <description>A particular protocol typ. Either SMTP or LMTP.</description>
+ <type>select</type>
+ <options>
+ <option>
+ <name>ltmp</name>
+ <value>lmtp</value>
+ </option>
+ <option>
+ <name>smtp</name>
+ <value>smtp</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->tcpip-delivery-proto</bindstofield>
+ </field>
+ <field>
+ <name>onfail</name>
+ <description>What to do if local delivery or quarantine should fail.</description>
+ <type>select</type>
+ <options>
+ <option>
+ <name>error</name>
+ <value>error</value>
+ </option>
+ <option>
+ <name>unlearn</name>
+ <value>unlearn</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->delivery-onfail</bindstofield>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+ <stepsubmitphpaction>
+ if($_POST['dspamc'] != "") {
+ /* DSPAM server settings */
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-port'] = "24";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-queue-size'] = "32";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-pid'] = "/var/run/dspam/dspam.pid";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-mode'] = "auto";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-params'] = "--deliver=innocent -d %u";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-id'] = "abysseleven.abyssworld.de";
+ $config['installedpackages']['dspam']['config'][0]['dspam-server-socket'] = "/var/run/dspam/dspam.sock";
+
+ /* server passwords */
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][0]['value'] = "secret";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][0]['descr'] = "desc";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][1]['value'] = "password";
+ $config['installedpackages']['dspam']['config'][0]['server-pwd'][1]['descr'] = "desc";
+
+ /* DSPAM client settings */
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-enable'] = "on";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-host'] = "/tmp/dspam.sock";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-port'] = "24";
+ $config['installedpackages']['dspam']['config'][0]['dspam-client-id'] = "secret@Relay1";
+ write_config();
+ }
+ </stepsubmitphpaction>
+</step>
+<step>
+ <id>5</id>
+ <includefile>dspam.inc</includefile>
+ <title> DSPAM Debugging Options</title>
+ <description>
+ Usually the DSPAM binary that ships with pfSense does not contain debugging symbols.
+ Hence it makes little sense to enable debugging options. If you are quite certain that
+ your DSPAM distribution comes with debugging enabled you may tweak the below debugging
+ options.
+ </description>
+ <fields>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enabledbg</name>
+ <description>Enable debugging.</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->debug-enable</bindstofield>
+ <enablefields>debug,dopt</enablefields>
+ </field>
+ <field>
+ <name>debug</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->debug-whom</bindstofield>
+ <description>Enables debugging for some or all users.</description>
+ </field>
+ <field>
+ <name>dopt</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->debug-options</bindstofield>
+ <description>One or more of: process, classify, spam, fp, inoculation, corpus</description>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>6</id>
+ <includefile>dspam.inc</includefile>
+ <title>DSPAM Engine Settings</title>
+ <description>
+ On this page you will find some specific options required to operate the DSPAM engine. Please
+ consult your &lt;code&gt;dspam.conf&lt;/code&gt; for a detailed explanation of each option.
+ If you are unsure about the meaning of a particular option, please use the default values.
+ </description>
+ <fields>
+ <field>
+ <name>tmode</name>
+ <description>
+ The default training mode to use for all operations, when one has not
+ been specified on the commandline or in the user's preferences (default: teft).
+ </description>
+ <type>select</type>
+ <default_value>teft</default_value>
+ <options>
+ <option>
+ <name>toe</name>
+ <value>toe</value>
+ </option>
+ <option>
+ <name>tum</name>
+ <value>tum</value>
+ </option>
+ <option>
+ <name>teft</name>
+ <value>teft</value>
+ </option>
+ <option>
+ <name>notrain</name>
+ <value>notrain</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->training-mode</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>testct</name>
+ <default_value>on</default_value>
+ <description>
+ By default, dspam will retrain certain errors until the condition is
+ no longer met (default: enabled).
+ </description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->test-cond-training</bindstofield>
+ </field>
+ <field>
+ <name>pvalue</name>
+ <description>
+ Specify the technique used for calculating PValues, overriding any
+ defaults configured in the build (default: graham).
+ </description>
+ <type>select</type>
+ <default_value>teft</default_value>
+ <options>
+ <option>
+ <name>graham</name>
+ <value>graham</value>
+ </option>
+ <option>
+ <name>robinson</name>
+ <value>robinso</value>
+ </option>
+ <option>
+ <name>markov</name>
+ <value>markov</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->pvalue</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>ipdrive</name>
+ <default_value>on</default_value>
+ <description>
+ Calculate odds-ratios for ham/spam, and add to X-DSPAM-Improbability
+ headers (default: disabled).
+ </description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->improbability-drive</bindstofield>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>7</id>
+ <includefile>dspam.inc</includefile>
+ <title>LDAP Settings</title>
+ <description>
+ DSPAM comes with the ability to verify users agains user records stored within a LDAP directory.
+ If using this option, it would be for example possible to verify mail users against Windows
+ user entries stored within an Active Directory. Please consider this feature as somewhat experimental.
+ </description>
+ <fields>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enableldap</name>
+ <description>Enable checks against a LDAP directory.</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->ldap-enable</bindstofield>
+ <enablefields>ldapmode,ldaphost,ldapfilter,ldapbase</enablefields>
+ </field>
+ <field>
+ <name>ldapmode</name>
+ <description>
+ Perform various LDAP functions depending on LDAPMode variable.
+ </description>
+ <type>select</type>
+ <default_value>verify</default_value>
+ <options>
+ <option>
+ <name>verify</name>
+ <value>verify</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->ldap-mode</bindstofield>
+ </field>
+ <field>
+ <name>ldaphost</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->ldap-host</bindstofield>
+ <description>Hostname of the LDAP directory server.</description>
+ </field>
+ <field>
+ <name>ldapfilter</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->ldap-filter</bindstofield>
+ <description>A specific query filter, that should be used while querying the LDAP server.</description>
+ </field>
+ <field>
+ <name>ldapbase</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->ldap-base</bindstofield>
+ <description>A particular distinguish name from where to start LDAP queries.</description>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>8</id>
+ <includefile>dspam.inc</includefile>
+ <title>Miscellaneous Settings</title>
+ <description>
+ On this page we will give you an opertunity to fine-tune the DSPAM engine. As mentioned earlier,
+ if you are unsure about the meaning of a particular option, use its default value.
+ </description>
+ <fields>
+ <field>
+ <name>foatt</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->failover-attempts</bindstofield>
+ <description>A particular number of attempts (default: 1).</description>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablesbl</name>
+ <description>Enable checks against a particular SBL host (default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->sbl-enable</bindstofield>
+ <enablefields>sblhost</enablefields>
+ </field>
+ <field>
+ <name>sblhost</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->sbl-host</bindstofield>
+ <description>A particular SBL hostname (default: none).</description>
+ <size>30</size>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablerbl</name>
+ <description>Enable RBL inoculation support (default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->rbl-inoculate</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablenoti</name>
+ <description>Enable the sending of notification emails to users (first message, quarantine full, etc. default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->notification-email</bindstofield>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>9</id>
+ <includefile>dspam.inc</includefile>
+ <title>Maintainance Settings</title>
+ <description>
+ DSPAM stores token data etc. in some kind of a database (e.g. a RDBMS or flat files).
+ Over time, this token data may consume lots of space. Hence it makes sense to run
+ certain routines to clean up unused data.
+ </description>
+ <fields>
+ <field>
+ <name>psig</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-signatures</bindstofield>
+ <description>Purge stale signatures (default: 14).</description>
+ </field>
+ <field>
+ <name>pneut</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-neutral</bindstofield>
+ <description>Purge tokens with neutralish probabilities (default: 90).</description>
+ </field>
+ <field>
+ <name>punu</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-unused</bindstofield>
+ <description>Purge unused tokens (default: 90).</description>
+ </field>
+ <field>
+ <name>phapa</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-hapaxes</bindstofield>
+ <description> Purge tokens with less than 5 hits (hapaxes - default: 30).</description>
+ </field>
+ <field>
+ <name>pones</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-hits-1s</bindstofield>
+ <description>Purge tokens with only 1 spam hit (default: 15).</description>
+ </field>
+ <field>
+ <name>ponei</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->purge-hits-1i</bindstofield>
+ <description> Purge tokens with only 1 innocent hit (default: 15).</description>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>10</id>
+ <includefile>dspam.inc</includefile>
+ <title>System Settings</title>
+ <description>
+ This page contains additional settings related to the DSPAM system such as logging,
+ message processing behaviour et cetera.
+ </description>
+ <fields>
+ <field>
+ <name>locmx</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->local-mx</bindstofield>
+ <description>
+ Local Mail Exchangers: Used for source address tracking, tells DSPAM
+ which mail exchangers are local and therefore should be ignored in the
+ Received: header when tracking the source of an email. Note: you should
+ use the address of the host as appears between brackets [ ] in the
+ Received header (default: 127.0.0.1).
+ </description>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablesysl</name>
+ <description>Enable system logging (default: enabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->system-log</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enableusel</name>
+ <description>Enable per user logging (default: enabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->user-log</bindstofield>
+ </field>
+ <field>
+ <name>optinout</name>
+ <description>
+ Opt: in or out; determines DSPAM's default filtering behavior (default: out).
+ </description>
+ <type>select</type>
+ <default_value>out</default_value>
+ <options>
+ <option>
+ <name>out</name>
+ <value>out</value>
+ </option>
+ <option>
+ <name>in</name>
+ <value>in</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->filter-opt</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enableptoh</name>
+ <description>Parse the To: headers of an incoming message. (default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->parse-to-headers</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablecmop</name>
+ <description>Automatically change the class (to spam or innocent - default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->change-mode-on-parse</bindstofield>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enablecuop</name>
+ <description>Automatically change the username to match that specified in the To: header (default: enabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->change-user-on-parse</bindstofield>
+ </field>
+ <field>
+ <name>maxmsgs</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->max-message-size</bindstofield>
+ <description>
+ You may specify a maximum message size in bytes for DSPAM to process. (default: 307200).
+ </description>
+ </field>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>procbias</name>
+ <description>
+ Bias causes the filter to lean more toward &quot;innocent&quot;, and usually
+ greatly reduces false positives. It is the default behavior of most
+ Bayesian filters, including dspam (default: enabled).
+ </description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->processor-bias</bindstofield>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>11</id>
+ <includefile>dspam.inc</includefile>
+ <title>ClamAV Engine Settings</title>
+ <description>
+ DSPAM comes with an additional feature which allows to scan mail messages
+ for malicious code (i.e. virii). If you require messages not only to be
+ classified as Spam/Ham but additionally to be scanned for virii, enable
+ to appropriate option below.
+ </description>
+ <fields>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enableclam</name>
+ <description>Enable ClamAV Engine (default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->clamav-enable</bindstofield>
+ <enablefields>clamport,clamhost,clamresp</enablefields>
+ </field>
+ <field>
+ <name>clamport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->clamav-port</bindstofield>
+ <description>A number that specifies the port the ClamAV daemon is listening to (default: none).</description>
+ </field>
+ <field>
+ <name>clamhost</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->clamav-host</bindstofield>
+ <description>An IP address that points to the host the ClamAV daemon is running on (default: none).</description>
+ </field>
+ <field>
+ <name>clamresp</name>
+ <description>The action that should take place, if ClamAV reports a positive (default: none).</description>
+ <type>select</type>
+ <default_value>accept</default_value>
+ <options>
+ <option>
+ <name>reject</name>
+ <value>reject</value>
+ </option>
+ <option>
+ <name>accept</name>
+ <value>accept</value>
+ </option>
+ <option>
+ <name>spam</name>
+ <value>spam</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->clamav-response</bindstofield>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>12</id>
+ <includefile>dspam.inc</includefile>
+ <title>DSPAM Daemon Settings (Server)</title>
+ <description>
+ DSPAM can be either invoked per message (i.e. a thread per message) or it
+ can be run as a daemon in the background. The latter option enables DSPAM
+ to maintain database connection pools which may increase overall performance.
+ Based on the profile, that you did choose initially, some of the below options
+ may be already set.
+ </description>
+ <fields>
+ <field>
+ <name>dsport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-port</bindstofield>
+ <description>A number that specifies the port the DSPAM daemon is listening to (default: none).</description>
+ </field>
+ <field>
+ <name>dsqsize</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-queue-size</bindstofield>
+ <description>A number that specifies the server's queue size (default: none).</description>
+ </field>
+ <field>
+ <name>dspid</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-pid</bindstofield>
+ <description> Keep this is sync with &lt;code&gt;/usr/local/etc/rc.d/dspam.rc&lt;/code&gt; script (default: none).</description>
+ <size>40</size>
+ </field>
+ <field>
+ <name>dssmode</name>
+ <description>Specifies the type of LMTP server to start. (default: none).</description>
+ <type>select</type>
+ <default_value>auto</default_value>
+ <options>
+ <option>
+ <name>dspam</name>
+ <value>dspam</value>
+ </option>
+ <option>
+ <name>standard</name>
+ <value>standard</value>
+ </option>
+ <option>
+ <name>auto</name>
+ <value>auto</value>
+ </option>
+ </options>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-mode</bindstofield>
+ </field>
+ <field>
+ <name>serverparam</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-params</bindstofield>
+ <description>Parameters which will be passed to the LMTP server (default: none).</description>
+ </field>
+ <field>
+ <name>serverid</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-id</bindstofield>
+ <description>An identification string which will be used to be passed to the LMTP server (default: none).</description>
+ </field>
+ <field>
+ <name>serversock</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-server-socket</bindstofield>
+ <description>A local Unix domain socket (default: none).</description>
+ <size>40</size>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>13</id>
+ <includefile>dspam.inc</includefile>
+ <title>DSPAM Daemon Settings (Client)</title>
+ <description>
+ If you did configure DSPAM to run in dspam mode, it is required to configure
+ client settings because DSPAM needs for example to authenticate against its
+ server counterpart.
+ </description>
+ <fields>
+ <field>
+ <donotdisable>true</donotdisable>
+ <name>enabledsclient</name>
+ <description>Run DSPAM in client mode (default: disabled).</description>
+ <type>checkbox</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-client-enable</bindstofield>
+ <enablefields>dsclhost,dsclport,dsclident</enablefields>
+ </field>
+ <field>
+ <name>dsclhost</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-client-host</bindstofield>
+ <description>An IP address or a Unix domain socket (default: none).</description>
+ </field>
+ <field>
+ <name>dsclport</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-client-port</bindstofield>
+ <description>Will be only used if this client uses TCP/IP communication (default: none).</description>
+ </field>
+ <field>
+ <name>dsclident</name>
+ <type>input</type>
+ <bindstofield>installedpackages->dspam->config->0->dspam-client-id</bindstofield>
+ <description>A string that will be used to identify the client against a server. (default: none).</description>
+ <size>40</size>
+ </field>
+ <field>
+ <name>Next</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>14</id>
+ <includefile>dspam.inc</includefile>
+ <title>Reload configuration</title>
+ <disableheader>true</disableheader>
+ <description>Click 'Reload' to reload the DSPAM daemon with new changes.</description>
+ <fields>
+ <field>
+ <name>Reload</name>
+ <type>submit</type>
+ </field>
+ </fields>
+</step>
+<step>
+ <id>15</id>
+ <includefile>dspam.inc</includefile>
+ <title>Reload in progress</title>
+ <description>
+ A reload is now in progress. Please wait. &lt;p&gt; The system will
+ automatically try to access DSPAM settings in 120 page seconds. &lt;p&gt;
+ You can click on the icon above to access the site more quickly.
+ </description>
+ <javascriptafterformdisplay>
+ window.setTimeout('window.location.href = "/dspam-settings.php"', 120000);
+ </javascriptafterformdisplay>
+ <stepafterformdisplay>
+ dspam_configure();
+ mwexec("/usr/local/etc/rc.d/spamd.sh stop");
+ mwexec("/usr/local/etc/rc.d/spamd.sh start");
+ </stepafterformdisplay>
+</step>
+</pfsensewizard>