From eb8bc5621c0e1eaeb75884f5d7f36edd90d4cd9b Mon Sep 17 00:00:00 2001 From: Baptiste Daroussin Date: Sat, 20 Aug 2016 16:28:17 +0000 Subject: Import Dragonfly Mail agent snapshot from 2016-08-16 --- VERSION | 2 +- dma-mbox-create.c | 2 +- dma.c | 4 ++-- dma.h | 2 +- dns.c | 1 + local.c | 2 +- net.c | 9 ++++++--- 7 files changed, 13 insertions(+), 9 deletions(-) diff --git a/VERSION b/VERSION index 9097bf9dbe5f..5416288bc5ef 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -v0.10 +v0.11 diff --git a/dma-mbox-create.c b/dma-mbox-create.c index 532a7afbe0b5..45a4792a3f6f 100644 --- a/dma-mbox-create.c +++ b/dma-mbox-create.c @@ -142,7 +142,7 @@ main(int argc, char **argv) logfail(EX_CANTCREAT, "cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user); } - f = open(fn, O_RDONLY|O_CREAT, 0600); + f = open(fn, O_RDONLY|O_CREAT|O_NOFOLLOW, 0600); if (f < 0) logfail(EX_NOINPUT, "cannt open mbox `%s'", fn); diff --git a/dma.c b/dma.c index 94fc3316f7db..b87b20245583 100644 --- a/dma.c +++ b/dma.c @@ -321,7 +321,7 @@ deliver(struct qitem *it) snprintf(errmsg, sizeof(errmsg), "unknown bounce reason"); retry: - syslog(LOG_INFO, "trying delivery"); + syslog(LOG_INFO, "<%s> trying delivery", it->addr); if (it->remote) error = deliver_remote(it); @@ -331,7 +331,7 @@ retry: switch (error) { case 0: delqueue(it); - syslog(LOG_INFO, "delivery successful"); + syslog(LOG_INFO, "<%s> delivery successful", it->addr); exit(EX_OK); case 1: diff --git a/dma.h b/dma.h index acf5e44d07bc..593417617d3d 100644 --- a/dma.h +++ b/dma.h @@ -49,7 +49,7 @@ #define VERSION "DragonFly Mail Agent " DMA_VERSION #define BUF_SIZE 2048 -#define ERRMSG_SIZE 200 +#define ERRMSG_SIZE 1024 #define USERNAME_SIZE 50 #define MIN_RETRY 300 /* 5 minutes */ #define MAX_RETRY (3*60*60) /* retry at least every 3 hours */ diff --git a/dns.c b/dns.c index dd9ebfca8d82..bd28c4db724c 100644 --- a/dns.c +++ b/dns.c @@ -34,6 +34,7 @@ */ #include +#include #include #include #include diff --git a/local.c b/local.c index e3e015217fea..94e217928983 100644 --- a/local.c +++ b/local.c @@ -196,7 +196,7 @@ retry: goto out; } - error = snprintf(line, sizeof(line), "%sFrom %s\t%s", newline, sender, ctime(&now)); + error = snprintf(line, sizeof(line), "%sFrom %s %s", newline, sender, ctime(&now)); if (error < 0 || (size_t)error >= sizeof(line)) { syslog(LOG_NOTICE, "local delivery deferred: can not write header: %m"); goto out; diff --git a/net.c b/net.c index 26935a8feec8..47ee92849421 100644 --- a/net.c +++ b/net.c @@ -372,11 +372,13 @@ deliver_to_host(struct qitem *it, struct mx_hostentry *host) host->host, host->addr, c, neterr); \ snprintf(errmsg, sizeof(errmsg), "%s [%s] did not like our %s:\n%s", \ host->host, host->addr, c, neterr); \ - return (-1); \ + error = -1; \ + goto out; \ } else if (res != exp) { \ syslog(LOG_NOTICE, "remote delivery deferred: %s [%s] failed after %s: %s", \ host->host, host->addr, c, neterr); \ - return (1); \ + error = 1; \ + goto out; \ } /* Check first reply from remote host */ @@ -426,7 +428,8 @@ deliver_to_host(struct qitem *it, struct mx_hostentry *host) syslog(LOG_ERR, "remote delivery failed:" " SMTP login failed: %m"); snprintf(errmsg, sizeof(errmsg), "SMTP login to %s failed", host->host); - return (-1); + error = -1; + goto out; } /* SMTP login is not available, so try without */ else if (error > 0) { -- cgit v1.2.3