diff options
author | Gilles Chehade <gilles@poolp.org> | 2019-11-12 21:31:42 +0100 |
---|---|---|
committer | Gilles Chehade <gilles@poolp.org> | 2019-11-12 21:31:42 +0100 |
commit | 3d29a58cce1d1e39b1b2839b15c618fcc4f6d2bd (patch) | |
tree | 4f5d7e6248f5c78a46d94dd33686b5c01af8be8f | |
parent | Merge pull request #981 from ngortheone/master (diff) | |
download | OpenSMTPD-3d29a58cce1d1e39b1b2839b15c618fcc4f6d2bd.tar.xz OpenSMTPD-3d29a58cce1d1e39b1b2839b15c618fcc4f6d2bd.zip |
sync
-rw-r--r-- | smtpd/ruleset.c | 9 | ||||
-rw-r--r-- | smtpd/spfwalk.c | 4 | ||||
-rw-r--r-- | smtpd/to.c | 4 |
3 files changed, 10 insertions, 7 deletions
diff --git a/smtpd/ruleset.c b/smtpd/ruleset.c index 0468ddb3..db9d1aa5 100644 --- a/smtpd/ruleset.c +++ b/smtpd/ruleset.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ruleset.c,v 1.45 2019/11/04 00:05:38 gilles Exp $ */ +/* $OpenBSD: ruleset.c,v 1.46 2019/11/12 20:21:46 gilles Exp $ */ /* * Copyright (c) 2009 Gilles Chehade <gilles@poolp.org> @@ -84,9 +84,12 @@ ruleset_match_from(struct rule *r, const struct envelope *evp) } else { key = ss_to_text(&evp->ss); - if (strcmp(key, "local") == 0) - if (r->flag_from_socket) + if (r->flag_from_socket) { + if (strcmp(key, "local") == 0) return MATCH_RESULT(1, r->flag_from); + else + return r->flag_from < 0 ? 1 : 0; + } } if (r->flag_from_regex) service = K_REGEX; diff --git a/smtpd/spfwalk.c b/smtpd/spfwalk.c index b643552d..d28fa58c 100644 --- a/smtpd/spfwalk.c +++ b/smtpd/spfwalk.c @@ -217,8 +217,8 @@ dispatch_txt(struct dns_rr *rr) lookup_record(T_MX, buf2, dispatch_mx); continue; } - if (strncasecmp("mx:", *ap, 2) == 0) { - lookup_record(T_MX, *(ap) + 2, dispatch_mx); + if (strncasecmp("mx:", *ap, 3) == 0) { + lookup_record(T_MX, *(ap) + 3, dispatch_mx); continue; } } @@ -1,4 +1,4 @@ -/* $OpenBSD: to.c,v 1.43 2019/09/19 16:00:59 gilles Exp $ */ +/* $OpenBSD: to.c,v 1.44 2019/11/12 20:21:46 gilles Exp $ */ /* * Copyright (c) 2009 Jacek Masiulaniec <jacekm@dobremiasto.net> @@ -474,7 +474,7 @@ rule_to_text(struct rule *r) (void)strlcat(buf, " !", sizeof buf); if (r->flag_from_socket) (void)strlcat(buf, " from socket", sizeof buf); - if (r->flag_from_rdns) { + else if (r->flag_from_rdns) { (void)strlcat(buf, " from rdns", sizeof buf); if (r->table_from) { (void)strlcat(buf, " ", sizeof buf); |