]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: remove duplicate handling of "no servers" query result
authorLennart Poettering <lennart@poettering.net>
Mon, 24 Aug 2015 21:44:33 +0000 (23:44 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 24 Aug 2015 21:44:33 +0000 (23:44 +0200)
So far we handled immediate "no server" query results differently from
"no server" results we ran into during operation: the former would cause
the dns_query_go() call to fail with ESRCH, the later would result in
the query completion callback to be called.

Remove the duplicate codepaths, by always going through the completion
callback. This allows us to remove quite a number of lines for handling
the ESRCH.

This commit should not alter behaviour at all.

src/resolve/resolved-bus.c
src/resolve/resolved-dns-query.c

index 1f23834ce3ce0b42e70d55b049fd56af37fdda49..12c17003e9f949889daea550ce349555e07aa6e6 100644 (file)
@@ -226,10 +226,6 @@ static void bus_method_resolve_hostname_complete(DnsQuery *q) {
                  * query, this time with the cname */
                 if (added <= 0) {
                         r = dns_query_go(q);
-                        if (r == -ESRCH) {
-                                r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_NO_NAME_SERVERS, "No appropriate name servers or networks for name found");
-                                goto finish;
-                        }
                         if (r < 0) {
                                 r = sd_bus_reply_method_errno(q->request, -r, NULL);
                                 goto finish;
@@ -346,10 +342,6 @@ static int bus_method_resolve_hostname(sd_bus_message *message, void *userdata,
         r = dns_query_go(q);
         if (r < 0) {
                 dns_query_free(q);
-
-                if (r == -ESRCH)
-                        sd_bus_error_setf(error, BUS_ERROR_NO_NAME_SERVERS, "No appropriate name servers or networks for name found");
-
                 return r;
         }
 
@@ -494,10 +486,6 @@ static int bus_method_resolve_address(sd_bus_message *message, void *userdata, s
         r = dns_query_go(q);
         if (r < 0) {
                 dns_query_free(q);
-
-                if (r == -ESRCH)
-                        sd_bus_error_setf(error, BUS_ERROR_NO_NAME_SERVERS, "No appropriate name servers or networks for name found");
-
                 return r;
         }
 
@@ -647,10 +635,6 @@ static int bus_method_resolve_record(sd_bus_message *message, void *userdata, sd
         r = dns_query_go(q);
         if (r < 0) {
                 dns_query_free(q);
-
-                if (r == -ESRCH)
-                        sd_bus_error_setf(error, BUS_ERROR_NO_NAME_SERVERS, "No appropriate name servers or networks for name found");
-
                 return r;
         }
 
index d9f5b342b2e7ad5b95f6e06023cee998bf55da58..c0b4c8ba81836c090fc7c5411f88496e0c1b13db 100644 (file)
@@ -651,12 +651,8 @@ int dns_query_go(DnsQuery *q) {
                 DnsTransactionState state = DNS_TRANSACTION_NO_SERVERS;
 
                 dns_query_synthesize_reply(q, &state);
-                if (state != DNS_TRANSACTION_NO_SERVERS) {
-                        dns_query_complete(q, state);
-                        return 1;
-                }
-
-                return -ESRCH;
+                dns_query_complete(q, state);
+                return 1;
         }
 
         r = dns_query_add_transaction_split(q, first);