diff --git a/RELNOTES b/RELNOTES index 2437f8b0..bda62bb1 100644 --- a/RELNOTES +++ b/RELNOTES @@ -81,6 +81,8 @@ suggested fixes to . - Allocated interface IDs are better controlled ('u' bit set to zero, reserved IDs avoided). +- Unicast options are taken into account only for RENEWs. + Changes since 4.0.0b3 - The reverse dns name for PTR updates on IPv6 addresses has been fixed to diff --git a/client/dhc6.c b/client/dhc6.c index 764ab420..8024c256 100644 --- a/client/dhc6.c +++ b/client/dhc6.c @@ -2930,7 +2930,7 @@ do_refresh6(void *input) /* * Check whether the server has sent a unicast option; if so, we can - * use the address it specified. + * use the address it specified for RENEWs. */ oc = lookup_option(&dhcpv6_universe, lease->options, D6O_UNICAST); if (oc && evaluate_option_cache(&ds, NULL, NULL, NULL, @@ -2943,7 +2943,9 @@ do_refresh6(void *input) unicast.sin6_family = AF_INET6; unicast.sin6_port = remote_port; memcpy(&unicast.sin6_addr, ds.data, 16); - dest_addr = &unicast; + if (client->refresh_type == DHCPV6_RENEW) { + dest_addr = &unicast; + } } data_string_forget(&ds, MDL);