summaryrefslogtreecommitdiff
path: root/src/resolver.c
diff options
context:
space:
mode:
authorElena Tebesoi <elena.tebesoi@gmail.com>2012-05-21 17:48:20 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-05-22 21:10:59 +0200
commita880cf2c775982f35f080c207176ecbadf751aa3 (patch)
tree3e69c7a837e5c6fafee3a0eae1f89a98ae6328c5 /src/resolver.c
parentf47e9a1cf62c06ceaf51ae3393cfa1bf44ffebed (diff)
downloadconnman-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.c7
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);