svn commit: r289121 - in vendor/dma/dist: . debian
Baptiste Daroussin
bapt at FreeBSD.org
Sat Oct 10 23:22:08 UTC 2015
Author: bapt
Date: Sat Oct 10 23:22:05 2015
New Revision: 289121
URL: https://svnweb.freebsd.org/changeset/base/289121
Log:
Import dma 0.10
Deleted:
vendor/dma/dist/BSDmakefile
vendor/dma/dist/debian/
Modified:
vendor/dma/dist/LICENSE
vendor/dma/dist/README.markdown
vendor/dma/dist/TODO
vendor/dma/dist/VERSION
vendor/dma/dist/aliases_parse.y
vendor/dma/dist/aliases_scan.l
vendor/dma/dist/conf.c
vendor/dma/dist/dma-mbox-create.c
vendor/dma/dist/dma.8
vendor/dma/dist/dma.c
vendor/dma/dist/dma.h
vendor/dma/dist/dns.c
vendor/dma/dist/get-version.sh
vendor/dma/dist/local.c
vendor/dma/dist/mail.c
vendor/dma/dist/net.c
vendor/dma/dist/spool.c
vendor/dma/dist/util.c
Modified: vendor/dma/dist/LICENSE
==============================================================================
--- vendor/dma/dist/LICENSE Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/LICENSE Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,5 +1,5 @@
+Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
Copyright (c) 2008 The DragonFly Project.
-Copyright (c) 2008-2011, Simon Schubert <2 at 0x2c.org>.
All rights reserved.
This code is derived from software contributed to The DragonFly Project
@@ -37,7 +37,7 @@ OF THE USE OF THIS SOFTWARE, EVEN IF ADV
SUCH DAMAGE.
-Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
+Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
(Royal Institute of Technology, Stockholm, Sweden).
All rights reserved.
Modified: vendor/dma/dist/README.markdown
==============================================================================
--- vendor/dma/dist/README.markdown Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/README.markdown Sat Oct 10 23:22:05 2015 (r289121)
@@ -15,8 +15,13 @@ incoming connections.
Building
--------
+In Linux:
+
make
+In BSD:
+
+ cd bsd && make
Installation
------------
Modified: vendor/dma/dist/TODO
==============================================================================
--- vendor/dma/dist/TODO Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/TODO Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,5 +1,4 @@
- unquote/handle quoted local recipients
-- use proper sysexit codes
- handle/use ESMTP extensions
- .forward support
- suggest way to run a queue flush on boot
Modified: vendor/dma/dist/VERSION
==============================================================================
--- vendor/dma/dist/VERSION Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/VERSION Sat Oct 10 23:22:05 2015 (r289121)
@@ -1 +1 @@
-v0.9
+v0.10
Modified: vendor/dma/dist/aliases_parse.y
==============================================================================
--- vendor/dma/dist/aliases_parse.y Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/aliases_parse.y Sat Oct 10 23:22:05 2015 (r289121)
@@ -7,8 +7,6 @@
extern int yylineno;
static void yyerror(const char *);
-int yywrap(void);
-int yylex(void);
static void
yyerror(const char *msg)
Modified: vendor/dma/dist/aliases_scan.l
==============================================================================
--- vendor/dma/dist/aliases_scan.l Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/aliases_scan.l Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,11 +1,11 @@
%{
#include <string.h>
+#include "dma.h"
#include "aliases_parse.h"
#define YY_NO_INPUT
-int yylex(void);
%}
%option yylineno
Modified: vendor/dma/dist/conf.c
==============================================================================
--- vendor/dma/dist/conf.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/conf.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -64,7 +64,7 @@ trim_line(char *line)
if (line[0] == '.') {
if ((linelen + 2) > 1000) {
syslog(LOG_CRIT, "Cannot escape leading dot. Buffer overflow");
- exit(1);
+ exit(EX_DATAERR);
}
memmove((line + 1), line, (linelen + 1));
line[0] = '.';
@@ -101,7 +101,7 @@ parse_authfile(const char *path)
a = fopen(path, "r");
if (a == NULL) {
- errlog(1, "can not open auth file `%s'", path);
+ errlog(EX_NOINPUT, "can not open auth file `%s'", path);
/* NOTREACHED */
}
@@ -121,7 +121,7 @@ parse_authfile(const char *path)
au = calloc(1, sizeof(*au));
if (au == NULL)
- errlog(1, NULL);
+ errlog(EX_OSERR, NULL);
data = strdup(line);
au->login = strsep(&data, "|");
@@ -131,8 +131,7 @@ parse_authfile(const char *path)
if (au->login == NULL ||
au->host == NULL ||
au->password == NULL) {
- errlogx(1, "syntax error in authfile %s:%d",
- path, lineno);
+ errlogx(EX_CONFIG, "syntax error in authfile %s:%d", path, lineno);
/* NOTREACHED */
}
@@ -160,7 +159,7 @@ parse_conf(const char *config_path)
/* Don't treat a non-existing config file as error */
if (errno == ENOENT)
return;
- errlog(1, "can not open config `%s'", config_path);
+ errlog(EX_NOINPUT, "can not open config `%s'", config_path);
/* NOTREACHED */
}
@@ -211,7 +210,7 @@ parse_conf(const char *config_path)
} else {
host = data;
}
- if (host && *host == 0)
+ if (host && *host == 0)
host = NULL;
if (user && *user == 0)
user = NULL;
@@ -232,13 +231,13 @@ parse_conf(const char *config_path)
else if (strcmp(word, "NULLCLIENT") == 0 && data == NULL)
config.features |= NULLCLIENT;
else {
- errlogx(1, "syntax error in %s:%d", config_path, lineno);
+ errlogx(EX_CONFIG, "syntax error in %s:%d", config_path, lineno);
/* NOTREACHED */
}
}
if ((config.features & NULLCLIENT) && config.smarthost == NULL) {
- errlogx(1, "%s: NULLCLIENT requires SMARTHOST", config_path);
+ errlogx(EX_CONFIG, "%s: NULLCLIENT requires SMARTHOST", config_path);
/* NOTREACHED */
}
Modified: vendor/dma/dist/dma-mbox-create.c
==============================================================================
--- vendor/dma/dist/dma-mbox-create.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/dma-mbox-create.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,9 +1,9 @@
/*
- * Copyright (c) 2010 Simon Schubert <2 at 0x2c.org>
+ * Copyright (c) 2010-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -54,7 +54,7 @@
static void
-logfail(const char *fmt, ...)
+logfail(int exitcode, const char *fmt, ...)
{
int oerrno = errno;
va_list ap;
@@ -73,7 +73,7 @@ logfail(const char *fmt, ...)
else
syslog(LOG_ERR, errno ? "%m" : "unknown error");
- exit(1);
+ exit(exitcode);
}
/*
@@ -98,21 +98,21 @@ main(int argc, char **argv)
errno = 0;
gr = getgrnam(DMA_GROUP);
if (!gr)
- logfail("cannot find dma group `%s'", DMA_GROUP);
+ logfail(EX_CONFIG, "cannot find dma group `%s'", DMA_GROUP);
mail_gid = gr->gr_gid;
if (setgid(mail_gid) != 0)
- logfail("cannot set gid to %d (%s)", mail_gid, DMA_GROUP);
+ logfail(EX_NOPERM, "cannot set gid to %d (%s)", mail_gid, DMA_GROUP);
if (getegid() != mail_gid)
- logfail("cannot set gid to %d (%s), still at %d", mail_gid, DMA_GROUP, getegid());
+ logfail(EX_NOPERM, "cannot set gid to %d (%s), still at %d", mail_gid, DMA_GROUP, getegid());
/*
* We take exactly one argument: the username.
*/
if (argc != 2) {
errno = 0;
- logfail("no arguments");
+ logfail(EX_USAGE, "no arguments");
}
user = argv[1];
@@ -121,7 +121,7 @@ main(int argc, char **argv)
/* the username may not contain a pathname separator */
if (strchr(user, '/')) {
errno = 0;
- logfail("path separator in username `%s'", user);
+ logfail(EX_DATAERR, "path separator in username `%s'", user);
exit(1);
}
@@ -129,7 +129,7 @@ main(int argc, char **argv)
errno = 0;
pw = getpwnam(user);
if (!pw)
- logfail("cannot find user `%s'", user);
+ logfail(EX_NOUSER, "cannot find user `%s'", user);
user_uid = pw->pw_uid;
@@ -137,20 +137,20 @@ main(int argc, char **argv)
if (error < 0 || (size_t)error >= sizeof(fn)) {
if (error >= 0) {
errno = 0;
- logfail("mbox path too long");
+ logfail(EX_USAGE, "mbox path too long");
}
- logfail("cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user);
+ logfail(EX_CANTCREAT, "cannot build mbox path for `%s/%s'", _PATH_MAILDIR, user);
}
f = open(fn, O_RDONLY|O_CREAT, 0600);
if (f < 0)
- logfail("cannot open mbox `%s'", fn);
+ logfail(EX_NOINPUT, "cannt open mbox `%s'", fn);
if (fchown(f, user_uid, mail_gid))
- logfail("cannot change owner of mbox `%s'", fn);
+ logfail(EX_OSERR, "cannot change owner of mbox `%s'", fn);
if (fchmod(f, 0620))
- logfail("cannot change permissions of mbox `%s'", fn);
+ logfail(EX_OSERR, "cannot change permissions of mbox `%s'", fn);
/* file should be present with the right owner and permissions */
Modified: vendor/dma/dist/dma.8
==============================================================================
--- vendor/dma/dist/dma.8 Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/dma.8 Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,4 +1,5 @@
.\"
+.\" Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
.\" Copyright (c) 2008
.\" The DragonFly Project. All rights reserved.
.\"
Modified: vendor/dma/dist/dma.c
==============================================================================
--- vendor/dma/dist/dma.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/dma.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -247,7 +248,7 @@ go_background(struct queue *queue)
if (daemonize && daemon(0, 0) != 0) {
syslog(LOG_ERR, "can not daemonize: %m");
- exit(1);
+ exit(EX_OSERR);
}
daemonize = 0;
@@ -264,7 +265,7 @@ go_background(struct queue *queue)
switch (pid) {
case -1:
syslog(LOG_ERR, "can not fork: %m");
- exit(1);
+ exit(EX_OSERR);
break;
case 0:
@@ -286,11 +287,11 @@ retit:
break;
case 1:
if (doqueue)
- exit(0);
+ exit(EX_OK);
syslog(LOG_WARNING, "could not lock queue file");
- exit(1);
+ exit(EX_SOFTWARE);
default:
- exit(1);
+ exit(EX_SOFTWARE);
}
dropspool(queue, it);
return (it);
@@ -306,7 +307,7 @@ retit:
}
syslog(LOG_CRIT, "reached dead code");
- exit(1);
+ exit(EX_SOFTWARE);
}
static void
@@ -331,12 +332,12 @@ retry:
case 0:
delqueue(it);
syslog(LOG_INFO, "delivery successful");
- exit(0);
+ exit(EX_OK);
case 1:
if (stat(it->queuefn, &st) != 0) {
syslog(LOG_ERR, "lost queue file `%s'", it->queuefn);
- exit(1);
+ exit(EX_SOFTWARE);
}
if (gettimeofday(&now, NULL) == 0 &&
(now.tv_sec - st.st_mtim.tv_sec > MAX_TIMEOUT)) {
@@ -438,16 +439,16 @@ main(int argc, char **argv)
pw = getpwnam(DMA_ROOT_USER);
if (pw == NULL) {
if (errno == 0)
- errx(1, "user '%s' not found", DMA_ROOT_USER);
+ errx(EX_CONFIG, "user '%s' not found", DMA_ROOT_USER);
else
- err(1, "cannot drop root privileges");
+ err(EX_OSERR, "cannot drop root privileges");
}
if (setuid(pw->pw_uid) != 0)
- err(1, "cannot drop root privileges");
+ err(EX_OSERR, "cannot drop root privileges");
if (geteuid() == 0 || getuid() == 0)
- errx(1, "cannot drop root privileges");
+ errx(EX_OSERR, "cannot drop root privileges");
}
atexit(deltmp);
@@ -460,15 +461,15 @@ main(int argc, char **argv)
argv++; argc--;
showq = 1;
if (argc != 0)
- errx(1, "invalid arguments");
+ errx(EX_USAGE, "invalid arguments");
goto skipopts;
} else if (strcmp(argv[0], "newaliases") == 0) {
logident_base = "dma";
setlogident(NULL);
if (read_aliases() != 0)
- errx(1, "could not parse aliases file `%s'", config.aliases);
- exit(0);
+ errx(EX_SOFTWARE, "could not parse aliases file `%s'", config.aliases);
+ exit(EX_OK);
}
opterr = 0;
@@ -547,7 +548,7 @@ main(int argc, char **argv)
default:
fprintf(stderr, "invalid argument: `-%c'\n", optopt);
- exit(1);
+ exit(EX_USAGE);
}
}
argc -= optind;
@@ -555,10 +556,10 @@ main(int argc, char **argv)
opterr = 1;
if (argc != 0 && (showq || doqueue))
- errx(1, "sending mail and queue operations are mutually exclusive");
+ errx(EX_USAGE, "sending mail and queue operations are mutually exclusive");
if (showq + doqueue > 1)
- errx(1, "conflicting queue operations");
+ errx(EX_USAGE, "conflicting queue operations");
skipopts:
if (logident_base == NULL)
@@ -578,7 +579,7 @@ skipopts:
if (showq) {
if (load_queue(&queue) < 0)
- errlog(1, "can not load queue");
+ errlog(EX_NOINPUT, "can not load queue");
show_queue(&queue);
return (0);
}
@@ -586,38 +587,38 @@ skipopts:
if (doqueue) {
flushqueue_signal();
if (load_queue(&queue) < 0)
- errlog(1, "can not load queue");
+ errlog(EX_NOINPUT, "can not load queue");
run_queue(&queue);
return (0);
}
if (read_aliases() != 0)
- errlog(1, "could not parse aliases file `%s'", config.aliases);
+ errlog(EX_SOFTWARE, "could not parse aliases file `%s'", config.aliases);
if ((sender = set_from(&queue, sender)) == NULL)
- errlog(1, NULL);
+ errlog(EX_SOFTWARE, NULL);
if (newspoolf(&queue) != 0)
- errlog(1, "can not create temp file in `%s'", config.spooldir);
+ errlog(EX_CANTCREAT, "can not create temp file in `%s'", config.spooldir);
setlogident("%s", queue.id);
for (i = 0; i < argc; i++) {
if (add_recp(&queue, argv[i], EXPAND_WILDCARD) != 0)
- errlogx(1, "invalid recipient `%s'", argv[i]);
+ errlogx(EX_DATAERR, "invalid recipient `%s'", argv[i]);
}
if (LIST_EMPTY(&queue.queue) && !recp_from_header)
- errlogx(1, "no recipients");
+ errlogx(EX_NOINPUT, "no recipients");
if (readmail(&queue, nodot, recp_from_header) != 0)
- errlog(1, "can not read mail");
+ errlog(EX_NOINPUT, "can not read mail");
if (LIST_EMPTY(&queue.queue))
- errlogx(1, "no recipients");
+ errlogx(EX_NOINPUT, "no recipients");
if (linkspool(&queue) != 0)
- errlog(1, "can not create spools");
+ errlog(EX_CANTCREAT, "can not create spools");
/* From here on the mail is safe. */
Modified: vendor/dma/dist/dma.h
==============================================================================
--- vendor/dma/dist/dma.h Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/dma.h Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de> and
+ * by Simon Schubert <2 at 0x2c.org> and
* Matthias Schmidt <matthias at dragonflybsd.org>.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,6 +44,7 @@
#include <arpa/inet.h>
#include <openssl/ssl.h>
#include <netdb.h>
+#include <sysexits.h>
#define VERSION "DragonFly Mail Agent " DMA_VERSION
@@ -173,6 +175,8 @@ extern char errmsg[ERRMSG_SIZE];
/* aliases_parse.y */
int yyparse(void);
+int yywrap(void);
+int yylex(void);
extern FILE *yyin;
/* conf.c */
Modified: vendor/dma/dist/dns.c
==============================================================================
--- vendor/dma/dist/dns.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/dns.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -67,7 +68,6 @@ add_host(int pref, const char *host, int
char servname[10];
struct mx_hostentry *p;
const int count_inc = 10;
- int err;
memset(&hints, 0, sizeof(hints));
hints.ai_family = PF_UNSPEC;
@@ -75,9 +75,26 @@ add_host(int pref, const char *host, int
hints.ai_protocol = IPPROTO_TCP;
snprintf(servname, sizeof(servname), "%d", port);
- err = getaddrinfo(host, servname, &hints, &res0);
- if (err)
- return (err == EAI_AGAIN ? 1 : -1);
+ switch (getaddrinfo(host, servname, &hints, &res0)) {
+ case 0:
+ break;
+ case EAI_AGAIN:
+ case EAI_NONAME:
+ /*
+ * EAI_NONAME gets returned for:
+ * SMARTHOST set but DNS server not reachable -> defer
+ * SMARTHOST set but DNS server returns "host does not exist"
+ * -> buggy configuration
+ * -> either defer or bounce would be ok -> defer
+ * MX entry was returned by DNS server but name doesn't resolve
+ * -> hopefully transient situation -> defer
+ * all other DNS problems should have been caught earlier
+ * in dns_get_mx_list().
+ */
+ goto out;
+ default:
+ return(-1);
+ }
for (res = res0; res != NULL; res = res->ai_next) {
if (*ps + 1 >= roundup(*ps, count_inc)) {
Modified: vendor/dma/dist/get-version.sh
==============================================================================
--- vendor/dma/dist/get-version.sh Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/get-version.sh Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,7 +1,9 @@
#!/bin/sh
+tmp=$1
+file=${tmp:=VERSION}
gitver=$(git describe 2>/dev/null | tr - .)
-filever=$(cat VERSION)
+filever=$(cat ${file} 2>/dev/null)
version=${gitver}
: ${version:=$filever}
Modified: vendor/dma/dist/local.c
==============================================================================
--- vendor/dma/dist/local.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/local.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -81,7 +82,7 @@ create_mbox(const char *name)
execl(LIBEXEC_PATH "/dma-mbox-create", "dma-mbox-create", name, NULL);
syslog(LOG_ERR, "cannot execute "LIBEXEC_PATH"/dma-mbox-create: %m");
- exit(1);
+ exit(EX_SOFTWARE);
default:
/* parent */
Modified: vendor/dma/dist/mail.c
==============================================================================
--- vendor/dma/dist/mail.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/mail.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -51,7 +52,7 @@ bounce(struct qitem *it, const char *rea
/* Don't bounce bounced mails */
if (it->sender[0] == 0) {
syslog(LOG_INFO, "can not bounce a bounce message, discarding");
- exit(1);
+ exit(EX_SOFTWARE);
}
bzero(&bounceq, sizeof(bounceq));
@@ -132,7 +133,7 @@ bounce(struct qitem *it, const char *rea
fail:
syslog(LOG_CRIT, "error creating bounce: %m");
delqueue(it);
- exit(1);
+ exit(EX_IOERR);
}
struct parse_state {
@@ -332,10 +333,10 @@ newaddr:
ps->pos = 0;
addr = strdup(ps->addr);
if (addr == NULL)
- errlog(1, NULL);
+ errlog(EX_SOFTWARE, NULL);
if (add_recp(queue, addr, EXPAND_WILDCARD) != 0)
- errlogx(1, "invalid recipient `%s'", addr);
+ errlogx(EX_DATAERR, "invalid recipient `%s'", addr);
goto again;
}
@@ -374,7 +375,9 @@ readmail(struct queue *queue, int nodot,
if (fgets(line, sizeof(line) - 1, stdin) == NULL)
break;
if (had_last_line)
- errlogx(1, "bad mail input format");
+ errlogx(EX_DATAERR, "bad mail input format:"
+ " from %s (uid %d) (envelope-from %s)",
+ username, useruid, queue->sender);
linelen = strlen(line);
if (linelen == 0 || line[linelen - 1] != '\n') {
/*
@@ -405,7 +408,7 @@ readmail(struct queue *queue, int nodot,
if (parse_state.state != NONE) {
if (parse_addrs(&parse_state, line, queue) < 0) {
- errlogx(1, "invalid address in header\n");
+ errlogx(EX_DATAERR, "invalid address in header\n");
/* NOTREACHED */
}
}
@@ -416,7 +419,7 @@ readmail(struct queue *queue, int nodot,
strprefixcmp(line, "Bcc:") == 0)) {
parse_state.state = START;
if (parse_addrs(&parse_state, line, queue) < 0) {
- errlogx(1, "invalid address in header\n");
+ errlogx(EX_DATAERR, "invalid address in header\n");
/* NOTREACHED */
}
}
Modified: vendor/dma/dist/net.c
==============================================================================
--- vendor/dma/dist/net.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/net.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,4 +1,5 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
Modified: vendor/dma/dist/spool.c
==============================================================================
--- vendor/dma/dist/spool.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/spool.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -289,7 +290,7 @@ load_queue(struct queue *queue)
spooldir = opendir(config.spooldir);
if (spooldir == NULL)
- err(1, "reading queue");
+ err(EX_NOINPUT, "reading queue");
while ((de = readdir(spooldir)) != NULL) {
queuefn = NULL;
Modified: vendor/dma/dist/util.c
==============================================================================
--- vendor/dma/dist/util.c Sat Oct 10 23:16:40 2015 (r289120)
+++ vendor/dma/dist/util.c Sat Oct 10 23:22:05 2015 (r289121)
@@ -1,8 +1,9 @@
/*
+ * Copyright (c) 2008-2014, Simon Schubert <2 at 0x2c.org>.
* Copyright (c) 2008 The DragonFly Project. All rights reserved.
*
* This code is derived from software contributed to The DragonFly Project
- * by Simon 'corecode' Schubert <corecode at fs.ei.tum.de>.
+ * by Simon Schubert <2 at 0x2c.org>.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
More information about the svn-src-all
mailing list