diff options
author | Elena Tebesoi <elena.tebesoi@gmail.com> | 2012-05-21 17:48:20 +0200 |
---|---|---|
committer | Marcel Holtmann <marcel@holtmann.org> | 2012-05-22 21:10:59 +0200 |
commit | a880cf2c775982f35f080c207176ecbadf751aa3 (patch) | |
tree | 3e69c7a837e5c6fafee3a0eae1f89a98ae6328c5 /src/resolver.c | |
parent | f47e9a1cf62c06ceaf51ae3393cfa1bf44ffebed (diff) | |
download | connman-a880cf2c775982f35f080c207176ecbadf751aa3.tar.gz connman-a880cf2c775982f35f080c207176ecbadf751aa3.tar.bz2 connman-a880cf2c775982f35f080c207176ecbadf751aa3.zip |
resolver: Fixed cleanup of Resolver timer
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.
Diffstat (limited to 'src/resolver.c')
-rw-r--r-- | src/resolver.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/resolver.c b/src/resolver.c index 58af2f78..421b12f0 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); __connman_dnsproxy_append(entry->interface, entry->domain, entry->server); |