From: Michael Tremer Date: Fri, 20 Nov 2020 16:24:40 +0000 (+0000) Subject: network: Fix loc_network_is_subnet() X-Git-Tag: 0.9.5~43 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1209ff0cd4be6b2f52a5e82168db8a8ac68e628a;p=location%2Flibloc.git network: Fix loc_network_is_subnet() This function always returned false. Signed-off-by: Michael Tremer --- diff --git a/src/network.c b/src/network.c index 4c8787a..b440d76 100644 --- a/src/network.c +++ b/src/network.c @@ -491,12 +491,12 @@ LOC_EXPORT int loc_network_overlaps(struct loc_network* self, struct loc_network LOC_EXPORT int loc_network_is_subnet(struct loc_network* self, struct loc_network* other) { // If the start address of the other network is smaller than this network, // it cannot be a subnet. - if (in6_addr_cmp(&self->first_address, &other->first_address) < 0) + if (in6_addr_cmp(&self->first_address, &other->first_address) > 0) return 0; // If the end address of the other network is greater than this network, // it cannot be a subnet. - if (in6_addr_cmp(&self->last_address, &other->last_address) > 0) + if (in6_addr_cmp(&self->last_address, &other->last_address) < 0) return 0; return 1; @@ -504,17 +504,7 @@ LOC_EXPORT int loc_network_is_subnet(struct loc_network* self, struct loc_networ // XXX DEPRECATED - I find this too difficult to use LOC_EXPORT int loc_network_is_subnet_of(struct loc_network* self, struct loc_network* other) { - // If the start address of the other network is smaller than this network, - // it cannot be a subnet. - if (in6_addr_cmp(&self->first_address, &other->first_address) < 0) - return 0; - - // If the end address of the other network is greater than this network, - // it cannot be a subnet. - if (in6_addr_cmp(&self->last_address, &other->last_address) > 0) - return 0; - - return 1; + return loc_network_is_subnet(other, self); } LOC_EXPORT struct loc_network_list* loc_network_subnets(struct loc_network* network) {