PATH:
usr
/
include
/
bind9
/
dns
/* * Copyright (C) Internet Systems Consortium, Inc. ("ISC") * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, you can obtain one at https://mozilla.org/MPL/2.0/. * * See the COPYRIGHT file distributed with this work for additional * information regarding copyright ownership. */ #ifndef DNS_DNSRPS_H #define DNS_DNSRPS_H #include <inttypes.h> #include <stdbool.h> #include <isc/lang.h> #include <dns/types.h> #ifdef USE_DNSRPS #include <dns/librpz.h> #include <dns/rpz.h> /* * Error message if dlopen(librpz) failed. */ extern librpz_emsg_t librpz_lib_open_emsg; /* * These shim BIND9 database, node, and rdataset are handles on RRs from librpz. * * All of these structures are used by a single thread and so need no locks. * * rpsdb_t holds the state for a set of RPZ queries. * * rpsnode_t is a link to the rpsdb_t for the set of RPZ queries * and a flag saying whether it is pretending to be a node with RRs for * the qname or the node with the SOA for the zone containing the rewritten * RRs or justifying NXDOMAIN. */ typedef struct { uint8_t unused; } rpsnode_t; typedef struct rpsdb { dns_db_t common; int ref_cnt; librpz_result_id_t hit_id; librpz_result_t result; librpz_rsp_t *rsp; librpz_domain_buf_t origin_buf; const dns_name_t *qname; rpsnode_t origin_node; rpsnode_t data_node; } rpsdb_t; /* * Convert a dnsrps policy to a classic BIND9 RPZ policy. */ dns_rpz_policy_t dns_dnsrps_2policy(librpz_policy_t rps_policy); /* * Convert a dnsrps trigger to a classic BIND9 RPZ rewrite or trigger type. */ dns_rpz_type_t dns_dnsrps_trig2type(librpz_trig_t trig); /* * Convert a classic BIND9 RPZ rewrite or trigger type to a librpz trigger type. */ librpz_trig_t dns_dnsrps_type2trig(dns_rpz_type_t type); /* * Start dnsrps for the entire server. */ isc_result_t dns_dnsrps_server_create(void); /* * Stop dnsrps for the entire server. */ void dns_dnsrps_server_destroy(void); /* * Ready dnsrps for a view. */ isc_result_t dns_dnsrps_view_init(dns_rpz_zones_t *new, char *rps_cstr); /* * Connect to and start the dnsrps daemon, dnsrpzd. */ isc_result_t dns_dnsrps_connect(dns_rpz_zones_t *rpzs); /* * Get ready to try dnsrps rewriting. */ isc_result_t dns_dnsrps_rewrite_init(librpz_emsg_t *emsg, dns_rpz_st_t *st, dns_rpz_zones_t *rpzs, const dns_name_t *qname, isc_mem_t *mctx, bool have_rd); #endif /* USE_DNSRPS */ ISC_LANG_ENDDECLS #endif /* DNS_DNSRPS_H */
[+]
..
[-] keyvalues.h
[edit]
[-] types.h
[edit]
[-] dnstap.h
[edit]
[-] stats.h
[edit]
[-] result.h
[edit]
[-] tsig.h
[edit]
[-] private.h
[edit]
[-] dyndb.h
[edit]
[-] time.h
[edit]
[-] rdatasetiter.h
[edit]
[-] catz.h
[edit]
[-] dlz_dlopen.h
[edit]
[-] dnsrps.h
[edit]
[-] keyflags.h
[edit]
[-] rdatalist.h
[edit]
[-] sdlz.h
[edit]
[-] dns64.h
[edit]
[-] adb.h
[edit]
[-] version.h
[edit]
[-] view.h
[edit]
[-] zoneverify.h
[edit]
[-] librpz.h
[edit]
[-] rcode.h
[edit]
[-] rdata.h
[edit]
[-] ecdb.h
[edit]
[-] zt.h
[edit]
[-] clientinfo.h
[edit]
[-] geoip.h
[edit]
[-] log.h
[edit]
[-] zonekey.h
[edit]
[-] cache.h
[edit]
[-] cert.h
[edit]
[-] compress.h
[edit]
[-] secproto.h
[edit]
[-] forward.h
[edit]
[-] request.h
[edit]
[-] rdatatype.h
[edit]
[-] update.h
[edit]
[-] keymgr.h
[edit]
[-] nta.h
[edit]
[-] events.h
[edit]
[-] badcache.h
[edit]
[-] lmdb.h
[edit]
[-] journal.h
[edit]
[-] bit.h
[edit]
[-] order.h
[edit]
[-] sdb.h
[edit]
[-] master.h
[edit]
[-] dispatch.h
[edit]
[-] diff.h
[edit]
[-] byaddr.h
[edit]
[-] dbiterator.h
[edit]
[-] keytable.h
[edit]
[-] masterdump.h
[edit]
[-] lib.h
[edit]
[-] kasp.h
[edit]
[-] tsec.h
[edit]
[-] rdataslab.h
[edit]
[-] rdataclass.h
[edit]
[-] secalg.h
[edit]
[-] rriterator.h
[edit]
[-] ipkeylist.h
[edit]
[-] validator.h
[edit]
[-] edns.h
[edit]
[-] name.h
[edit]
[-] client.h
[edit]
[-] enumclass.h
[edit]
[-] timer.h
[edit]
[-] callbacks.h
[edit]
[-] xfrin.h
[edit]
[-] dsdigest.h
[edit]
[-] message.h
[edit]
[-] portlist.h
[edit]
[-] acl.h
[edit]
[-] ssu.h
[edit]
[-] rbt.h
[edit]
[-] ds.h
[edit]
[-] dnssec.h
[edit]
[-] db.h
[edit]
[-] enumtype.h
[edit]
[-] ecs.h
[edit]
[-] lookup.h
[edit]
[-] rpz.h
[edit]
[-] fixedname.h
[edit]
[-] soa.h
[edit]
[-] dbtable.h
[edit]
[-] opcode.h
[edit]
[-] rdatastruct.h
[edit]
[-] rrl.h
[edit]
[-] ncache.h
[edit]
[-] rootns.h
[edit]
[-] keydata.h
[edit]
[-] tcpmsg.h
[edit]
[-] resolver.h
[edit]
[-] peer.h
[edit]
[-] iptable.h
[edit]
[-] nsec.h
[edit]
[-] tkey.h
[edit]
[-] ttl.h
[edit]
[-] zone.h
[edit]
[-] dlz.h
[edit]
[-] nsec3.h
[edit]
[-] rdataset.h
[edit]