[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