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, 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 | 1 + 1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/src/resolver.c b/src/resolver.c index e0a81d8..3dca496 100644 --- a/src/resolver.c +++ b/src/resolver.c @@ -550,6 +550,7 @@ int __connman_resolver_redo_servers(const char *interface) */ __connman_dnsproxy_remove(entry->interface, entry->domain, entry->server); + g_source_remove(entry->timeout); __connman_dnsproxy_append(entry->interface, entry->domain, entry->server); -- 1.7.5.4 _______________________________________________ connman mailing list connman@connman.net http://lists.connman.net/listinfo/connman