[Mimedefang] MIMEDefang 2.55-BETA-2 is available
Jan Pieter Cornet
johnpc at xs4all.nl
Mon Jan 16 17:34:02 EST 2006
On Mon, Jan 16, 2006 at 04:33:59PM -0500, David F. Skoll wrote:
> Gary Funck wrote:
>
> > This is really an academic question, but would it be possible to
> > scan/compile the mimedefang filter before including and adjust the
> > prototype declaration and use accordingly?
>
> It is possible with Perl source filters.
Nah, you don't need source filters. You can inspect a function's
prototype using the "prototype" function, after the function is
defined... something like this will probably work (UNTESTED, though)
my $filter_begin_can_handle_arg;
require $Filter;
if ( exists &filter_begin and defined(prototype(\&filter_begin))
and prototype(\&filter_begin) eq '' )
{
$filter_begin_can_handle_arg = 0;
} else {
$filter_begin_can_handle_arg = 1;
}
# ...
# call filter_begin:
$filter_begin_can_handle_arg ? filter_begin($entity) : filter_begin();
> It is not a good idea, though. Silently hiding bugs by modifying code
> at run-time should give you the heebie-jeebies...
Likewise. I'd suggest you do NOT include the above workaround :) and instead
make people adapt their own source. An example "HOWTO" would be nice,
though, for the ilperlliterate among us...
--
#!perl -wpl # mmfppfmpmmpp mmpffm <pmmppfmfpppppfmmmf at fpffmm4mmmpmfpmf.ppppmf>
$p=3-2*/[^\W\dmpf_]/i;s.[a-z]{$p}.vec($f=join('',$p-1?chr(sub{$_[0]*9+$_[1]*3+
$_[2]}->(map{/p|f/i+/f/i}split//,$&)+97):qw(m p f)[map{((ord$&)%32-1)/$_%3}(9,
3,1)]),5,1)='`'lt$&;$f.eig; # Jan-Pieter Cornet
More information about the MIMEDefang
mailing list