summaryrefslogtreecommitdiff
path: root/server/dhcpd.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/dhcpd.c')
-rw-r--r--server/dhcpd.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/server/dhcpd.c b/server/dhcpd.c
index 68e74b54..ea62d1a0 100644
--- a/server/dhcpd.c
+++ b/server/dhcpd.c
@@ -1150,6 +1150,29 @@ void postconf_initialization (int quiet)
data_string_forget(&db, MDL);
path_dhcpd_pid = s;
}
+
+ oc = lookup_option(&server_universe, options,
+ SV_LOCAL_ADDRESS6);
+ if (oc &&
+ evaluate_option_cache(&db, NULL, NULL, NULL, options, NULL,
+ &global_scope, oc, MDL)) {
+ if (db.len == 16) {
+ memcpy(&local_address6, db.data, 16);
+ } else
+ log_fatal("invalid local address "
+ "data length");
+ data_string_forget(&db, MDL);
+ }
+
+ oc = lookup_option(&server_universe, options,
+ SV_BIND_LOCAL_ADDRESS6);
+ if (oc &&
+ evaluate_boolean_option_cache(NULL, NULL, NULL,
+ NULL, options, NULL,
+ &global_scope, oc, MDL)) {
+ bind_local_address6 = 1;
+ }
+
}
#endif /* DHCPv6 */