return 0;
}
+LOC_EXPORT int loc_network_overlaps(struct loc_network* self, struct loc_network* other) {
+ if (loc_network_match_address(self, &other->first_address) == 0)
+ return 1;
+
+ if (loc_network_match_address(self, &other->last_address) == 0)
+ return 1;
+
+ if (loc_network_match_address(other, &self->first_address) == 0)
+ return 1;
+
+ if (loc_network_match_address(other, &self->last_address) == 0)
+ return 1;
+
+ return 0;
+}
+
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.
return list->list[--list->size];
}
+LOC_EXPORT int loc_network_list_contains(struct loc_network_list* list, struct loc_network* network) {
+ for (unsigned int i = 0; i < list->size; i++) {
+ if (loc_network_eq(list->list[i], network))
+ return 1;
+ }
+
+ return 0;
+}
+
static void loc_network_list_swap(struct loc_network_list* list, unsigned int i1, unsigned int i2) {
// Do nothing for invalid indices
if (i1 >= list->size || i2 >= list->size)