function to_string() {
global $philter;
-
- $res = $this->block ? ":0\n" : ":0 c\n";
+ $tmp = array();
- if($this->all) {
- foreach($this->matches as $match)
- $res .= $philter->config['match_plugins'][$match[0]]->to_string($match);
- } else {
- $i = 0; $res = '';
- foreach($this->matches as $match) {
- $res .= (empty($i) ? ":0 f\n" : ":0 fE");
- $res .= $philter->config['match_plugins'][$match[0]]->to_string($match);
- $res .= "| formail -I'X-Philter-Or: yes'\n";
- $i++;
- }
-
- $res.= "\n"
- . ":0 f\n"
- . "* ^X-Philter-Or: yes\n"
- . "| formail -I'X-Philter-Or'\n"
- . "\n"
- . ($this->block ? ":0\n" : ":0 c\n");
- }
+ foreach($this->matches as $match)
+ $tmp[] = $philter->config['match_plugins'][$match[0]]->to_string($match);
+
+ $connector = ($this->all ? ' && ' : ' || ');
+ $res = "if( ".implode($connector, $tmp)." )\n"
+ . "{\n";
- $res.= "{\n";
foreach($this->actions as $action)
$res .= $philter->config['action_plugins'][$action[0]]->to_string($action);
- $res.= " :0\n"
- . " /dev/null\n"
- . "}\n\n";
- return $res;
+ if($this->block)
+ $res .= " exit\n";
+
+ return $res."}\n\n";
}
function sql_clean($_uid, $_rid) {