remove the connection / transaction id feature for 0.42 release
- add back in after 0.42 is out? if yes: start implementing in -prefork git-svn-id: https://svn.perl.org/qpsmtpd/trunk@809 958fd67b-6ff1-0310-b445-bb7760255be9
This commit is contained in:
parent
7fa3918803
commit
7d4605fdbc
3
Changes
3
Changes
@ -2,9 +2,6 @@
|
|||||||
|
|
||||||
New docs/plugins.pod documentation!
|
New docs/plugins.pod documentation!
|
||||||
|
|
||||||
Connection and transaction objects now have an "id" method returning a
|
|
||||||
unique id (good for logging etc).
|
|
||||||
|
|
||||||
Add X-Spam-Level header in spamassassin plugin (idea from Werner Fleck)
|
Add X-Spam-Level header in spamassassin plugin (idea from Werner Fleck)
|
||||||
|
|
||||||
prefork: support two or more parallel running instances (on different
|
prefork: support two or more parallel running instances (on different
|
||||||
|
@ -36,18 +36,6 @@ sub start {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub id {
|
|
||||||
my $self = shift;
|
|
||||||
$self->{_id} = shift if @_;
|
|
||||||
$self->{_id};
|
|
||||||
}
|
|
||||||
|
|
||||||
sub inc_id {
|
|
||||||
my $self = shift;
|
|
||||||
my ($qp_id, $count) = $self->{_id} =~ m/(.+)\.(\d+)/;
|
|
||||||
$self->{_id} = $qp_id . "." . ++$count;
|
|
||||||
}
|
|
||||||
|
|
||||||
sub clone {
|
sub clone {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $new = $self->new();
|
my $new = $self->new();
|
||||||
|
@ -24,13 +24,10 @@ use fields qw(
|
|||||||
_commands
|
_commands
|
||||||
_config_cache
|
_config_cache
|
||||||
_connection
|
_connection
|
||||||
_connection_count
|
|
||||||
_continuation
|
_continuation
|
||||||
_extras
|
_extras
|
||||||
_id
|
|
||||||
_test_mode
|
_test_mode
|
||||||
_transaction
|
_transaction
|
||||||
_transaction_count
|
|
||||||
);
|
);
|
||||||
use Qpsmtpd::Constants;
|
use Qpsmtpd::Constants;
|
||||||
use Qpsmtpd::Address;
|
use Qpsmtpd::Address;
|
||||||
|
@ -19,8 +19,6 @@ use Mail::Header ();
|
|||||||
#use Data::Dumper;
|
#use Data::Dumper;
|
||||||
use POSIX qw(strftime);
|
use POSIX qw(strftime);
|
||||||
use Net::DNS;
|
use Net::DNS;
|
||||||
use Time::HiRes qw(gettimeofday);
|
|
||||||
use Sys::Hostname;
|
|
||||||
|
|
||||||
# this is only good for forkserver
|
# this is only good for forkserver
|
||||||
# can't set these here, cause forkserver resets them
|
# can't set these here, cause forkserver resets them
|
||||||
@ -42,17 +40,6 @@ sub new {
|
|||||||
$self;
|
$self;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub id {
|
|
||||||
my $self = shift;
|
|
||||||
unless ($self->{_id}) {
|
|
||||||
$self->{_id} = sprintf("%d.%06d.%s.%d",
|
|
||||||
gettimeofday,
|
|
||||||
unpack("H*", (gethostbyname(hostname))[4]),
|
|
||||||
$$);
|
|
||||||
}
|
|
||||||
return $self->{_id};
|
|
||||||
}
|
|
||||||
|
|
||||||
sub command_counter {
|
sub command_counter {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
$self->{_counter} || 0;
|
$self->{_counter} || 0;
|
||||||
@ -147,26 +134,14 @@ sub transaction {
|
|||||||
sub reset_transaction {
|
sub reset_transaction {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
$self->run_hooks("reset_transaction") if $self->{_transaction};
|
$self->run_hooks("reset_transaction") if $self->{_transaction};
|
||||||
return $self->{_transaction} =
|
return $self->{_transaction} = Qpsmtpd::Transaction->new();
|
||||||
Qpsmtpd::Transaction->new(id => $self->connection->id . "." . ++$self->{_transaction_count});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
sub connection {
|
sub connection {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
@_ and $self->{_connection} = shift;
|
@_ and $self->{_connection} = shift;
|
||||||
unless ($self->{_connection}) {
|
return $self->{_connection} || ($self->{_connection} = Qpsmtpd::Connection->new());
|
||||||
$self->{_connection} = Qpsmtpd::Connection->new();
|
|
||||||
$self->reset_connection;
|
|
||||||
}
|
|
||||||
return $self->{_connection};
|
|
||||||
}
|
|
||||||
|
|
||||||
sub reset_connection {
|
|
||||||
my $self = shift;
|
|
||||||
$self->connection->id($self->id . "." . ++$self->{_connection_count});
|
|
||||||
$self->{_transaction_count} = 0;
|
|
||||||
$self->reset_transaction;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub helo {
|
sub helo {
|
||||||
|
@ -11,7 +11,7 @@ sub start_connection {
|
|||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
#reset info
|
#reset info
|
||||||
$self->reset_connection; #reset connection
|
$self->{_connection} = Qpsmtpd::Connection->new(); #reset connection
|
||||||
$self->reset_transaction;
|
$self->reset_transaction;
|
||||||
$self->SUPER::start_connection(@_);
|
$self->SUPER::start_connection(@_);
|
||||||
}
|
}
|
||||||
|
@ -10,11 +10,6 @@ use Time::HiRes qw(gettimeofday);
|
|||||||
|
|
||||||
use IO::File qw(O_RDWR O_CREAT);
|
use IO::File qw(O_RDWR O_CREAT);
|
||||||
|
|
||||||
my $SALT_HOST = crypt(hostname, chr(65+rand(57)).chr(65+rand(57)));
|
|
||||||
$SALT_HOST =~ tr/A-Za-z0-9//cd;
|
|
||||||
|
|
||||||
my $SEQUENCE_ID = 1;
|
|
||||||
|
|
||||||
sub new { start(@_) }
|
sub new { start(@_) }
|
||||||
|
|
||||||
sub start {
|
sub start {
|
||||||
@ -22,16 +17,11 @@ sub start {
|
|||||||
my $class = ref($proto) || $proto;
|
my $class = ref($proto) || $proto;
|
||||||
my %args = @_;
|
my %args = @_;
|
||||||
|
|
||||||
my $self = { _rcpt => [], started => time, _id => $args{id} };
|
my $self = { _rcpt => [], started => time, };
|
||||||
bless ($self, $class);
|
bless ($self, $class);
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub id {
|
|
||||||
my $self = shift;
|
|
||||||
$self->{_id};
|
|
||||||
}
|
|
||||||
|
|
||||||
sub add_recipient {
|
sub add_recipient {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
@_ and push @{$self->{_recipients}}, shift;
|
@_ and push @{$self->{_recipients}}, shift;
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
|
|
||||||
sub register {
|
sub register {
|
||||||
my ($self, $qp, $loglevel) = @_;
|
my ($self, $qp, $loglevel) = @_;
|
||||||
|
die "The connection ID feature is currently unsupported";
|
||||||
$self->{_level} = LOGWARN;
|
$self->{_level} = LOGWARN;
|
||||||
if ( defined($loglevel) ) {
|
if ( defined($loglevel) ) {
|
||||||
if ($loglevel =~ /^\d+$/) {
|
if ($loglevel =~ /^\d+$/) {
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
|
|
||||||
sub register {
|
sub register {
|
||||||
my ($self, $qp, $loglevel) = @_;
|
my ($self, $qp, $loglevel) = @_;
|
||||||
|
die "The transaction ID feature is currently unsupported";
|
||||||
|
|
||||||
$self->{_level} = LOGWARN;
|
$self->{_level} = LOGWARN;
|
||||||
if ( defined($loglevel) ) {
|
if ( defined($loglevel) ) {
|
||||||
|
@ -239,7 +239,6 @@ while (1) {
|
|||||||
# get local/remote hostname, port and ip address
|
# get local/remote hostname, port and ip address
|
||||||
my ($port, $iaddr, $lport, $laddr, $nto_iaddr, $nto_laddr) = Qpsmtpd::TcpServer::lrpip($server, $client, $hisaddr);
|
my ($port, $iaddr, $lport, $laddr, $nto_iaddr, $nto_laddr) = Qpsmtpd::TcpServer::lrpip($server, $client, $hisaddr);
|
||||||
|
|
||||||
$qpsmtpd->reset_connection;
|
|
||||||
my ($rc, @msg) = $qpsmtpd->run_hooks("pre-connection",
|
my ($rc, @msg) = $qpsmtpd->run_hooks("pre-connection",
|
||||||
remote_ip => $nto_iaddr,
|
remote_ip => $nto_iaddr,
|
||||||
remote_port => $port,
|
remote_port => $port,
|
||||||
|
Loading…
Reference in New Issue
Block a user