summaryrefslogtreecommitdiffstats
path: root/contrib/dma/dma-mbox-create.c
diff options
context:
space:
mode:
authorbapt <bapt@FreeBSD.org>2015-10-10 23:31:47 +0000
committerbapt <bapt@FreeBSD.org>2015-10-10 23:31:47 +0000
commit98fd80e200c5b45dc2759bc47cdfdbe4c997b222 (patch)
tree17ae580c954daf295b7f67180c30333f74fba81d /contrib/dma/dma-mbox-create.c
parentda621122bc2653bce018e03b83db44ddedf9850d (diff)
downloadFreeBSD-src-98fd80e200c5b45dc2759bc47cdfdbe4c997b222.zip
FreeBSD-src-98fd80e200c5b45dc2759bc47cdfdbe4c997b222.tar.gz
Update Dragonfly Mail Agent to v0.10
Diffstat (limited to 'contrib/dma/dma-mbox-create.c')
-rw-r--r--contrib/dma/dma-mbox-create.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/contrib/dma/dma-mbox-create.c b/contrib/dma/dma-mbox-create.c
index c84652b..532a7af 100644
--- a/contrib/dma/dma-mbox-create.c
+++ b/contrib/dma/dma-mbox-create.c
@@ -1,9 +1,9 @@
/*
- * Copyright (c) 2010 Simon Schubert <2@0x2c.org>
+ * Copyright (c) 2010-2014, Simon Schubert <2@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@fs.ei.tum.de>.
+ * by Simon Schubert <2@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 */
OpenPOWER on IntegriCloud