mirror of
https://github.com/systemd/systemd.git
synced 2024-11-02 02:21:44 +03:00
resolved: add dns_answer_is_empty() and dns_question_is_empty() helpers
And make use of them at a few places.
This commit is contained in:
parent
17c8de633f
commit
501e8eb054
@ -87,6 +87,10 @@ static inline unsigned dns_answer_size(DnsAnswer *a) {
|
||||
return a ? a->n_rrs : 0;
|
||||
}
|
||||
|
||||
static inline bool dns_answer_isempty(DnsAnswer *a) {
|
||||
return dns_answer_size(a) <= 0;
|
||||
}
|
||||
|
||||
void dns_answer_dump(DnsAnswer *answer, FILE *f);
|
||||
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(DnsAnswer*, dns_answer_unref);
|
||||
|
@ -56,6 +56,10 @@ static inline unsigned dns_question_size(DnsQuestion *q) {
|
||||
return q ? q->n_keys : 0;
|
||||
}
|
||||
|
||||
static inline bool dns_question_isempty(DnsQuestion *q) {
|
||||
return dns_question_size(q) <= 0;
|
||||
}
|
||||
|
||||
DEFINE_TRIVIAL_CLEANUP_FUNC(DnsQuestion*, dns_question_unref);
|
||||
|
||||
#define _DNS_QUESTION_FOREACH(u, key, q) \
|
||||
|
@ -610,9 +610,9 @@ static int dns_scope_make_reply_packet(
|
||||
assert(s);
|
||||
assert(ret);
|
||||
|
||||
if ((!q || q->n_keys <= 0)
|
||||
&& (!answer || answer->n_rrs <= 0)
|
||||
&& (!soa || soa->n_rrs <= 0))
|
||||
if (dns_question_isempty(q) &&
|
||||
dns_answer_isempty(answer) &&
|
||||
dns_answer_isempty(soa))
|
||||
return -EINVAL;
|
||||
|
||||
r = dns_packet_new(&p, s->protocol, 0);
|
||||
@ -718,7 +718,7 @@ void dns_scope_process_query(DnsScope *s, DnsStream *stream, DnsPacket *p) {
|
||||
return;
|
||||
}
|
||||
|
||||
assert(p->question->n_keys == 1);
|
||||
assert(dns_question_size(p->question) == 1);
|
||||
key = p->question->keys[0];
|
||||
|
||||
r = dns_zone_lookup(&s->zone, key, 0, &answer, &soa, &tentative);
|
||||
|
Loading…
Reference in New Issue
Block a user