View | Details | Raw Unified | Return to bug 138165
Collapse All | Expand All

(-)dma/Makefile (-2 / +1 lines)
Lines 6-13 Link Here
6
#
6
#
7
7
8
PORTNAME=	dma
8
PORTNAME=	dma
9
PORTVERSION=	20090208
9
PORTVERSION=	20090825
10
PORTREVISION=	2
11
CATEGORIES=	mail ipv6
10
CATEGORIES=	mail ipv6
12
MASTER_SITES=	http://mirror.roe.ch/dist/dma/
11
MASTER_SITES=	http://mirror.roe.ch/dist/dma/
13
12
(-)dma/distinfo (-3 / +3 lines)
Lines 1-3 Link Here
1
MD5 (dma-20090208.tar.bz2) = 3284c870aad1c5248254aeee9cb2ae9d
1
MD5 (dma-20090825.tar.bz2) = d76ef92def1992c836888c8451afce23
2
SHA256 (dma-20090208.tar.bz2) = 77524d6f6366e69d730c3d8cdcf2fe35a0cd28a6da7425def11bd4881043eaa3
2
SHA256 (dma-20090825.tar.bz2) = 9fcff7cffd4b5a9ef9413b733f2e3dffebdee00f8a449e7908db480d4302a531
3
SIZE (dma-20090208.tar.bz2) = 17252
3
SIZE (dma-20090825.tar.bz2) = 19992
(-)dma/files/patch-libexec_dma_dma.c (-40 lines)
Lines 1-40 Link Here
1
--- libexec/dma/dma.c.orig	2009-02-09 01:36:50.000000000 +0100
2
+++ libexec/dma/dma.c	2009-07-10 11:47:46.000000000 +0200
3
@@ -612,6 +612,7 @@
4
 	const char *errmsg = "unknown bounce reason";
5
 	struct timeval now;
6
 	struct stat st;
7
+	struct flock fl;
8
 
9
 	syslog(LOG_INFO, "%s: mail from=<%s> to=<%s>",
10
 	       it->queueid, it->sender, it->addr);
11
@@ -620,11 +621,29 @@
12
 	syslog(LOG_INFO, "%s: trying delivery",
13
 	       it->queueid);
14
 
15
+	bzero(&fl, sizeof(fl));
16
+	fl.l_type = F_WRLCK;
17
+	fl.l_whence = SEEK_SET;
18
+	if (fcntl(fileno(it->queuef), F_SETLKW, &fl) == -1) {
19
+		syslog(LOG_ERR, "%s: failed to lock queue file: %m",
20
+				it->queueid);
21
+		goto bounce;
22
+	}
23
+
24
 	if (it->remote)
25
 		error = deliver_remote(it, &errmsg);
26
 	else
27
 		error = deliver_local(it, &errmsg);
28
 
29
+	bzero(&fl, sizeof(fl));
30
+	fl.l_type = F_UNLCK;
31
+	fl.l_whence = SEEK_SET;
32
+	if (fcntl(fileno(it->queuef), F_SETLKW, &fl) == -1) {
33
+		syslog(LOG_ERR, "%s: failed to unlock queue file: %m",
34
+				it->queueid);
35
+		/* let `error' decide whether we bounce or not */
36
+	}
37
+
38
 	switch (error) {
39
 	case 0:
40
 		unlink(it->queuefn);
(-)dma/files/patch-libexec_dma_net.c (-21 lines)
Lines 1-21 Link Here
1
--- libexec/dma/net.c.orig	2008-09-30 19:47:21.000000000 +0200
2
+++ libexec/dma/net.c	2009-01-17 19:02:43.000000000 +0100
3
@@ -342,14 +342,10 @@
4
 				it->queueid);
5
 		else
6
 			goto out;
7
-	}
8
-
9
-	/*
10
-	 * If the user doesn't want STARTTLS, but SSL encryption, we
11
-	 * have to enable SSL first, then send EHLO
12
-	 */
13
-	if (((config->features & STARTTLS) == 0) &&
14
-	    ((config->features & SECURETRANS) != 0)) {
15
+		/*
16
+		 * The client SHOULD send an EHLO command as the
17
+		 * first command after a successful TLS negotiation.
18
+		 */
19
 		send_remote_command(fd, "EHLO %s", hostname());
20
 		if (read_remote(fd, 0, NULL) != 2) {
21
 			syslog(LOG_ERR, "%s: remote delivery deferred: "
(-)dma/pkg-descr (-8 / +9 lines)
Lines 1-12 Link Here
1
The DragonFly Mail Agent is a small Mail Transport Agent (MTA),
1
The DragonFly Mail Agent is a small Mail Transport Agent (MTA),
2
designed for home and office use.  It accepts mails from locally
2
designed for home and office use.  It accepts e-mail messages
3
installed Mail User Agents (MUA) and delivers the mails either
3
from locally installed Mail User Agents (MUA) and delivers the
4
locally or to a remote destination.  Remote delivery includes
4
messages either locally or to a remote destination.  Remote
5
several features like TLS/SSL support and SMTP authentication,
5
delivery includes several features like TLS/SSL support and
6
but not MX record lookups.  Therefore, dma is currently not
6
SMTP authentication, but not MX record lookups.  Therefore,
7
suitable for direct remote delivery.  However, it works very
7
dma is currently not suitable for direct remote delivery.
8
well for handling local mail plus secure mail submission to a
8
However, it works very well for handling local mail plus
9
remote smarthost (e.g. for travelling mobile computers).
9
secure mail submission to a remote smarthost (e.g. for
10
travelling mobile computers).
10
11
11
Since dma is not intended as a replacement for real, big MTAs
12
Since dma is not intended as a replacement for real, big MTAs
12
like sendmail(8) or postfix(1), it does not listen on port 25
13
like sendmail(8) or postfix(1), it does not listen on port 25

Return to bug 138165