diff options
author | 2001-06-27 22:05:20 +0000 | |
---|---|---|
committer | 2001-06-27 22:05:20 +0000 | |
commit | 84fd5c6ab1825feb939e833700a5ef72cfddae67 (patch) | |
tree | b2f1b8bfdf9f9ffb38d4c1109ebaf9678f2c31f3 | |
parent | Link with libkdb (diff) | |
download | wireguard-openbsd-84fd5c6ab1825feb939e833700a5ef72cfddae67.tar.xz wireguard-openbsd-84fd5c6ab1825feb939e833700a5ef72cfddae67.zip |
in rdr rules, let port 0 be the port wildcard; ok dhartmei@
-rw-r--r-- | sys/net/pf.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/sys/net/pf.c b/sys/net/pf.c index a15bde3ff9f..001ab14bf5f 100644 --- a/sys/net/pf.c +++ b/sys/net/pf.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pf.c,v 1.79 2001/06/27 21:34:57 dhartmei Exp $ */ +/* $OpenBSD: pf.c,v 1.80 2001/06/27 22:05:20 jasoni Exp $ */ /* * Copyright (c) 2001, Daniel Hartmeier @@ -1182,7 +1182,7 @@ get_rdr(struct ifnet *ifp, u_int8_t proto, u_int32_t addr, u_int16_t port) if (r->ifp == ifp && (!r->proto || r->proto == proto) && match_addr(r->not, r->daddr, r->dmask, addr) && - r->dport == port) + ((r->dport == 0) || (r->dport == port))) rm = r; else r = TAILQ_NEXT(r, entries); @@ -1233,7 +1233,8 @@ pf_test_tcp(int direction, struct ifnet *ifp, struct mbuf *m, baddr = h->ip_dst.s_addr; bport = th->th_dport; change_ap(&h->ip_dst.s_addr, &th->th_dport, - &h->ip_sum, &th->th_sum, rdr->raddr, rdr->rport); + &h->ip_sum, &th->th_sum, rdr->raddr, + rdr->rport ? rdr->rport : th->th_dport); rewrite++; } } @@ -1382,7 +1383,8 @@ pf_test_udp(int direction, struct ifnet *ifp, struct mbuf *m, baddr = h->ip_dst.s_addr; bport = uh->uh_dport; change_ap(&h->ip_dst.s_addr, &uh->uh_dport, - &h->ip_sum, &uh->uh_sum, rdr->raddr, rdr->rport); + &h->ip_sum, &uh->uh_sum, rdr->raddr, + rdr->rport ? rdr->rport : uh->uh_dport); rewrite++; } } |