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;

Reply via email to