summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
6183c0f)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
if (prefix == 0)
return 1;
if (prefix == 0)
return 1;
+ // For IPv4-mapped addresses the prefix has to be 96 or lager
+ if (IN6_IS_ADDR_V4MAPPED(address) && prefix <= 96)
+ return 1;
+
if (prefix) {
// Parse the address
r = parse_address(ctx, address_string, &start_address);
if (prefix) {
// Parse the address
r = parse_address(ctx, address_string, &start_address);
+
+ // Map the prefix to IPv6 if needed
+ if (IN6_IS_ADDR_V4MAPPED(&start_address))
+ prefix += 96;
if (!string)
return NULL;
if (!string)
return NULL;
+ unsigned int prefix = network->prefix;
+
int family = loc_network_address_family(network);
switch (family) {
case AF_INET6:
int family = loc_network_address_family(network);
switch (family) {
case AF_INET6:
case AF_INET:
r = format_ipv4_address(network, string, length);
case AF_INET:
r = format_ipv4_address(network, string, length);
- sprintf(string + strlen(string), "/%u", network->prefix);
+ sprintf(string + strlen(string), "/%u", prefix);