<br><font size=2 face="sans-serif">Hello list,</font>
<br>
<br><font size=2 face="sans-serif">I am developing a tool to configure
polices for email with MailScanner. This police are store in SQL or XML.
I consider that an alteration in the official code of the MailScanner is
made to support the sending of parameter <b>$name</b> of the configuration
directive to the custom function. Thus function would be possible inside
of custom to know which parameter is being searched and return the corresponding
value. In such a way, is not necessary to create a custom function for
each directive to use the XML police. What you think about ?</font>
<br>
<br><font size=2 face="sans-serif">The Config.pm modification (in black)</font>
<br>
<br><font size=2 color=#8100ff face="Courier New">sub </font><font size=2 face="Courier New">Value
</font><font size=2 color=#a11f12 face="Courier New">{</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; </font><font size=2 color=#8100ff face="Courier New">my</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">,
</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">msg</font><font size=2 color=#a11f12 face="Courier New">)
= </font><font size=2 face="Courier New">@</font><font size=2 color=#8100ff face="Courier New">_</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; </font><font size=2 color=#8100ff face="Courier New">my</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 color=#a11f12 face="Courier New">,
</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">result</font><font size=2 color=#a11f12 face="Courier New">);</font>
<br>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; </font><font size=2 color=#9f000f face="Courier New">[...]</font>
<br>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#9f000f face="Courier New">#
Make this as fast as possible in simple situations</font>
<br><font size=2 face="Courier New">&nbsp; </font><font size=2 color=#8100ff face="Courier New">return
</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">StaticScalars</font><font size=2 color=#a11f12 face="Courier New">{</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">}
</font><font size=2 color=#8100ff face="Courier New">if exists </font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">StaticScalars</font><font size=2 color=#a11f12 face="Courier New">{</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">};</font>
<br>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; </font><font size=2 color=#9f000f face="Courier New">#
User custom-written functions are easy to spot too</font>
<br><font size=2 face="Courier New">&nbsp; $</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 face="Courier New">
</font><font size=2 color=#a11f12 face="Courier New">= </font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">CustomFunctions</font><font size=2 color=#a11f12 face="Courier New">{</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">};</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; </font><font size=2 color=#8100ff face="Courier New">if
</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 color=#a11f12 face="Courier New">)
{</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 face="Courier New">
</font><font size=2 color=#a11f12 face="Courier New">= </font><font size=2 color=blue face="Courier New">'MailScanner::CustomConfig::'
</font><font size=2 color=#a11f12 face="Courier New">. </font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=#8100ff face="Courier New">no
</font><font size=2 face="Courier New">strict </font><font size=2 color=blue face="Courier New">'refs'</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=#9f000f face="Courier New">#
Make patch HERE &nbsp; &nbsp; &nbsp; &nbsp; ! &nbsp; !</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">result</font><font size=2 face="Courier New">
</font><font size=2 color=#a11f12 face="Courier New">= </font><font size=2 face="Courier New">&amp;$</font><font size=2 color=#8100ff face="Courier New">funcname</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">msg</font><font size=2 color=#a11f12 face="Courier New">,</font><font size=2 face="Courier New"><b>$name</b></font><font size=2 color=#a11f12 face="Courier New">);</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=#8100ff face="Courier New">use
</font><font size=2 face="Courier New">strict </font><font size=2 color=blue face="Courier New">'refs'</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=#9f000f face="Courier New">#print
STDERR &quot;It was a CF\n&quot; if $name eq 'spamwhitelist';</font>
<br><font size=2 face="Courier New">&nbsp; &nbsp; </font><font size=2 color=#8100ff face="Courier New">return
</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">result</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; }</font>
<br>
<br>
<br><font size=2 face="sans-serif">The CustonFunction with parameter;</font>
<br>
<br><font size=2 color=#8100ff face="Courier New">sub </font><font size=2 face="Courier New">MailPolice
</font><font size=2 color=#a11f12 face="Courier New">{</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; &nbsp;
&nbsp; &nbsp; </font><font size=2 color=#9f000f face="Courier New">#
</font><font size=2 face="sans-serif"><b>New here &nbsp; &nbsp; &nbsp;!
&nbsp; &nbsp; &nbsp; !</b></font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; &nbsp;
&nbsp; </font><font size=2 color=#8100ff face="Courier New">my </font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">message</font><font size=2 color=#a11f12 face="Courier New">,</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">)
= </font><font size=2 face="Courier New">@</font><font size=2 color=#8100ff face="Courier New">_</font><font size=2 color=#a11f12 face="Courier New">;</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; &nbsp;
&nbsp; </font><font size=2 face="Courier New">MailScanner::Log::InfoLog</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 color=blue face="Courier New">&quot;MailPolice:
DUMPER message &quot; </font><font size=2 color=#a11f12 face="Courier New">.</font><font size=2 face="Courier New">Dumper</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">message</font><font size=2 color=#a11f12 face="Courier New">));</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; &nbsp;
&nbsp; </font><font size=2 face="Courier New">MailScanner::Log::InfoLog</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 color=blue face="Courier New">&quot;MailPolice:
DUMPER name &quot; </font><font size=2 color=#a11f12 face="Courier New">.</font><font size=2 face="Courier New">Dumper</font><font size=2 color=#a11f12 face="Courier New">(</font><font size=2 face="Courier New">$</font><font size=2 color=#8100ff face="Courier New">name</font><font size=2 color=#a11f12 face="Courier New">));</font>
<br><font size=2 color=#a11f12 face="Courier New">&nbsp; &nbsp; &nbsp;
&nbsp; </font><font size=2 color=#8100ff face="Courier New">return </font><font size=2 face="Courier New"><b>XmlPoliceGetDirective($name);</b></font>
<br><font size=2 face="Courier New">}</font>
<br>
<br><font size=2 face="sans-serif">so a find <b>&lt;maxmessagesize&gt;100&lt;/maxmessagesize&gt;</b>
and return proper value <b>100</b> to MailScanner and in MailScanner.conf
i made this:</font>
<br>
<br><font size=2 face="sans-serif"><b>Max Message Size = &amp;MailPolice</b></font>
<br>
<br><font size=2 face="sans-serif">What you think about ?</font>
<br>
<br><font size=2 face="sans-serif">Sr. Julian Field, this patch in <b>Config.pm</b>
are possible?</font>
<br>
<br><font size=2 face="sans-serif">best regards,</font>
<br>
<br><font size=2 face="sans-serif">Davi Baldin<br>
JVS do Brasil - IBM BP Premier<br>
davi@jvsinfo.com.br<br>
(19) 3254-1266<br>
(19) 9266-6793 ** NOVO **</font>