added ++;
}
- if (added <= 0)
- goto parse_fail;
+ if (added <= 0) {
+ r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_NO_SUCH_RR, "Hostname %s does not have RR of this type", q->request_hostname);
+ break;
+ }
r = sd_bus_message_close_container(reply);
if (r < 0)
added ++;
}
- if (added <= 0)
- goto parse_fail;
+ if (added <= 0) {
+ r = sd_bus_reply_method_errorf(q->request, BUS_ERROR_NO_SUCH_RR, "Address %s does not have RR of this type", ip);
+ break;
+ }
r = sd_bus_message_close_container(reply);
if (r < 0)
t->packet = dns_packet_ref(p);
- if (DNS_PACKET_RCODE(p) == DNS_RCODE_SUCCESS) {
- if( be16toh(DNS_PACKET_HEADER(p)->ancount) > 0)
- dns_query_transaction_set_state(t, DNS_QUERY_SUCCESS);
- else
- dns_query_transaction_set_state(t, DNS_QUERY_INVALID_REPLY);
- } else
+ if (DNS_PACKET_RCODE(p) == DNS_RCODE_SUCCESS)
+ dns_query_transaction_set_state(t, DNS_QUERY_SUCCESS);
+ else
dns_query_transaction_set_state(t, DNS_QUERY_FAILURE);
return 0;
#define BUS_ERROR_NO_NAME_SERVERS "org.freedesktop.resolve1.NoNameServers"
#define BUS_ERROR_INVALID_REPLY "org.freedesktop.resolve1.InvalidReply"
+#define BUS_ERROR_NO_SUCH_RR "org.freedesktop.resolve1.NoSuchRR"
#define _BUS_ERROR_DNS "org.freedesktop.resolve1.DnsError."