1
0
mirror of https://github.com/bgp/bgpq4.git synced 2024-05-11 05:55:05 +00:00

fix ipv6 prefix-ranges.

This commit is contained in:
Alexandre Snarskii
2018-08-14 12:42:18 +03:00
parent d879f21686
commit f199f1a7c7
3 changed files with 17 additions and 3 deletions

View File

@@ -4,6 +4,7 @@ untagged yet (2018-08-10)
Reported by Pier Carlo Chiodi.
- initial support for Huawei format (prefix-lists and as-path filters)
New flag -U. Requested by Alexander Wagberg.
- fix ipv6 prefix-ranges. Reported by Jay Ford.
0.1.35-rc2 (2017-06-14)
- OpenBSD need <sys/select.h>. Reported by Denis Fondras.

View File

@@ -305,7 +305,11 @@ int
bgpq_expanded_v6prefix(char* prefix, struct bgpq_expander* ex,
struct bgpq_request* req)
{
bgpq_expander_add_prefix(ex,prefix);
char* d = strchr(prefix, '^');
if (!d)
bgpq_expander_add_prefix(ex,prefix);
else
bgpq_expander_add_prefix_range(ex,prefix);
return 1;
};

View File

@@ -242,10 +242,19 @@ sx_prefix_range_parse(struct sx_radix_tree* tree, int af, int maxlen,
text, min, p.masklen);
return 0;
};
SX_DEBUG(debug_expander, "parsed prefix-range %s as %lu-%lu\n",
text, min, max);
if (af == AF_INET && max > 32) {
sx_report(SX_ERROR, "Invalid prefix-range %s: max %lu > 32\n",
text, max);
return 0;
} else if (af == AF_INET6 && max > 128) {
sx_report(SX_ERROR, "Invalid ipv6 prefix-range %s: max %lu > 128\n",
text, max);
return 0;
};
if (max > maxlen)
max = maxlen;
SX_DEBUG(debug_expander, "parsed prefix-range %s as %lu-%lu (maxlen: %u)\n",
text, min, max, maxlen);
sx_radix_tree_insert_specifics(tree, p, min, max);
return 1;
};