From 82bd6dddc4a363a9c3c6f41eb46eb171a80dca27 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 6 Aug 2014 16:32:55 +0200 Subject: resolved: destroy outstanding queries if the clients that initiated them die --- src/resolve/resolved-bus.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/resolve/resolved-bus.c') diff --git a/src/resolve/resolved-bus.c b/src/resolve/resolved-bus.c index 89a9300dfb..6a3343e000 100644 --- a/src/resolve/resolved-bus.c +++ b/src/resolve/resolved-bus.c @@ -319,6 +319,10 @@ static int bus_method_resolve_hostname(sd_bus *bus, sd_bus_message *message, voi q->request_hostname = hostname; q->complete = bus_method_resolve_hostname_complete; + r = dns_query_bus_track(q, bus, message); + if (r < 0) + return r; + r = dns_query_go(q); if (r < 0) { dns_query_free(q); @@ -457,6 +461,10 @@ static int bus_method_resolve_address(sd_bus *bus, sd_bus_message *message, void memcpy(&q->request_address, d, sz); q->complete = bus_method_resolve_address_complete; + r = dns_query_bus_track(q, bus, message); + if (r < 0) + return r; + r = dns_query_go(q); if (r < 0) { dns_query_free(q); @@ -593,6 +601,10 @@ static int bus_method_resolve_record(sd_bus *bus, sd_bus_message *message, void q->request_hostname = name; q->complete = bus_method_resolve_record_complete; + r = dns_query_bus_track(q, bus, message); + if (r < 0) + return r; + r = dns_query_go(q); if (r < 0) { dns_query_free(q); -- cgit v1.2.3-54-g00ecf