summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/rfc3315.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/rfc3315.c b/src/rfc3315.c
index ad22438..1478d97 100644
--- a/src/rfc3315.c
+++ b/src/rfc3315.c
@@ -677,11 +677,16 @@ static int dhcp6_no_relay(int msg_type, struct in6_addr *link_address, struct dh
/* Suggest configured address(es) */
for (c = context; c; c = c->current)
- if (!(c->flags & CONTEXT_CONF_USED) && config_valid(config, c, &addr) && check_address(&state, &addr))
+ if (!(c->flags & CONTEXT_CONF_USED) &&
+ match_netid(c->filter, solicit_tags, plain_range) &&
+ config_valid(config, c, &addr) &&
+ check_address(&state, &addr))
{
mark_config_used(context, &addr);
if (have_config(config, CONFIG_TIME))
lease_time = config->lease_time;
+ else
+ lease_time = c->lease_time;
/* add address to output packet */
#ifdef OPTION6_PREFIX_CLASS
if (dump_all_prefix_classes)