summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGilles Chehade <gilles@cvs.openbsd.org>2009-10-18 21:45:48 +0000
committerGilles Chehade <gilles@cvs.openbsd.org>2009-10-18 21:45:48 +0000
commit85dd4e6459ee1b701693106667f4a9869ded6571 (patch)
treee3eb51e1c0f05fb8fa379a9ee95dc49f204f4d24
parenta576084906b44780634136bc1ba6d5c58e5e4a31 (diff)
actually, we want to resolve C_ALL and C_NET, we just don't want to do it
when their action is to be relayed.
-rw-r--r--usr.sbin/smtpd/lka.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/usr.sbin/smtpd/lka.c b/usr.sbin/smtpd/lka.c
index 0148b6086ff..edbcb5869c2 100644
--- a/usr.sbin/smtpd/lka.c
+++ b/usr.sbin/smtpd/lka.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: lka.c,v 1.69 2009/10/18 19:53:49 gilles Exp $ */
+/* $OpenBSD: lka.c,v 1.70 2009/10/18 21:45:47 gilles Exp $ */
/*
* Copyright (c) 2008 Pierre-Yves Ritschard <pyr@openbsd.org>
@@ -996,10 +996,16 @@ lka_expand_rcpt_iteration(struct smtpd *env, struct aliaseslist *aliases, struct
int
lka_resolve_path(struct smtpd *env, struct path *path){
switch (path->cond->c_type) {
+ case C_ALL:
+ case C_NET:
case C_DOM: {
char username[MAXLOGNAME];
struct passwd *pw;
+ /* recipient is to be relayed, no need for more processing */
+ if (IS_RELAY(*path))
+ return 1;
+
lowercase(username, path->user, sizeof(username));
if (aliases_exist(env, username)) {
path->flags |= F_PATH_ALIAS;
@@ -1027,9 +1033,6 @@ lka_resolve_path(struct smtpd *env, struct path *path){
}
break;
}
- case C_ALL:
- case C_NET:
- return 1;
default:
fatalx("lka_resolve_path: unexpected type");
}