mirror of
https://github.com/openwrt/openwrt.git
synced 2025-02-22 10:01:03 +00:00
owipcalc: remove clone in cidr_contains6
The "cidr_contains6" functions clones the given cidr. The contains4 does not clone the cidr. Both functions do not behave the same. I see no reason to push the cidr. I think that we get only a negligible performance gain, but it makes ipv4 and ipv6 equal again. Signed-off-by: Nick Hainke <vincent@systemli.org> Signed-off-by: maurerr <mariusd84@gmail.com>
This commit is contained in:
parent
b8a134b7ab
commit
fd8f5ff119
@ -7,7 +7,7 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=owipcalc
|
PKG_NAME:=owipcalc
|
||||||
PKG_RELEASE:=4
|
PKG_RELEASE:=5
|
||||||
PKG_LICENSE:=Apache-2.0
|
PKG_LICENSE:=Apache-2.0
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/package.mk
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
@ -527,18 +527,17 @@ static bool cidr_network6(struct cidr *a)
|
|||||||
|
|
||||||
static bool cidr_contains6(struct cidr *a, struct cidr *b)
|
static bool cidr_contains6(struct cidr *a, struct cidr *b)
|
||||||
{
|
{
|
||||||
struct cidr *n = cidr_clone(a);
|
struct in6_addr *x = &a->addr.v6;
|
||||||
struct in6_addr *x = &n->addr.v6;
|
|
||||||
struct in6_addr *y = &b->addr.v6;
|
struct in6_addr *y = &b->addr.v6;
|
||||||
uint8_t i = (128 - n->prefix) / 8;
|
uint8_t i = (128 - a->prefix) / 8;
|
||||||
uint8_t m = ~((1 << ((128 - n->prefix) % 8)) - 1);
|
uint8_t m = ~((1 << ((128 - a->prefix) % 8)) - 1);
|
||||||
uint8_t net1 = x->s6_addr[15-i] & m;
|
uint8_t net1 = x->s6_addr[15-i] & m;
|
||||||
uint8_t net2 = y->s6_addr[15-i] & m;
|
uint8_t net2 = y->s6_addr[15-i] & m;
|
||||||
|
|
||||||
if (printed)
|
if (printed)
|
||||||
qprintf(" ");
|
qprintf(" ");
|
||||||
|
|
||||||
if ((b->prefix >= n->prefix) && (net1 == net2) &&
|
if ((b->prefix >= a->prefix) && (net1 == net2) &&
|
||||||
((i == 15) || !memcmp(&x->s6_addr, &y->s6_addr, 15-i)))
|
((i == 15) || !memcmp(&x->s6_addr, &y->s6_addr, 15-i)))
|
||||||
{
|
{
|
||||||
qprintf("1");
|
qprintf("1");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user