---
lib/Qpsmtpd.pm | 30 ++++++++++++++++++------------
plugins/logging/warn | 17 +++++++++--------
2 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/lib/Qpsmtpd.pm b/lib/Qpsmtpd.pm
index dbbd2a0..5d23211 100644
--- a/lib/Qpsmtpd.pm
+++ b/lib/Qpsmtpd.pm
@@ -125,17 +125,18 @@ sub varlog {
$self->load_logging; # in case we don't have this loaded yet
- my ($rc) = $self->run_hooks_no_respond("logging", $trace, $hook, $plugin,
@log);
-
- unless ( $rc and $rc == DECLINED or $rc == OK ) {
- # no logging plugins registered so fall back to STDERR
- warn join(" ", $$ .
- (defined $plugin && defined $hook ? " $plugin plugin ($hook):" :
- defined $plugin ? " $plugin plugin:" :
- defined $hook ? " running plugin ($hook):" : ""),
- @log), "\n"
- if $trace <= $TraceLevel;
- }
+ my ($rc) = $self->run_hooks_no_respond("logging", $trace, $hook, $plugin,
@log)
+ or return;
+
+ return if $rc == DECLINED || $rc == OK; # plugin success
+ return if $trace > $TraceLevel;
+
+ # no logging plugins registered, fall back to STDERR
+ my $prefix = defined $plugin && defined $hook ? " $plugin plugin ($hook):"
:
+ defined $plugin ? " $plugin plugin:" :
+ defined $hook ? " running plugin ($hook):" : '';
+
+ warn join(' ', $$ . $prefix, @log), "\n";
}
sub clear_config_cache {
@@ -415,6 +416,9 @@ sub transaction { return {}; } # base class implements
empty transaction
sub run_hooks {
my ($self, $hook) = (shift, shift);
+#if ( $hook =~ /^auth/i ) {
+#warn sprintf( "run_hooks called by %s, %s, %s\n", (caller) );
+#};
if ($hooks->{$hook}) {
my @r;
my @local_hooks = @{$hooks->{$hook}};
@@ -515,7 +519,9 @@ sub hook_responder {
my ($self, $hook, $msg, $args) = @_;
#my $t1 = $SAMPLER->("hook_responder", undef, 1);
-
+#if ( $hook =~ /^auth/i ) {
+#warn sprintf( "hook_responder called by %s, %s, %s\n", (caller) );
+#};
my $code = shift @$msg;
my $responder = $hook . '_respond';
diff --git a/plugins/logging/warn b/plugins/logging/warn
index 204ffdb..d62997b 100644
--- a/plugins/logging/warn
+++ b/plugins/logging/warn
@@ -28,16 +28,17 @@ sub hook_logging {
# Don't log your own log entries! If this is the only logging plugin
# then these lines will not be logged at all. You can safely comment
# out this line and it will not cause an infinite loop.
- return DECLINED if defined $plugin and $plugin eq $self->plugin_name;
+ return DECLINED if defined $plugin && $plugin eq $self->plugin_name;
- warn
- join(" ", $$ .
- (defined $plugin ? " $plugin plugin:" :
- defined $hook ? " running plugin ($hook):" : ""),
- @log), "\n"
- if ($trace <= $self->{_level});
+ return DECLINED if $trace > $self->{_level};
- return DECLINED;
+ my $prefix = defined $plugin && defined $hook ? " $plugin plugin ($hook):"
:
+ defined $plugin ? " $plugin plugin:" :
+ defined $hook ? " running plugin ($hook):" : ''),
+
+ warn join(' ', $$ . $prefix, @log), "\n";
+
+ return DECLINED;
}
=head1 NAME
--
1.7.9.6