diff --git a/src/dhcp-common.c b/src/dhcp-common.c index d1254d9..7eb3761 100644 --- a/src/dhcp-common.c +++ b/src/dhcp-common.c @@ -372,7 +372,11 @@ void dhcp_update_configs(struct dhcp_config *configs) for (config = configs; config; config = config->next) if (config->flags & CONFIG_ADDR_HOSTS) - config->flags &= ~(CONFIG_ADDR | CONFIG_ADDR6 | CONFIG_ADDR_HOSTS); + config->flags &= ~(CONFIG_ADDR | CONFIG_ADDR_HOSTS); +#ifdef HAVE_DHCP6 + if (config->flags & CONFIG_ADDR6_HOSTS) + config->flags &= ~(CONFIG_ADDR6 | CONFIG_ADDR6_HOSTS); +#endif #ifdef HAVE_DHCP6 again: @@ -421,7 +425,7 @@ void dhcp_update_configs(struct dhcp_config *configs) (!(conf_tmp = config_find_by_address6(configs, &crec->addr.addr6, 128, 0)) || conf_tmp == config)) { memcpy(&config->addr6, &crec->addr.addr6, IN6ADDRSZ); - config->flags |= CONFIG_ADDR6 | CONFIG_ADDR_HOSTS; + config->flags |= CONFIG_ADDR6 | CONFIG_ADDR6_HOSTS; continue; } #endif diff --git a/src/dnsmasq.h b/src/dnsmasq.h index 95559c7..0dc1de9 100644 --- a/src/dnsmasq.h +++ b/src/dnsmasq.h @@ -789,6 +789,7 @@ struct dhcp_config { #define CONFIG_BANK 2048 /* from dhcp hosts file */ #define CONFIG_ADDR6 4096 #define CONFIG_WILDCARD 8192 +#define CONFIG_ADDR6_HOSTS 16384 /* address added by from /etc/hosts */ struct dhcp_opt { int opt, len, flags;