diff options
author | Eric Faurot <eric@cvs.openbsd.org> | 2011-12-13 22:04:36 +0000 |
---|---|---|
committer | Eric Faurot <eric@cvs.openbsd.org> | 2011-12-13 22:04:36 +0000 |
commit | 1b99a1058f37ecbe11e86d91331b1722307dd309 (patch) | |
tree | 6856f8efa8d384d0196f71732e8573c85b250218 /usr.sbin/smtpd | |
parent | c186c66598aa1d157332722bf0503f6450ed4983 (diff) |
split user_backend.c into user.c and user_pwd.c to be consistent with the
backend scheme. Also rename USER_GETPWNAM to USER_PWD.
ok chl@ gilles@
Diffstat (limited to 'usr.sbin/smtpd')
-rw-r--r-- | usr.sbin/smtpd/lka_session.c | 8 | ||||
-rw-r--r-- | usr.sbin/smtpd/smtpd.c | 8 | ||||
-rw-r--r-- | usr.sbin/smtpd/smtpd.h | 6 | ||||
-rw-r--r-- | usr.sbin/smtpd/smtpd/Makefile | 4 | ||||
-rw-r--r-- | usr.sbin/smtpd/user.c | 46 | ||||
-rw-r--r-- | usr.sbin/smtpd/user_pwd.c (renamed from usr.sbin/smtpd/user_backend.c) | 25 |
6 files changed, 62 insertions, 35 deletions
diff --git a/usr.sbin/smtpd/lka_session.c b/usr.sbin/smtpd/lka_session.c index 4423cb4199c..5c7398c988c 100644 --- a/usr.sbin/smtpd/lka_session.c +++ b/usr.sbin/smtpd/lka_session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: lka_session.c,v 1.15 2011/12/13 21:44:47 gilles Exp $ */ +/* $OpenBSD: lka_session.c,v 1.16 2011/12/13 22:04:35 eric Exp $ */ /* * Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org> @@ -109,7 +109,7 @@ lka_session_envelope_expand(struct lka_session *lks, struct envelope *ep) } bzero(&u, sizeof (u)); - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); if (! ub->getbyname(&u, username)) return 0; @@ -511,7 +511,7 @@ lka_session_expand_format(char *buf, size_t len, struct envelope *ep) if (*(p + 1) == '/' || *(p + 1) == '\0') { bzero(&u, sizeof (u)); - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); if (! ub->getbyname(&u, ep->agent.mda.as_user)) return 0; @@ -536,7 +536,7 @@ lka_session_expand_format(char *buf, size_t len, struct envelope *ep) *delim = '\0'; bzero(&u, sizeof (u)); - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); if (! ub->getbyname(&u, username)) return 0; diff --git a/usr.sbin/smtpd/smtpd.c b/usr.sbin/smtpd/smtpd.c index 5acc38e4b0b..fd216ae8262 100644 --- a/usr.sbin/smtpd/smtpd.c +++ b/usr.sbin/smtpd/smtpd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: smtpd.c,v 1.141 2011/12/13 21:44:47 gilles Exp $ */ +/* $OpenBSD: smtpd.c,v 1.142 2011/12/13 22:04:35 eric Exp $ */ /* * Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org> @@ -702,7 +702,7 @@ forkmda(struct imsgev *iev, u_int32_t id, log_debug("forkmda: to %s as %s", deliver->to, deliver->user); bzero(&u, sizeof (u)); - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); errno = 0; if (! ub->getbyname(&u, deliver->user)) { n = snprintf(ebuf, sizeof ebuf, "getpwnam: %s", @@ -880,7 +880,7 @@ offline_enqueue(char *name) _exit(1); } - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); bzero(&u, sizeof (u)); errno = 0; if (! ub->getbyuid(&u, sb.st_uid)) { @@ -986,7 +986,7 @@ parent_forward_open(char *username) int fd; bzero(&u, sizeof (u)); - ub = user_backend_lookup(USER_GETPWNAM); + ub = user_backend_lookup(USER_PWD); if (! ub->getbyname(&u, username)) return -1; diff --git a/usr.sbin/smtpd/smtpd.h b/usr.sbin/smtpd/smtpd.h index 9aedaf19f95..5f088c0f4a6 100644 --- a/usr.sbin/smtpd/smtpd.h +++ b/usr.sbin/smtpd/smtpd.h @@ -1,4 +1,4 @@ -/* $OpenBSD: smtpd.h,v 1.261 2011/12/13 21:44:47 gilles Exp $ */ +/* $OpenBSD: smtpd.h,v 1.262 2011/12/13 22:04:35 eric Exp $ */ /* * Copyright (c) 2008 Gilles Chehade <gilles@openbsd.org> @@ -933,8 +933,7 @@ struct auth_backend { /* user structures */ enum user_type { - USER_INVALID=0, - USER_GETPWNAM, + USER_PWD, }; #define MAXPASSWORDLEN 128 @@ -947,7 +946,6 @@ struct mta_user { }; struct user_backend { - enum user_type type; int (*getbyname)(struct mta_user *, char *); int (*getbyuid)(struct mta_user *, uid_t); }; diff --git a/usr.sbin/smtpd/smtpd/Makefile b/usr.sbin/smtpd/smtpd/Makefile index bbabed1ccc3..3a461b0d2a8 100644 --- a/usr.sbin/smtpd/smtpd/Makefile +++ b/usr.sbin/smtpd/smtpd/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.32 2011/12/13 21:44:47 gilles Exp $ +# $OpenBSD: Makefile,v 1.33 2011/12/13 22:04:35 eric Exp $ PROG= smtpd SRCS= aliases.c auth_backend.c bounce.c client.c \ @@ -12,7 +12,7 @@ SRCS= aliases.c auth_backend.c bounce.c client.c \ smtp_session.c smtpd.c ssl.c ssl_privsep.c util.c asr.c \ print.c pack.c dname.c res_random.c sockaddr.c \ ramqueue.c queue_backend.c queue_fsqueue.c \ - queue_fsqueue_ascii.c user_backend.c stats.c + queue_fsqueue_ascii.c user.c user_pwd.c stats.c MAN= smtpd.8 smtpd.conf.5 BINDIR= /usr/sbin diff --git a/usr.sbin/smtpd/user.c b/usr.sbin/smtpd/user.c new file mode 100644 index 00000000000..12aad9d6b26 --- /dev/null +++ b/usr.sbin/smtpd/user.c @@ -0,0 +1,46 @@ +/* $OpenBSD: user.c,v 1.1 2011/12/13 22:04:35 eric Exp $ */ + +/* + * Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org> + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include <sys/types.h> +#include <sys/queue.h> +#include <sys/tree.h> +#include <sys/param.h> +#include <sys/socket.h> + +#include <event.h> +#include <imsg.h> +#include <stdio.h> + +#include "smtpd.h" +#include "log.h" + +extern struct user_backend user_backend_pwd; + +struct user_backend * +user_backend_lookup(enum user_type type) +{ + switch (type) { + case USER_PWD: + return &user_backend_pwd; + + default: + fatalx("invalid user backend"); + } + + return (NULL); +} diff --git a/usr.sbin/smtpd/user_backend.c b/usr.sbin/smtpd/user_pwd.c index e2efa68adde..29a30055866 100644 --- a/usr.sbin/smtpd/user_backend.c +++ b/usr.sbin/smtpd/user_pwd.c @@ -1,4 +1,4 @@ -/* $OpenBSD: user_backend.c,v 1.2 2011/12/08 17:00:28 todd Exp $ */ +/* $OpenBSD: user_pwd.c,v 1.1 2011/12/13 22:04:35 eric Exp $ */ /* * Copyright (c) 2011 Gilles Chehade <gilles@openbsd.org> @@ -38,29 +38,12 @@ int user_getpw_ret(struct mta_user *, struct passwd *); /* helper */ int user_getpwnam(struct mta_user *, char *); int user_getpwuid(struct mta_user *, uid_t); -struct user_backend *user_backend_lookup(enum user_type); -struct user_backend user_backends[] = { - { USER_GETPWNAM, user_getpwnam, user_getpwuid } +struct user_backend user_backend_pwd = { + user_getpwnam, + user_getpwuid, }; -struct user_backend * -user_backend_lookup(enum user_type type) -{ - u_int8_t i; - - for (i = 0; i < nitems(user_backends); ++i) - if (user_backends[i].type == type) - break; - - if (i == nitems(user_backends)) - fatalx("invalid user type"); - - return &user_backends[i]; -} - - - int user_getpw_ret(struct mta_user *u, struct passwd *pw) { |