- in_addr_to_string(q->request_family, &q->request_address, &ip);
-
- switch(q->state) {
-
- case DNS_QUERY_SKIPPED:
- r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_NO_NAME_SERVERS, "Not appropriate name servers or networks found");
- break;
-
- case DNS_QUERY_TIMEOUT:
- r = sd_bus_reply_method_errorf(q->request, SD_BUS_ERROR_TIMEOUT, "Query timed out");
- break;
-
- case DNS_QUERY_ATTEMPTS_MAX:
- r = sd_bus_reply_method_errorf(q->request, SD_BUS_ERROR_TIMEOUT, "All attempts to contact name servers or networks failed");
- break;
-
- case DNS_QUERY_FAILURE: {
- _cleanup_bus_error_free_ sd_bus_error error = SD_BUS_ERROR_NULL;
-
- if (q->rcode == DNS_RCODE_NXDOMAIN)
- sd_bus_error_setf(&error, _BUS_ERROR_DNS "NXDOMAIN", "No hostname known for address %s ", ip);
- else {
- const char *rc, *n;
- char p[DECIMAL_STR_MAX(q->rcode)];
-
- rc = dns_rcode_to_string(q->rcode);
- if (!rc) {
- sprintf(p, "%i", q->rcode);
- rc = p;
- }
-
- n = strappenda(_BUS_ERROR_DNS, rc);
-
- sd_bus_error_setf(&error, n, "Could not resolve address %s, server or network returned error %s", ip, rc);
- }
-
- r = sd_bus_reply_method_error(q->request, &error);
- break;