|
|
|
|
@ -167,7 +167,8 @@ bool route_insert(struct ROUTE_TABLE *table, struct NODEINFO_Q *node) {
|
|
|
|
|
// === Проверка пересечений ===
|
|
|
|
|
for (size_t i = 0; i < count; i++) { |
|
|
|
|
uint32_t network; |
|
|
|
|
memcpy(&network, subnets[i].addr, 4); // addr уже в network byte order (big-endian)
|
|
|
|
|
memcpy(&network, subnets[i].addr, 4); |
|
|
|
|
network = ntohl(network); |
|
|
|
|
uint8_t prefix = subnets[i].prefix_length; |
|
|
|
|
|
|
|
|
|
if (check_route_overlap_in_table(network, prefix, |
|
|
|
|
@ -195,6 +196,7 @@ bool route_insert(struct ROUTE_TABLE *table, struct NODEINFO_Q *node) {
|
|
|
|
|
for (size_t i = 0; i < count; i++) { |
|
|
|
|
uint32_t network; |
|
|
|
|
memcpy(&network, subnets[i].addr, 4); |
|
|
|
|
network = ntohl(network); |
|
|
|
|
uint8_t prefix_length = subnets[i].prefix_length; |
|
|
|
|
|
|
|
|
|
int pos = binary_search_insert_pos(table->entries, table->count, network, prefix_length); |
|
|
|
|
|