summaryrefslogtreecommitdiff
path: root/client/dhc6.c
diff options
context:
space:
mode:
authorFrancis Dupont <fdupont@isc.org>2007-12-28 10:20:41 +0000
committerFrancis Dupont <fdupont@isc.org>2007-12-28 10:20:41 +0000
commitb51c785f98469adea2ce19a686669b8ef80c1111 (patch)
tree2fe3313d0eb3f116a973d9acd033443d9010e903 /client/dhc6.c
parent0674055a497f77f0f0ea83e3d178292fba45475e (diff)
downloadisc-dhcp-b51c785f98469adea2ce19a686669b8ef80c1111.tar.gz
Unicast options are taken into account only for RENEWs
Diffstat (limited to 'client/dhc6.c')
-rw-r--r--client/dhc6.c6
1 files changed, 4 insertions, 2 deletions
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);