pf.c (ab238f14544b2415561c4fed674ee360aa8b5860) | pf.c (c8ee75f2315e8267ad814dc5b4645ef205f0e0e1) |
---|---|
1/*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2001 Daniel Hartmeier 5 * Copyright (c) 2002 - 2008 Henning Brauer 6 * Copyright (c) 2012 Gleb Smirnoff <glebius@FreeBSD.org> 7 * All rights reserved. 8 * --- 1579 unchanged lines hidden (view full) --- 1588} 1589 1590static bool 1591pf_isforlocal(struct mbuf *m, int af) 1592{ 1593 switch (af) { 1594#ifdef INET 1595 case AF_INET: { | 1/*- 2 * SPDX-License-Identifier: BSD-2-Clause 3 * 4 * Copyright (c) 2001 Daniel Hartmeier 5 * Copyright (c) 2002 - 2008 Henning Brauer 6 * Copyright (c) 2012 Gleb Smirnoff <glebius@FreeBSD.org> 7 * All rights reserved. 8 * --- 1579 unchanged lines hidden (view full) --- 1588} 1589 1590static bool 1591pf_isforlocal(struct mbuf *m, int af) 1592{ 1593 switch (af) { 1594#ifdef INET 1595 case AF_INET: { |
1596 struct rm_priotracker in_ifa_tracker; 1597 struct ip *ip; 1598 struct in_ifaddr *ia = NULL; | 1596 struct ip *ip = mtod(m, struct ip *); |
1599 | 1597 |
1600 ip = mtod(m, struct ip *); 1601 IN_IFADDR_RLOCK(&in_ifa_tracker); 1602 LIST_FOREACH(ia, INADDR_HASH(ip->ip_dst.s_addr), ia_hash) { 1603 if (IA_SIN(ia)->sin_addr.s_addr == ip->ip_dst.s_addr) { 1604 IN_IFADDR_RUNLOCK(&in_ifa_tracker); 1605 return (true); 1606 } 1607 } 1608 IN_IFADDR_RUNLOCK(&in_ifa_tracker); 1609 break; | 1598 return (in_localip(ip->ip_dst)); |
1610 } 1611#endif 1612#ifdef INET6 1613 case AF_INET6: { 1614 struct ip6_hdr *ip6; 1615 struct in6_ifaddr *ia; 1616 ip6 = mtod(m, struct ip6_hdr *); 1617 ia = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */, false); --- 5761 unchanged lines hidden --- | 1599 } 1600#endif 1601#ifdef INET6 1602 case AF_INET6: { 1603 struct ip6_hdr *ip6; 1604 struct in6_ifaddr *ia; 1605 ip6 = mtod(m, struct ip6_hdr *); 1606 ia = in6ifa_ifwithaddr(&ip6->ip6_dst, 0 /* XXX */, false); --- 5761 unchanged lines hidden --- |