answer_header
struct answer_header *answer_header;
if (IMSG_DATA_SIZE(imsg) < sizeof(*answer_header))
answer_header = (struct answer_header *)imsg.data;
data = (uint8_t *)imsg.data + sizeof(*answer_header);
if (answer_header->answer_len > UINT16_MAX)
__func__, answer_header->answer_len);
sizeof(*answer_header);
if ((pq = find_pending_query(answer_header->id)) ==
__func__, answer_header->id);
if (answer_header->srvfail) {
if (answer_header->bogus && !(pq->flags & BIT_CD)) {
answer_header->answer_len)) {
answer_header->answer_len = answer_len;
answer_header->bogus = !force_acceptbogus;
if (answer_header->bogus && why_bogus != NULL)
answer_header->bogus = 0;
sizeof(*answer_header))
len = sizeof(answer_imsg) - sizeof(*answer_header);
&answer_imsg, sizeof(*answer_header) + len) == -1)
answer_header->srvfail = 1;
answer_imsg, sizeof(*answer_header));
struct answer_header *answer_header;
answer_header = (struct answer_header *)answer_imsg;
data = answer_imsg + sizeof(*answer_header);
answer_header->id = query_imsg->id;
answer_header->srvfail = 0;
answer_header->answer_len = 0;