Gentoo Archives: gentoo-commits

From: "Markus Ullmann (jokey)" <jokey@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in mail-mta/qpsmtpd/files: qpsmtpd-0.43-peer_hooks.patch qpsmtpd.confd qpsmtpd-0.40-clamd_conf.patch qpsmtpd-0.40-peer_hooks.patch qpsmtpd.initd qpsmtpd.envd qpsmtpd-0.40-badrcptto_allowrelay.patch qpsmtpd-0.40-badhelo_disconnect.patch qpsmtpd.xinetd
Date: Sun, 28 Sep 2008 19:36:20
Message-Id: E1Kk241-0001BZ-3M@stork.gentoo.org
1 jokey 08/09/28 19:36:17
2
3 Added: qpsmtpd-0.43-peer_hooks.patch qpsmtpd.confd
4 qpsmtpd-0.40-clamd_conf.patch
5 qpsmtpd-0.40-peer_hooks.patch qpsmtpd.initd
6 qpsmtpd.envd
7 qpsmtpd-0.40-badrcptto_allowrelay.patch
8 qpsmtpd-0.40-badhelo_disconnect.patch
9 qpsmtpd.xinetd
10 Log:
11 Initial import, also fixes bug #167930. Thanks to various people contributing on bugzie and on irc
12 (Portage version: 2.2_rc11/cvs/Linux 2.6.26-gentoo-r1 i686)
13
14 Revision Changes Path
15 1.1 mail-mta/qpsmtpd/files/qpsmtpd-0.43-peer_hooks.patch
16
17 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.43-peer_hooks.patch?rev=1.1&view=markup
18 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.43-peer_hooks.patch?rev=1.1&content-type=text/plain
19
20 Index: qpsmtpd-0.43-peer_hooks.patch
21 ===================================================================
22 --- qpsmtpd-0.40/lib/Qpsmtpd/SMTP.pm.peer_hooks 2007-06-14 11:57:27.000000000 -0600
23 +++ qpsmtpd-0.40/lib/Qpsmtpd/SMTP.pm 2007-06-14 13:44:52.000000000 -0600
24 @@ -95,6 +95,11 @@
25 my $self = shift;
26 # this should maybe be called something else than "connect", see
27 # lib/Qpsmtpd/TcpServer.pm for more confusion.
28 + my ($rc, $msg) = $self->run_hooks("set_hooks");
29 + if ($rc == DENY) {
30 + $self->respond(550, ($msg || 'Connection from you denied, bye bye.'));
31 + return $rc;
32 + }
33 $self->run_hooks("connect");
34 return DONE;
35 }
36 @@ -278,7 +283,9 @@
37
38 # if we don't have a plugin implementing this auth mechanism, 504
39 if( exists $auth_mechanisms{uc($mechanism)} ) {
40 - return $self->{_auth} = Qpsmtpd::Auth::SASL( $self, $mechanism, @stuff );
41 + $self->{_auth} = Qpsmtpd::Auth::SASL( $self, $mechanism, @stuff );
42 + $self->run_hooks("valid_auth") if $self->{_auth} == OK;
43 + return $self->{_auth};
44 } else {
45 $self->respond( 504, "Unimplemented authentification mechanism: $mechanism" );
46 return DENY;
47 --- qpsmtpd-0.40/lib/Qpsmtpd//Plugin.pm.peer_hooks 2008-03-25 02:02:37.000000000 +0000
48 +++ qpsmtpd-0.40/lib/Qpsmtpd//Plugin.pm 2008-03-25 02:04:00.000000000 +0000
49 @@ -6,7 +6,7 @@
50 our @hooks = qw(
51 logging config pre-connection connect ehlo_parse ehlo
52 helo_parse helo auth_parse auth auth-plain auth-login auth-cram-md5
53 - rcpt_parse rcpt_pre rcpt mail_parse mail mail_pre
54 + valid_auth set_hooks rcpt_parse rcpt_pre rcpt mail_parse mail mail_pre
55 data data_post queue_pre queue queue_post vrfy noop
56 quit reset_transaction disconnect post-connection
57 unrecognized_command deny ok received_line help
58
59
60
61 1.1 mail-mta/qpsmtpd/files/qpsmtpd.confd
62
63 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.confd?rev=1.1&view=markup
64 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.confd?rev=1.1&content-type=text/plain
65
66 Index: qpsmtpd.confd
67 ===================================================================
68 # Config file for /etc/init.d/qpsmtpd
69 #
70
71 QPSMTPD_CONFIG="/etc/qpsmtpd"
72 QPSMTPD_NICELEVEL="0"
73
74 # Select QPSMTPD server type
75 # - async
76 # Not all plugins work without problems with the async mode.
77 # - forkserver (default)
78 # - prefork
79 # Does not work 100%. Use at your own risk.
80 QPSMTPD_SERVER_TYPE="forkserver"
81
82 # QPSMTPD options. This can be different depending on
83 # what QPSMTPD server you run.
84 #
85 # Typical forkserver
86 QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd"
87 #
88 # Typical prefork
89 # QPSMTPD_OPTIONS="--interface 0.0.0.0 --port 25 --user smtpd"
90 #
91 # Typical async
92 # QPSMTPD_OPTIONS="-l 0.0.0.0 -p 25 -u smtpd"
93
94
95
96 1.1 mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch
97
98 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch?rev=1.1&view=markup
99 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-clamd_conf.patch?rev=1.1&content-type=text/plain
100
101 Index: qpsmtpd-0.40-clamd_conf.patch
102 ===================================================================
103 diff -Nur -x '*.orig' -x '*.rej' qpsmtpd-0.40/plugins/virus/clamav mezzanine_patched_qpsmtpd-0.40/plugins/virus/clamav
104 --- qpsmtpd-0.40/plugins/virus/clamav 2007-06-14 11:57:23.000000000 -0600
105 +++ mezzanine_patched_qpsmtpd-0.40/plugins/virus/clamav 2007-06-15 13:37:26.000000000 -0600
106 @@ -148,7 +148,7 @@
107 $self->{_max_size} ||= 512 * 1024;
108 $self->{_spool_dir} ||= $self->spool_dir();
109 $self->{_back_compat} ||= ''; # make sure something is set
110 - $self->{_clamd_conf} ||= '/etc/clamd/conf'; # make sure something is set
111 + $self->{_clamd_conf} ||= '/etc/clamd.conf'; # make sure something is set
112
113 unless ($self->{_spool_dir}) {
114 $self->log(LOGERROR, "No spool dir configuration found");
115
116
117
118 1.1 mail-mta/qpsmtpd/files/qpsmtpd-0.40-peer_hooks.patch
119
120 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-peer_hooks.patch?rev=1.1&view=markup
121 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-peer_hooks.patch?rev=1.1&content-type=text/plain
122
123 Index: qpsmtpd-0.40-peer_hooks.patch
124 ===================================================================
125 --- qpsmtpd-0.40/lib/Qpsmtpd/SMTP.pm.peer_hooks 2007-06-14 11:57:27.000000000 -0600
126 +++ qpsmtpd-0.40/lib/Qpsmtpd/SMTP.pm 2007-06-14 13:44:52.000000000 -0600
127 @@ -95,6 +95,11 @@
128 my $self = shift;
129 # this should maybe be called something else than "connect", see
130 # lib/Qpsmtpd/TcpServer.pm for more confusion.
131 + my ($rc, $msg) = $self->run_hooks("set_hooks");
132 + if ($rc == DENY) {
133 + $self->respond(550, ($msg || 'Connection from you denied, bye bye.'));
134 + return $rc;
135 + }
136 $self->run_hooks("connect");
137 return DONE;
138 }
139 @@ -278,7 +283,9 @@
140
141 # if we don't have a plugin implementing this auth mechanism, 504
142 if( exists $auth_mechanisms{uc($mechanism)} ) {
143 - return $self->{_auth} = Qpsmtpd::Auth::SASL( $self, $mechanism, @stuff );
144 + $self->{_auth} = Qpsmtpd::Auth::SASL( $self, $mechanism, @stuff );
145 + $self->run_hooks("valid_auth") if $self->{_auth} == OK;
146 + return $self->{_auth};
147 } else {
148 $self->respond( 504, "Unimplemented authentification mechanism: $mechanism" );
149 return DENY;
150 --- qpsmtpd-0.40/lib/Qpsmtpd/Plugin.pm.peer_hooks 2007-06-14 11:57:27.000000000 -0600
151 +++ qpsmtpd-0.40/lib/Qpsmtpd/Plugin.pm 2007-06-14 13:43:53.000000000 -0600
152 @@ -6,7 +6,7 @@
153 our @hooks = qw(
154 logging config pre-connection connect ehlo_parse ehlo
155 helo_parse helo auth_parse auth auth-plain auth-login auth-cram-md5
156 - rcpt_parse rcpt_pre rcpt mail_parse mail mail_pre
157 + valid_auth set_hooks rcpt_parse rcpt_pre rcpt mail_parse mail mail_pre
158 data data_post queue_pre queue queue_post
159 quit reset_transaction disconnect post-connection
160 unrecognized_command deny ok received_line
161
162
163
164 1.1 mail-mta/qpsmtpd/files/qpsmtpd.initd
165
166 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.initd?rev=1.1&view=markup
167 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.initd?rev=1.1&content-type=text/plain
168
169 Index: qpsmtpd.initd
170 ===================================================================
171 #!/sbin/runscript
172
173 depend() {
174 use logger dns ypbind amavisd mysql postgresql antivirus postfix_greylist net saslauthd
175 provide mta
176 }
177
178 checkconfig() {
179 if ! [ -d "${QPSMTPD_CONFIG:-/etc/qpsmtpd}" ]; then
180 eerror "Configuration directory ${QPSMTPD_CONFIG:-/etc/qpsmtpd} does not exist."
181 return 1
182 fi
183 return 0
184 }
185
186 start() {
187 checkconfig || return 1
188 ebegin "Starting qpsmtpd [${QPSMTPD_SERVER_TYPE}] server"
189 HOME="/var/spool/qpsmtpd"
190 local QPSMTPD_SERVER_BIN=""
191 local myopts=""
192 export QPSMTPD_CONFIG=${QPSMTPD_CONFIG}
193 for foo in PERL_UNICODE LANG LC_TIME LC_ALL BASH_ENV ENV CDPATH IFS
194 do
195 unset ${foo}
196 done
197 case "${QPSMTPD_SERVER_TYPE}" in
198 prefork)
199 QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-prefork"
200 QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")"
201 # Option --pid-file is mentioned in the help of the prefork server
202 # but does not work when specified.
203 # QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file /var/run/qpsmtpd.pid"
204 myopts="${myopts} --make-pidfile --pidfile /var/run/qpsmtpd.pid"
205 ;;
206 async)
207 QPSMTPD_SERVER_BIN="/usr/sbin/qpsmtpd-async"
208 myopts="${myopts} --background --make-pidfile --pidfile /var/run/qpsmtpd.pid"
209 ;;
210 forkserver|*)
211 QPSMTPD_SERVER_BIN="/usr/bin/qpsmtpd-forkserver"
212 QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:\-\-pid\-file[\t ]\{1,99\}[^ ]*::gI")"
213 QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-d[\t ]\{1,99\}|[\t ]\{1,99\}\-d[\t ]\{0,99\}::gI")"
214 QPSMTPD_OPTIONS="$(echo "${QPSMTPD_OPTIONS}" | sed "s:[\t ]\{0,99\}\-\detach[\t ]\{1,99\}|[\t ]\{1,99\}\-\-detach[\t ]\{0,99\}::gI")"
215 QPSMTPD_OPTIONS="${QPSMTPD_OPTIONS} --pid-file /var/run/qpsmtpd.pid --detach"
216 myopts="${myopts} --pidfile /dev/null"
217 ;;
218 esac
219 start-stop-daemon --start --nicelevel ${QPSMTPD_NICELEVEL:-0} \
220 --quiet ${myopts} \
221 --exec ${QPSMTPD_SERVER_BIN} \
222 -- ${QPSMTPD_OPTIONS}
223 eend $?
224 }
225
226 stop() {
227 ebegin "Stopping qpsmtpd [${QPSMTPD_SERVER_TYPE}] server"
228 start-stop-daemon --stop --quiet --pidfile /var/run/qpsmtpd.pid
229 eend $?
230 }
231
232
233
234 1.1 mail-mta/qpsmtpd/files/qpsmtpd.envd
235
236 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.envd?rev=1.1&view=markup
237 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.envd?rev=1.1&content-type=text/plain
238
239 Index: qpsmtpd.envd
240 ===================================================================
241 QPSMTPD_CONFIG="/etc/qpsmtpd"
242 CONFIG_PROTECT="/usr/share/qpsmtpd/plugins"
243
244
245
246 1.1 mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch
247
248 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch?rev=1.1&view=markup
249 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badrcptto_allowrelay.patch?rev=1.1&content-type=text/plain
250
251 Index: qpsmtpd-0.40-badrcptto_allowrelay.patch
252 ===================================================================
253 --- qpsmtpd-0.40/plugins/check_badrcptto.badrcptto_allowrelay 2007-06-14 11:57:24.000000000 -0600
254 +++ qpsmtpd-0.40/plugins/check_badrcptto 2007-06-14 13:26:42.000000000 -0600
255 @@ -3,6 +3,7 @@
256
257 sub hook_rcpt {
258 my ($self, $transaction, $recipient, %param) = @_;
259 + return (DECLINED) if $self->qp->connection->relay_client;
260 my @badrcptto = $self->qp->config("badrcptto") or return (DECLINED);
261 return (DECLINED) unless $recipient->host && $recipient->user;
262 my $host = lc $recipient->host;
263
264
265
266 1.1 mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch
267
268 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch?rev=1.1&view=markup
269 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd-0.40-badhelo_disconnect.patch?rev=1.1&content-type=text/plain
270
271 Index: qpsmtpd-0.40-badhelo_disconnect.patch
272 ===================================================================
273 --- qpsmtpd-0.40/plugins/check_spamhelo.badhelo_disconnect 2007-06-14 11:57:24.000000000 -0600
274 +++ qpsmtpd-0.40/plugins/check_spamhelo 2007-06-14 13:21:45.000000000 -0600
275 @@ -23,7 +23,7 @@
276 for my $bad ($self->qp->config('badhelo')) {
277 if ($host eq lc $bad) {
278 $self->log(LOGDEBUG, "Denying HELO from host claiming to be $bad");
279 - return (DENY, "Sorry, I don't believe that you are $host.");
280 + return (DENY_DISCONNECT, "Sorry, I don't believe that you are $host.");
281 }
282 }
283 return DECLINED;
284
285
286
287 1.1 mail-mta/qpsmtpd/files/qpsmtpd.xinetd
288
289 file : http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.xinetd?rev=1.1&view=markup
290 plain: http://sources.gentoo.org/viewcvs.py/gentoo-x86/mail-mta/qpsmtpd/files/qpsmtpd.xinetd?rev=1.1&content-type=text/plain
291
292 Index: qpsmtpd.xinetd
293 ===================================================================
294 # default: off
295 # description: The telnet server serves telnet sessions; it uses \
296 # unencrypted username/password pairs for authentication.
297
298 service smtp
299 {
300 flags = REUSE
301 socket_type = stream
302 wait = no
303 user = smtpd
304 group = smtpd
305 groups = yes
306 log_on_failure += USERID HOST
307 disable = yes
308 rlimit_as = 128M
309 instances = 40
310 per_source = 10
311 cps = 50 10
312 server = /usr/bin/qpsmtpd
313 }