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.
diff --git a/src/dnsmasq.c b/src/dnsmasq.c
index a2b37dc..a701ab5 100644
--- a/src/dnsmasq.c
+++ b/src/dnsmasq.c
@@ -273,6 +273,9 @@
/* 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)