DCPluginSyncFilterResult dcplugin_sync_post_filter(DCPlugin *dcplugin, DCPluginDNSPacket *dcp_packet) { Blocking *blocking = dcplugin_get_user_data(dcplugin); ldns_pkt *packet = NULL; DCPluginSyncFilterResult result = DCP_SYNC_FILTER_RESULT_OK; if (blocking->domains == NULL && blocking->ips == NULL) { return DCP_SYNC_FILTER_RESULT_OK; } if (ldns_wire2pkt(&packet, dcplugin_get_wire_data(dcp_packet), dcplugin_get_wire_data_len(dcp_packet)) != LDNS_STATUS_OK) { return DCP_SYNC_FILTER_RESULT_ERROR; } if (blocking->domains != NULL && (result = apply_block_domains(dcp_packet, blocking, packet) != DCP_SYNC_FILTER_RESULT_OK)) { ldns_pkt_free(packet); return result; } if (blocking->ips != NULL && (result = apply_block_ips(dcp_packet, blocking, packet) != DCP_SYNC_FILTER_RESULT_OK)) { ldns_pkt_free(packet); return result; } ldns_pkt_free(packet); return DCP_SYNC_FILTER_RESULT_OK; }
DCPluginSyncFilterResult dcplugin_sync_post_filter(DCPlugin *dcplugin, DCPluginDNSPacket *dcp_packet) { Context *context = dcplugin_get_user_data(dcplugin); ldns_pkt *packet; DCPluginSyncFilterResult result = DCP_SYNC_FILTER_RESULT_OK; if (context->blacklist == NULL) { return DCP_SYNC_FILTER_RESULT_OK; } if (ldns_wire2pkt(&packet, dcplugin_get_wire_data(dcp_packet), dcplugin_get_wire_data_len(dcp_packet)) != LDNS_STATUS_OK) { return DCP_SYNC_FILTER_RESULT_ERROR; } if ((result = apply_block_ips(dcp_packet, context, packet) != DCP_SYNC_FILTER_RESULT_OK)) { ldns_pkt_free(packet); return result; } ldns_pkt_free(packet); return DCP_SYNC_FILTER_RESULT_OK; }