--- embedaddon/dnsmasq/src/slaac.c 2013/07/29 19:37:40 1.1.1.1 +++ embedaddon/dnsmasq/src/slaac.c 2014/06/15 16:31:38 1.1.1.2 @@ -1,4 +1,4 @@ -/* dnsmasq is Copyright (c) 2000-2013 Simon Kelley +/* dnsmasq is Copyright (c) 2000-2014 Simon Kelley This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,7 +38,9 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t lease->slaac_address = NULL; for (context = daemon->dhcp6; context; context = context->next) - if ((context->flags & CONTEXT_RA_NAME) && lease->last_interface == context->if_index) + if ((context->flags & CONTEXT_RA_NAME) && + !(context->flags & CONTEXT_OLD) && + lease->last_interface == context->if_index) { struct in6_addr addr = context->start6; if (lease->hwaddr_len == 6 && @@ -91,7 +93,6 @@ void slaac_add_addrs(struct dhcp_lease *lease, time_t slaac->ping_time = now; slaac->backoff = 1; slaac->addr = addr; - slaac->local = context->local6; /* Do RA's to prod it */ ra_start_unsolicted(now, context); } @@ -123,7 +124,7 @@ time_t periodic_slaac(time_t now, struct dhcp_lease *l time_t next_event = 0; for (context = daemon->dhcp6; context; context = context->next) - if ((context->flags & CONTEXT_RA_NAME)) + if ((context->flags & CONTEXT_RA_NAME) && !(context->flags & CONTEXT_OLD)) break; /* nothing configured */ @@ -198,7 +199,8 @@ void slaac_ping_reply(struct in6_addr *sender, unsigne slaac->backoff = 0; gotone = 1; inet_ntop(AF_INET6, sender, daemon->addrbuff, ADDRSTRLEN); - my_syslog(MS_DHCP | LOG_INFO, "SLAAC-CONFIRM(%s) %s %s", interface, daemon->addrbuff, lease->hostname); + if (!option_bool(OPT_QUIET_DHCP6)) + my_syslog(MS_DHCP | LOG_INFO, "SLAAC-CONFIRM(%s) %s %s", interface, daemon->addrbuff, lease->hostname); } lease_update_dns(gotone);