Author: vetinari
Date: Thu Aug 30 22:26:04 2007
New Revision: 783
Modified:
trunk/lib/Qpsmtpd/Plugin.pm
Log:
Fix Qpsmtpd::Plugins::isa_plugin() with multiple plugin dirs (Gavin Carr)
Modified: trunk/lib/Qpsmtpd/Plugin.pm
==============================================================================
--- trunk/lib/Qpsmtpd/Plugin.pm (original)
+++ trunk/lib/Qpsmtpd/Plugin.pm Thu Aug 30 22:26:04 2007
@@ -117,9 +117,19 @@
# don't reload plugins if they are already loaded
return if defined &{"${newPackage}::plugin_name"};
+ # find $parent in plugin_dirs
+ my $parent_dir;
+ for ($self->qp->plugin_dirs) {
+ if (-e "$_/$parent") {
+ $parent_dir = $_;
+ last;
+ }
+ }
+ die "cannot find plugin '$parent'" unless $parent_dir;
+
$self->compile($self->plugin_name . "_isa_$cleanParent",
$newPackage,
- "plugins/$parent"); # assumes Cwd is qpsmtpd root
+ "$parent_dir/$parent");
warn "---- $newPackage\n";
no strict 'refs';
push @{"${currentPackage}::ISA"}, $newPackage;