cvs commit: qpsmtpd/lib/Qpsmtpd Plugin.pm

[email protected] (Matt Sergeant)
Newsgroups perl.cvs.qpsmtpd
Message-ID <[email protected]>
cvsuser     04/06/11 13:01:17

  Modified:    lib      Qpsmtpd.pm
               lib/Qpsmtpd Plugin.pm
  Log:
  Add unshift parameter to register_hook, allowing you to put the hook at the
  start of the queue
  
  Revision  Changes    Path
  1.34      +7 -2      qpsmtpd/lib/Qpsmtpd.pm
  
  Index: Qpsmtpd.pm
  ===================================================================
  RCS file: /cvs/public/qpsmtpd/lib/Qpsmtpd.pm,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -w -r1.33 -r1.34
  --- Qpsmtpd.pm	5 Jun 2004 10:09:30 -0000	1.33
  +++ Qpsmtpd.pm	11 Jun 2004 20:01:17 -0000	1.34
  @@ -241,13 +241,18 @@
   
   sub _register_hook {
     my $self = shift;
  -  my ($hook, $code) = @_;
  +  my ($hook, $code, $unshift) = @_;
   
     #my $plugin = shift;  # see comment in Plugin.pm:register_hook
   
     $self->{_hooks} = $Qpsmtpd::_hooks;
     my $hooks = $self->{_hooks};
  +  if ($unshift) {
  +    unshift @{$hooks->{$hook}}, $code;
  +  }
  +  else {
     push @{$hooks->{$hook}}, $code;
   }
  +}
   
   1;
  
  
  
  1.7       +4 -3      qpsmtpd/lib/Qpsmtpd/Plugin.pm
  
  Index: Plugin.pm
  ===================================================================
  RCS file: /cvs/public/qpsmtpd/lib/Qpsmtpd/Plugin.pm,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -w -r1.6 -r1.7
  --- Plugin.pm	5 Mar 2004 12:46:23 -0000	1.6
  +++ Plugin.pm	11 Jun 2004 20:01:17 -0000	1.7
  @@ -14,15 +14,16 @@
   }
   
   sub register_hook {
  -  my ($plugin, $hook, $method) = @_;
  +  my ($plugin, $hook, $method, $unshift) = @_;
     
     die $plugin->plugin_name . " : Invalid hook: $hook" unless $hooks{$hook};
   
     # I can't quite decide if it's better to parse this code ref or if
     # we should pass the plugin object and method name ... hmn.
     $plugin->qp->_register_hook($hook, { code => sub { local $plugin->{_qp} = shift; $plugin->$method(@_) },
  -				       name => $plugin->plugin_name 
  -				     }
  +				       name => $plugin->plugin_name,
  +				     },
  +				     $unshift,
   			     );
   }
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.