[exim] fun with ACLs

Top Page
Delete this message
Reply to this message
Author: Tony Finch
Date:  
To: exim-users
Subject: [exim] fun with ACLs
hanoi:
  require
    set acl_c0 = ${if def:acl_c0 {$acl_c0} {0} }
    set acl_c1 = ${if def:acl_c1 {$acl_c1} {a b c} }
  accept
    condition  = ${if >{$acl_c0}{9} }
  accept
    set acl_c0 = ${eval: $acl_c0 + 1 }
    set acl_c1 = ${sg {$acl_c1} {(.) (.) (.)} {\N$1 $3 $2\N} }
    acl        = hanoi
    logwrite   = move ${eval: $acl_c0 - 1 } ${sg {$acl_c1} {(.) (.) (.)} {\Nfrom $1 to $2\N} }
    set acl_c1 = ${sg {$acl_c1} {(.) (.) (.)} {\N$3 $1 $2\N} }
    acl        = hanoi
    set acl_c1 = ${sg {$acl_c1} {(.) (.) (.)} {\N$2 $1 $3\N} }
    set acl_c0 = ${eval: $acl_c0 - 1 }


fibonacci:
  require
    set acl_c0 = ${if def:acl_c0 {$acl_c0} {0} }
    set acl_c1 = ${if def:acl_c1 {$acl_c1} {1} }
    logwrite   = fibonacci $acl_c1
    set acl_c2 = ${eval: $acl_c0 + $acl_c1 }
    set acl_c0 = $acl_c1
    set acl_c1 = $acl_c2
    acl        = fibonacci


reverse:
  require
    set acl_c0 = ${if def:acl_c0 {$acl_c0} {$smtp_command_argument} }
  deny
    condition  = ${if ={${strlen:$acl_c1}}{${strlen:$smtp_command_argument}} }
    message    = $acl_c1
  require
    set acl_c1 = ${sg {$acl_c0} {(.)(.*)} {\$1} }$acl_c1
    set acl_c0 = ${sg {$acl_c0} {(.)(.*)} {\$2} }
    acl        = reverse


Tony.
--
<fanf@???> <dot@???> http://dotat.at/ ${sg{\N${sg{\
N\}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}\
\N}{([^N]*)(.)(.)(.*)}{\$1\$3\$2\$1\$3\n\$2\$3\$4\$3\n\$3\$2\$4}}