4 #include <dnscrypt/plugin.h>
7 DCPLUGIN_MAIN(__FILE__
);
10 dcplugin_description(DCPlugin
* const dcplugin
)
12 return "Directly return an empty response to AAAA queries";
16 dcplugin_init(DCPlugin
* const dcplugin
, int argc
, char *argv
[])
25 DCPluginSyncFilterResult
26 dcplugin_sync_pre_filter(DCPlugin
*dcplugin
, DCPluginDNSPacket
*dcp_packet
)
29 ldns_rr_list
*questions
;
31 DCPluginSyncFilterResult result
= DCP_SYNC_FILTER_RESULT_OK
;
33 wire_data
= dcplugin_get_wire_data(dcp_packet
);
34 ldns_wire2pkt(&packet
, wire_data
, dcplugin_get_wire_data_len(dcp_packet
));
36 return DCP_SYNC_FILTER_RESULT_ERROR
;
38 questions
= ldns_pkt_question(packet
);
39 if (ldns_rr_list_rr_count(questions
) == (size_t) 1U &&
40 ldns_rr_get_type(ldns_rr_list_rr(questions
,
41 (size_t) 0U)) == LDNS_RR_TYPE_AAAA
) {
42 LDNS_QR_SET(wire_data
);
43 LDNS_RA_SET(wire_data
);
44 result
= DCP_SYNC_FILTER_RESULT_DIRECT
;
46 ldns_pkt_free(packet
);