Fix start-up order for making DHCPv6 DUID

Previously, if the DUID wasn't read from the lease-file or
script, a new one was created _after_ the helper process fork,
so for that first run, the script calls got an empty DUID.

Also, use a DUID_LL format DUID when there's no stable lease
storage, as well as when the RTC is broken. That has a chance of
evaluating to the same value on each startup.
This commit is contained in:
Simon Kelley
2013-11-07 10:28:11 +00:00
parent 44de649e5c
commit 3511a92869
4 changed files with 39 additions and 17 deletions

View File

@@ -273,6 +273,9 @@ int main (int argc, char **argv)
/* after enumerate_interfaces() */
if (daemon->doing_dhcp6 || daemon->relay6 || daemon->doing_ra)
join_multicast(1);
/* After netlink_init() and before create_helper() */
lease_make_duid(now);
#endif
if (daemon->port != 0)