09 Sep 2010 
Support Center » Knowledgebase » MPP WBL's using SQL Template Queries
 MPP WBL's using SQL Template Queries
Solution MPP WBL's can be defined in XML using: spam_whitelist/blacklist for inline options, wbl_uri  using file:// or mysql:// URI's. New SQL Template Queries would allow creation of custom queries for WBL's.
Both inline, file, mysql and custom query based WBL's can be used in the same time, custom query based WBL's being verified first.

Example of MySQL WBL's using SQL Template Queries:

<mppd>
<common>
...
<passwords>/usr/local/MPP/secret.txt</passwords>
...
</common>
<groups>
<group id=”default”>
...
<wbl_engines>mpp.wbl</wbl_engines>
...
</group>
...
</groups>
<engines>
...
        <mysql id="mpp">
            <connection>
                <host>localhost.localdomain</host>
                <port>3306</port>
                <database>mpp</database>
                <unix_socket>/tmp/mysql.sock</unix_socket>
                <defaults_file>/etc/my­.cnf</defaults_file>
                <user>root</user>
    <password_id>root_password_id</password>
            </connection>
            <query id="wbl">
                <template>
                    SELECT `wbl_lists`.`condition` AS `condition` FROM `users`,`wbl_lists`,`contacts`
                    WHERE `wbl_lists`.`user_id`=`users`.`id` AND `wbl_lists`.`contact_id`=`contacts`.`id`
                    AND (
                            (       (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $sender.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $recipient.component}})
                                AND (`wbl_lists`.`direction`=0)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $recipient.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $sender.component}})
                                AND (`wbl_lists`.`direction`=1)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $sender.component}})
                                AND (`contacts`.`address`='*'
                                         ${wrap { OR `contacts`.`address`='$#'} ${escape $recipient.component}})
                                AND (`wbl_lists`.`direction`=2)
                            )
                            OR
                            (           (`users`.`address`='*'
                                        ${wrap { OR `users`.`address`='$#'} ${escape $recipient.component}})
                                AND (`contacts`.`address`='*'
                                        ${wrap { OR `contacts`.`address`='$#'} ${escape $sender.component}})
                                AND (`wbl_lists`.`direction`=2)
                            )
                        )
                </template>
   <result id="result">
                    <if_empty_table>
                        <result>none</result>
                    </if_empty_table>
                    <if_filled_table>
                        <row_to_case_relation>all­to­one</row_to_case_relation>
                        <case>
                            <condition>${field condition} $EQ 0</condition>
                            <result>spam_whitelist</result>
                        </case>
                        <case>
                            <condition>${field condition} $EQ 1</condition>
                            <result>blacklist</result>
                        </case>
                        <result>none</result>
                   </if_filled_table>
                </result>
            </query>
        </mysql>
  ...
</engines>
</mppd>



Article Details
Article ID: 42
Created On: 03 Mar 2009 11:39 PM

 This answer was helpful  This answer was not helpful

 Back
 Login [Lost Password] 
Email:
Password:
Remember Me:
 
 Search
 Article Options
Home | Register | Submit a Ticket | Knowledgebase | Downloads
Language: