Lines Matching defs:rr

99 static int append_address(sd_bus_message *reply, DnsResourceRecord *rr, int ifindex) {
103 assert(rr);
113 if (rr->key->type == DNS_TYPE_A) {
118 r = sd_bus_message_append_array(reply, 'y', &rr->a.in_addr, sizeof(struct in_addr));
120 } else if (rr->key->type == DNS_TYPE_AAAA) {
125 r = sd_bus_message_append_array(reply, 'y', &rr->aaaa.in6_addr, sizeof(struct in6_addr));
142 DnsResourceRecord *rr;
171 DNS_ANSWER_FOREACH_IFINDEX(rr, ifindex, q->answer) {
176 r = dns_question_matches_rr(question, rr, DNS_SEARCH_DOMAIN_NAME(q->answer_search_domain));
182 r = append_address(reply, rr, ifindex);
187 canonical = dns_resource_record_ref(rr);
302 DnsResourceRecord *rr;
333 DNS_ANSWER_FOREACH_IFINDEX(rr, ifindex, q->answer) {
334 r = dns_question_matches_rr(question, rr, NULL);
340 r = sd_bus_message_append(reply, "(is)", ifindex, rr->ptr.name);
439 static int bus_message_append_rr(sd_bus_message *m, DnsResourceRecord *rr, int ifindex) {
443 assert(rr);
451 rr->key->class,
452 rr->key->type);
456 r = dns_resource_record_to_wire_format(rr, false);
460 r = sd_bus_message_append_array(m, 'y', rr->wire_format, rr->wire_format_size);
469 DnsResourceRecord *rr;
502 DNS_ANSWER_FOREACH_IFINDEX(rr, ifindex, q->answer) {
503 r = dns_question_matches_rr(question, rr, NULL);
509 r = bus_message_append_rr(reply, rr, ifindex);
608 static int append_srv(DnsQuery *q, sd_bus_message *reply, DnsResourceRecord *rr) {
615 assert(rr);
616 assert(rr->key);
618 if (rr->key->type != DNS_TYPE_SRV)
635 r = dns_name_equal(dns_question_first_name(question), rr->srv.name);
669 rr->srv.priority, rr->srv.weight, rr->srv.port, rr->srv.name);
690 r = dns_name_equal(dns_question_first_name(question), rr->srv.name);
717 r = sd_bus_message_append(reply, "s", canonical ? DNS_RESOURCE_KEY_NAME(canonical->key) : rr->srv.name);
728 static int append_txt(sd_bus_message *reply, DnsResourceRecord *rr) {
733 assert(rr);
734 assert(rr->key);
736 if (rr->key->type != DNS_TYPE_TXT)
739 LIST_FOREACH(items, i, rr->txt.items) {
757 DnsResourceRecord *rr;
823 DNS_ANSWER_FOREACH(rr, q->answer) {
824 r = dns_question_matches_rr(question, rr, NULL);
830 r = append_srv(q, reply, rr);
837 canonical = dns_resource_record_ref(rr);
855 DNS_ANSWER_FOREACH(rr, q->answer) {
856 r = dns_question_matches_rr(question, rr, NULL);
862 r = append_txt(reply, rr);
915 static int resolve_service_hostname(DnsQuery *q, DnsResourceRecord *rr, int ifindex) {
921 assert(rr);
922 assert(rr->key);
923 assert(rr->key->type == DNS_TYPE_SRV);
928 r = dns_question_new_address(&question, q->request_family, rr->srv.name, false);
967 DnsResourceRecord *rr;
991 DNS_ANSWER_FOREACH_IFINDEX(rr, ifindex, q->answer) {
992 r = dns_question_matches_rr(question, rr, NULL);
998 if (rr->key->type != DNS_TYPE_SRV)
1001 if (dns_name_is_root(rr->srv.name)) {
1008 r = resolve_service_hostname(q, rr, ifindex);