Hi Elena, > When connman is restarted, DNS servers are removed and added again > with function __connman_resolver_redo_servers(). While removing a > DNS entry, one should also remove the resolver timer registered for it. > Not doing so, causes the timeout handler resolver_expire_cb to fire > without being explicitly set. > --- > When implementing RDNSS refresh feature and executing connman restart, > the resolver_refresh_cb() handler is called before the timer > is actually started. This makes Connman to send Router Solicitation > in a case when this is not desired. > --- > src/resolver.c | 7 +++++++ > 1 files changed, 7 insertions(+), 0 deletions(-)
I applied this patch, but I have one extra question below. > > diff --git a/src/resolver.c b/src/resolver.c > index 58af2f7..421b12f 100644 > --- a/src/resolver.c > +++ b/src/resolver.c > @@ -493,6 +493,13 @@ int __connman_resolver_redo_servers(const char > *interface) > */ > __connman_dnsproxy_remove(entry->interface, entry->domain, > entry->server); > + /* > + * Remove also the resolver timer for the old server entry. > + * A new timer will be set for the new server entry > + * when the next Router Advertisement message arrives > + * with RDNSS/DNSSL settings. > + */ > + g_source_remove(entry->timeout); don't we need to set entry->timeout = 0 as well? > > __connman_dnsproxy_append(entry->interface, entry->domain, > entry->server); Regards Marcel _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman