1 |
slords |
1.4 |
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 |
2 |
|
|
--- smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers.qpsmtpd83 2008-10-07 09:02:36.000000000 -0600 |
3 |
slords |
1.3 |
+++ smeserver-qpsmtpd-2.0.0/root/usr/share/qpsmtpd/plugins/peers 2009-10-29 18:34:26.000000000 -0600 |
4 |
slords |
1.1 |
@@ -54,7 +54,7 @@ sub init { |
5 |
|
|
if (-e "$dir/$plugin") { |
6 |
|
|
Qpsmtpd::Plugin->compile($plugin_name, $package, |
7 |
|
|
"$dir/$plugin", $self->{_test_mode}, $plugin); |
8 |
|
|
- $self->log(LOGDEBUG, "Loading $plugin_line from $dir/$plugin") |
9 |
|
|
+ Qpsmtpd->varlog(LOGDEBUG, "init", "peers", "Loading $plugin_line from $dir/$plugin") |
10 |
|
|
unless $plugin_line =~ /logging/; |
11 |
|
|
last PLUGIN_DIR; |
12 |
|
|
} |
13 |
slords |
1.4 |
@@ -68,8 +68,11 @@ sub init { |
14 |
|
|
|
15 |
slords |
1.1 |
sub _peer_plugins { |
16 |
|
|
my $qp = shift; |
17 |
slords |
1.4 |
+ my $hook = shift; |
18 |
slords |
1.1 |
my $config = shift; |
19 |
|
|
- $qp->{hooks} = {}; |
20 |
slords |
1.2 |
+ |
21 |
|
|
+ my $hooks; |
22 |
|
|
+ $hooks->{$_} = delete $qp->hooks->{$_} foreach keys %{$qp->hooks}; |
23 |
slords |
1.1 |
|
24 |
|
|
my @plugins = $qp->config($config); |
25 |
slords |
1.2 |
unshift @plugins, "peers $config"; |
26 |
slords |
1.4 |
@@ -80,6 +83,12 @@ sub _peer_plugins { |
27 |
slords |
1.2 |
push @loaded, $this_plugin if $this_plugin; |
28 |
|
|
} |
29 |
slords |
1.1 |
|
30 |
slords |
1.4 |
+ if ($hook eq 'set_hooks') { |
31 |
|
|
+ foreach my $c (@{$hooks->{connect}}) { |
32 |
|
|
+ unshift @{$qp->hooks->{connect}}, $c unless grep { $c->{name} eq $_->{name} } @{$hooks->{connect}}; |
33 |
|
|
+ } |
34 |
|
|
+ } |
35 |
|
|
+ |
36 |
slords |
1.2 |
return @loaded; |
37 |
|
|
} |
38 |
slords |
1.4 |
|
39 |
|
|
@@ -91,13 +100,13 @@ sub hook_set_hooks { |
40 |
slords |
1.3 |
my $client_ip = $qp->connection->remote_ip; |
41 |
|
|
while ($client_ip) { |
42 |
|
|
if (-f "config/peers/$client_ip") { |
43 |
|
|
- _peer_plugins($qp, "peers/$client_ip"); |
44 |
|
|
+ _peer_plugins($qp, "set_hooks", "peers/$client_ip"); |
45 |
|
|
return (DECLINED); |
46 |
|
|
} |
47 |
|
|
$client_ip =~ s/\.?\d+$//; # strip off another 8 bits |
48 |
|
|
} |
49 |
|
|
if (-f "config/peers/0") { |
50 |
|
|
- _peer_plugins($qp, "peers/0"); |
51 |
|
|
+ _peer_plugins($qp, "set_hooks", "peers/0"); |
52 |
|
|
return (DECLINED); |
53 |
|
|
} |
54 |
|
|
return (DENY); |
55 |
slords |
1.4 |
@@ -106,6 +115,6 @@ sub hook_set_hooks { |
56 |
slords |
1.3 |
sub hook_valid_auth { |
57 |
|
|
my ( $self, $transaction) = @_; |
58 |
|
|
my $qp = $self->qp; |
59 |
|
|
- _peer_plugins($qp, "peers/local") if (-f "config/peers/local"); |
60 |
|
|
+ _peer_plugins($qp, "valid_auth", "peers/local") if (-f "config/peers/local"); |
61 |
|
|
return (DECLINED); |
62 |
|
|
} |
63 |
slords |
1.1 |
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 |
64 |
|
|
--- smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins.qpsmtpd83 2008-10-07 09:02:36.000000000 -0600 |
65 |
|
|
+++ smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/plugins 2009-10-29 13:50:03.000000000 -0600 |
66 |
|
|
@@ -5,3 +5,4 @@ |
67 |
|
|
#------------------------------------------------------------ |
68 |
|
|
hosts_allow |
69 |
|
|
peers |
70 |
|
|
+tls ssl/cert.pem ssl/cert.pem ssl/cert.pem |
71 |
slords |
1.4 |
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 |
72 |
|
|
--- 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 |
73 |
|
|
+++ smeserver-qpsmtpd-2.0.0/root/etc/e-smith/templates/var/service/qpsmtpd/config/plugins/04tls 2009-10-29 21:03:28.000000000 -0600 |
74 |
|
|
@@ -0,0 +1 @@ |
75 |
|
|
+tls ssl/cert.pem ssl/cert.pem ssl/cert.pem |
76 |
slords |
1.1 |
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 |
77 |
|
|
--- smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth.qpsmtpd83 2009-10-29 13:51:39.000000000 -0600 |
78 |
|
|
+++ smeserver-qpsmtpd-2.0.0/root/var/service/qpsmtpd/config/tls_before_auth 2009-10-29 13:51:39.000000000 -0600 |
79 |
|
|
@@ -0,0 +1 @@ |
80 |
|
|
+1 |
81 |
|
|
diff -up smeserver-qpsmtpd-2.0.0/root/var/service/sqpsmtpd/run.qpsmtpd83 smeserver-qpsmtpd-2.0.0/root/var/service/sqpsmtpd/run |
82 |
|
|
--- smeserver-qpsmtpd-2.0.0/root/var/service/sqpsmtpd/run.qpsmtpd83 2006-02-05 07:38:30.000000000 -0700 |
83 |
|
|
+++ smeserver-qpsmtpd-2.0.0/root/var/service/sqpsmtpd/run 2009-10-29 13:48:34.000000000 -0600 |
84 |
|
|
@@ -1,37 +1,47 @@ |
85 |
|
|
#!/bin/sh |
86 |
|
|
#---------------------------------------------------------------------- |
87 |
|
|
-# copyright (C) 1999-2003 Mitel Networks Corporation |
88 |
|
|
-# |
89 |
|
|
+# copyright (C) 1999-2005 Mitel Networks Corporation |
90 |
|
|
+# Copyright (C) 2005-2006 Gordon Rowell <gordonr@gormand.com.au> |
91 |
|
|
+# |
92 |
|
|
# This program is free software; you can redistribute it and/or modify |
93 |
|
|
# it under the terms of the GNU General Public License as published by |
94 |
|
|
# the Free Software Foundation; either version 2 of the License, or |
95 |
|
|
# (at your option) any later version. |
96 |
|
|
-# |
97 |
|
|
+# |
98 |
|
|
# This program is distributed in the hope that it will be useful, |
99 |
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
100 |
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
101 |
|
|
# GNU General Public License for more details. |
102 |
|
|
-# |
103 |
|
|
+# |
104 |
|
|
# You should have received a copy of the GNU General Public License |
105 |
|
|
# along with this program; if not, write to the Free Software |
106 |
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
107 |
|
|
-# |
108 |
|
|
-# Technical support for this program is available from Mitel Networks |
109 |
|
|
-# Please visit our web site www.mitel.com/sme/ for details. |
110 |
|
|
#---------------------------------------------------------------------- |
111 |
|
|
|
112 |
|
|
[ -f ./runenv ] && . ./runenv |
113 |
|
|
|
114 |
|
|
export QPSMTPD_CONFIG=/var/service/qpsmtpd/config |
115 |
|
|
|
116 |
|
|
-exec 2>&1 |
117 |
|
|
-exec /usr/bin/tcpsvd \ |
118 |
|
|
- -v \ |
119 |
|
|
- -i ../qpsmtpd/peers \ |
120 |
|
|
- -c ${INSTANCES:-10} \ |
121 |
|
|
- -C ${INSTANCES_PER_IP:-5}:'421 per host concurrency limit reached\r\n' \ |
122 |
|
|
- -l ${TCPLOCALHOST:-0} \ |
123 |
|
|
- ${LISTENIP:-0} \ |
124 |
|
|
- ${PORT:-465} \ |
125 |
|
|
- ./sqpsmtpd |
126 |
|
|
+../qpsmtpd/control/1 |
127 |
|
|
|
128 |
|
|
+exec /usr/local/bin/softlimit -d ${SOFTLIMIT:-25000000} -s ${SOFTLIMIT:-25000000} -l ${SOFTLIMIT:-25000000} \ |
129 |
|
|
+ /usr/bin/qpsmtpd-forkserver \ |
130 |
|
|
+ -u qpsmtpd \ |
131 |
|
|
+ -l 0.0.0.0 \ |
132 |
|
|
+ -p ${PORT:-465} \ |
133 |
|
|
+ -c ${INSTANCES:-40} \ |
134 |
|
|
+ -m ${INSTANCES_PER_IP:-5} \ |
135 |
|
|
+ 2>&1 |
136 |
|
|
+ |
137 |
|
|
+#sub usage { |
138 |
|
|
+# print <<"EOT"; |
139 |
|
|
+#usage: qpsmtpd-forkserver [ options ] |
140 |
|
|
+# -l, --listen-address addr : listen on a specific address; default 0.0.0.0 |
141 |
|
|
+# -p, --port P : listen on a specific port; default 2525 |
142 |
|
|
+# -c, --limit-connections N : limit concurrent connections to N; default 15 |
143 |
|
|
+# -u, --user U : run as a particular user (defualt 'smtpd') |
144 |
|
|
+# -m, --max-from-ip M : limit connections from a single IP; default 5 |
145 |
|
|
+#EOT |
146 |
|
|
+# exit 0; |
147 |
|
|
+#} |
148 |
|
|
+# |