[svn:qpsmtpd] rev 480 - in branches/v031: . lib lib/Apache
[email protected] 7 Jul 2005 19:48:19 -0000
| Newsgroups | perl.cvs.qpsmtpd |
|---|---|
| Message-ID | <[email protected]> |
Author: msergeant
Date: Thu Jul 7 12:48:19 2005
New Revision: 480
Added:
branches/v031/ (props changed)
- copied from rev 479, trunk/
Modified:
branches/v031/lib/Apache/Qpsmtpd.pm
branches/v031/lib/Qpsmtpd.pm
Log:
Version 0.31 branch
Modified: branches/v031/lib/Apache/Qpsmtpd.pm
==============================================================================
--- trunk/lib/Apache/Qpsmtpd.pm (original)
+++ branches/v031/lib/Apache/Qpsmtpd.pm Thu Jul 7 12:48:19 2005
@@ -16,6 +16,7 @@ use APR::Bucket ();
use APR::Socket ();
use Apache2::Filter ();
use ModPerl::Util ();
+use Apache::Scoreboard;
our $VERSION = '0.02';
@@ -55,7 +56,7 @@ sub start_connection {
my $remote_host = $opts{host} || ( $opts{ip} ? "[$opts{ip}]" : "[noip!]");
my $remote_info = $opts{info} ? "$opts{info}\@$remote_host" : $remote_host;
my $remote_ip = $opts{ip};
-
+
$self->log(LOGNOTICE, "Connection from $remote_info [$remote_ip]");
$self->SUPER::connection->start(
Modified: branches/v031/lib/Qpsmtpd.pm
==============================================================================
--- trunk/lib/Qpsmtpd.pm (original)
+++ branches/v031/lib/Qpsmtpd.pm Thu Jul 7 12:48:19 2005
@@ -4,6 +4,8 @@ use vars qw($VERSION $Logger $TraceLevel
use Sys::Hostname;
use Qpsmtpd::Constants;
+use Qpsmtpd::Transaction;
+use Qpsmtpd::Connection;
$VERSION = "0.31-dev";
@@ -114,17 +116,25 @@ sub config_dir {
my $configdir = ($ENV{QMAIL} || '/var/qmail') . '/control';
my ($name) = ($0 =~ m!(.*?)/([^/]+)$!);
$configdir = "$name/config" if (-e "$name/config/$config");
+ if (exists $ENV{QPSMTPD_CONFIG}) {
+ $configdir = $ENV{QPSMTPD_CONFIG} if (-e "$ENV{QPSMTPD_CONFIG}/$config");
+ }
return $configdir;
}
sub plugin_dir {
- my ($name) = ($0 =~ m!(.*?)/([^/]+)$!);
- my $dir = "$name/plugins";
+ my $self = shift;
+ my $plugin_dir = $self->config('plugin_dir', "NOLOG");
+ unless (defined($plugin_dir)) {
+ my ($name) = ($0 =~ m!(.*?)/([^/]+)$!);
+ $plugin_dir = "$name/plugins";
+ }
+ return $plugin_dir;
}
sub get_qmail_config {
my ($self, $config, $type) = @_;
- $self->log(LOGDEBUG, "trying to get config for $config");
+ $self->log(LOGDEBUG, "trying to get config for $config") unless $type and $type eq "NOLOG";
if ($self->{_config_cache}->{$config}) {
return wantarray ? @{$self->{_config_cache}->{$config}} : $self->{_config_cache}->{$config}->[0];
}
@@ -246,10 +256,6 @@ sub _load_plugins {
return @ret;
}
-sub transaction {
- return {}; # base class implements empty transaction
-}
-
sub run_hooks {
my ($self, $hook) = (shift, shift);
my $hooks = $self->{hooks};
@@ -347,6 +353,22 @@ sub spool_dir {
return $Spool_dir;
}
+sub transaction {
+ my $self = shift;
+ return $self->{_transaction} || $self->reset_transaction();
+}
+
+sub reset_transaction {
+ my $self = shift;
+ $self->run_hooks("reset_transaction") if $self->{_transaction};
+ return $self->{_transaction} = Qpsmtpd::Transaction->new();
+}
+
+sub connection {
+ my $self = shift;
+ return $self->{_connection} || ($self->{_connection} = Qpsmtpd::Connection->new());
+}
+
# For unique filenames. We write to a local tmp dir so we don't need
# to make them unpredictable.
my $transaction_counter = 0;