mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Fix prefix-map build code logic.
This commit is contained in:
12
src/radv.c
12
src/radv.c
@@ -443,10 +443,13 @@ static int add_subnet(struct in6_addr *local, int prefix,
|
|||||||
is_same_net6(local, &context->end6, prefix))
|
is_same_net6(local, &context->end6, prefix))
|
||||||
{
|
{
|
||||||
for (map = *subnets; map; map = map->next)
|
for (map = *subnets; map; map = map->next)
|
||||||
if (map->iface == 0)
|
if (map->iface == 0 ||
|
||||||
|
(map->iface == if_index && is_same_net6(local, &map->subnet, prefix)))
|
||||||
break;
|
break;
|
||||||
else if (map->iface == if_index && is_same_net6(local, &map->subnet, prefix))
|
|
||||||
continue;
|
/* It's there already */
|
||||||
|
if (map && map->iface != 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
if (!map && (map = whine_malloc(sizeof(struct subnet_map))))
|
if (!map && (map = whine_malloc(sizeof(struct subnet_map))))
|
||||||
{
|
{
|
||||||
@@ -478,9 +481,10 @@ struct subnet_map *build_subnet_map(void)
|
|||||||
if ((context->flags & CONTEXT_RA_NAME))
|
if ((context->flags & CONTEXT_RA_NAME))
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
/* no ra-names, no need to go further. */
|
||||||
if (!context)
|
if (!context)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
/* mark unused */
|
/* mark unused */
|
||||||
for (map = subnets; map; map = map->next)
|
for (map = subnets; map; map = map->next)
|
||||||
map->iface = 0;
|
map->iface = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user