diff options
author | Shawn Routhier <sar@isc.org> | 2015-04-15 19:32:26 -0700 |
---|---|---|
committer | Shawn Routhier <sar@isc.org> | 2015-04-15 19:32:26 -0700 |
commit | 90a062fb20c4573922c92daee7a535c6ffa30caa (patch) | |
tree | 53c41e125a84a982fa7acd58445364fb9c606a47 /server/dhcpd.c | |
parent | e6e72c5101df3e498afd1b8e980adc00b9d5b080 (diff) | |
download | isc-dhcp-90a062fb20c4573922c92daee7a535c6ffa30caa.tar.gz |
[master] Always write the DUID to the lease file during startup
Diffstat (limited to 'server/dhcpd.c')
-rw-r--r-- | server/dhcpd.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/server/dhcpd.c b/server/dhcpd.c index 8b24b641..3d2aa09a 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -705,19 +705,21 @@ main(int argc, char **argv) { #ifdef DHCPv6 /* - * Set server DHCPv6 identifier. + * Set server DHCPv6 identifier - we go in order: + * dhcp6.server-id in the config file + * server-duid from the lease file + * server-duid from the config file (the config file is read first + * and the lease file overwrites the config file information) + * genrate a new one + * In all cases we write it out to the lease file. * See dhcpv6.c for discussion of setting DUID. */ - if (set_server_duid_from_option() == ISC_R_SUCCESS) { - write_server_duid(); - } else { - if (!server_duid_isset()) { - if (generate_new_server_duid() != ISC_R_SUCCESS) { - log_fatal("Unable to set server identifier."); - } - write_server_duid(); - } + if ((set_server_duid_from_option() != ISC_R_SUCCESS) && + (!server_duid_isset()) && + (generate_new_server_duid() != ISC_R_SUCCESS)) { + log_fatal("Unable to set server identifier."); } + write_server_duid(); #endif /* DHCPv6 */ #ifndef DEBUG |