--- rpms/smeserver-qpsmtpd/sme8/smeserver-qpsmtpd-2.2.0-qpsmtpd83.patch 2009/10/29 20:27:16 1.1 +++ rpms/smeserver-qpsmtpd/sme8/smeserver-qpsmtpd-2.2.0-qpsmtpd83.patch 2009/10/30 03:25:31 1.4 @@ -1,6 +1,6 @@ diff -up smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers.qpsmtpd83 smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers ---- smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers.qpsmtpd83 2009-10-29 14:03:00.000000000 -0600 -+++ smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers 2009-10-29 14:02:37.000000000 -0600 +--- smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers.qpsmtpd83 2008-10-07 09:02:36.000000000 -0600 ++++ smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers 2009-10-29 18:34:26.000000000 -0600 @@ -54,7 +54,7 @@ sub init { if (-e "$dir/$plugin") { Qpsmtpd::Plugin->compile($plugin_name, $package, @@ -10,17 +10,56 @@ diff -up smeserver-qpsmtpd-2.0.0/root/us unless $plugin_line =~ /logging/; last PLUGIN_DIR; } -@@ -69,10 +69,8 @@ sub init { +@@ -68,8 +68,11 @@ sub init { + sub _peer_plugins { my $qp = shift; ++ my $hook = shift; my $config = shift; - $qp->{hooks} = {}; ++ ++ my $hooks; ++ $hooks->{$_} = delete $qp->hooks->{$_} foreach keys %{$qp->hooks}; my @plugins = $qp->config($config); -- unshift @plugins, "peers $config"; - my @loaded; + unshift @plugins, "peers $config"; +@@ -80,6 +83,12 @@ sub _peer_plugins { + push @loaded, $this_plugin if $this_plugin; + } + ++ if ($hook eq 'set_hooks') { ++ foreach my $c (@{$hooks->{connect}}) { ++ unshift @{$qp->hooks->{connect}}, $c unless grep { $c->{name} eq $_->{name} } @{$hooks->{connect}}; ++ } ++ } ++ + return @loaded; + } - for my $plugin_line (@plugins) { +@@ -91,13 +100,13 @@ sub hook_set_hooks { + my $client_ip = $qp->connection->remote_ip; + while ($client_ip) { + if (-f "config/peers/$client_ip") { +- _peer_plugins($qp, "peers/$client_ip"); ++ _peer_plugins($qp, "set_hooks", "peers/$client_ip"); + return (DECLINED); + } + $client_ip =~ s/\.?\d+$//; # strip off another 8 bits + } + if (-f "config/peers/0") { +- _peer_plugins($qp, "peers/0"); ++ _peer_plugins($qp, "set_hooks", "peers/0"); + return (DECLINED); + } + return (DENY); +@@ -106,6 +115,6 @@ sub hook_set_hooks { + sub hook_valid_auth { + my ( $self, $transaction) = @_; + my $qp = $self->qp; +- _peer_plugins($qp, "peers/local") if (-f "config/peers/local"); ++ _peer_plugins($qp, "valid_auth", "peers/local") if (-f "config/peers/local"); + return (DECLINED); + } diff -up smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins.qpsmtpd83 smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins --- smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins.qpsmtpd83 2008-10-07 09:02:36.000000000 -0600 +++ smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins 2009-10-29 13:50:03.000000000 -0600 @@ -29,6 +68,11 @@ diff -up smeserver-qpsmtpd-2.0.0/root/va hosts_allow peers +tls ssl/cert.pem ssl/cert.pem ssl/cert.pem +diff -up smeserver-qpsmtpd-2.0.0/root/etc/e-smith/templates/var/service/qpsmtpd/config/plugins/04tls.qpsmtpd83 smeserver-qpsmtpd-2.0.0/root/etc/e-smith/templates/var/service/qpsmtpd/config/plugins/04tls +--- smeserver-qpsmtpd-2.0.0/root/etc/e-smith/templates/var/service/qpsmtpd/config/plugins/04tls.qpsmtpd83 2009-10-29 21:03:34.000000000 -0600 ++++ smeserver-qpsmtpd-2.0.0/root/etc/e-smith/templates/var/service/qpsmtpd/config/plugins/04tls 2009-10-29 21:03:28.000000000 -0600 +@@ -0,0 +1 @@ ++tls ssl/cert.pem ssl/cert.pem ssl/cert.pem diff -up smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth.qpsmtpd83 smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth --- smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth.qpsmtpd83 2009-10-29 13:51:39.000000000 -0600 +++ smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth 2009-10-29 13:51:39.000000000 -0600