#include "config.h"
#include "iterator/iter_donotq.h"
#include "util/regional.h"
#include "util/log.h"
#include "util/config_file.h"
#include "util/net_help.h"
Functions | |
int | donotq_cmp (const void *k1, const void *k2) |
compare two donotq entries | |
struct iter_donotq * | donotq_create () |
Create donotqueryaddresses structure. | |
void | donotq_delete (struct iter_donotq *dq) |
Delete donotqueryaddresses structure. | |
static int | donotq_insert (struct iter_donotq *dq, struct sockaddr_storage *addr, socklen_t addrlen, int net) |
insert new address into donotq structure | |
static int | donotq_str_cfg (struct iter_donotq *dq, const char *str) |
apply donotq string | |
static int | read_donotq (struct iter_donotq *dq, struct config_file *cfg) |
read donotq config | |
static void | donotq_init_parents (struct iter_donotq *donotq) |
initialise parent pointers in the tree | |
int | donotq_apply_cfg (struct iter_donotq *dq, struct config_file *cfg) |
Process donotqueryaddresses config. | |
int | donotq_lookup (struct iter_donotq *donotq, struct sockaddr_storage *addr, socklen_t addrlen) |
See if an address is blocked. | |
size_t | donotq_get_mem (struct iter_donotq *donotq) |
Get memory used by donotqueryaddresses structure. |
The donotqueryaddresses are stored and looked up. These addresses (like 127.0.0.1) must not be used to send queries to, and can be discarded immediately from the server selection.
struct iter_donotq* donotq_create | ( | ) | [read] |
Create donotqueryaddresses structure.
References donotq_delete(), iter_donotq::region, and regional_create().
Referenced by iter_apply_cfg().
void donotq_delete | ( | struct iter_donotq * | donotq | ) |
Delete donotqueryaddresses structure.
donotq,: | to delete. |
References iter_donotq::region, regional_destroy(), and iter_donotq::tree.
Referenced by donotq_create(), and iter_deinit().
int donotq_apply_cfg | ( | struct iter_donotq * | donotq, | |
struct config_file * | cfg | |||
) |
Process donotqueryaddresses config.
donotq,: | where to store. | |
cfg,: | config options. |
References config_file::do_ip6, donotq_cmp(), donotq_init_parents(), donotq_str_cfg(), config_file::donotquery_localhost, rbtree_create(), read_donotq(), and iter_donotq::tree.
Referenced by iter_apply_cfg().
int donotq_lookup | ( | struct iter_donotq * | donotq, | |
struct sockaddr_storage * | addr, | |||
socklen_t | addrlen | |||
) |
See if an address is blocked.
donotq,: | structure for address storage. | |
addr,: | address to check | |
addrlen,: | length of addr. |
References iter_donotq_addr::addr, addr_in_common(), addr_is_ip6(), iter_donotq_addr::addrlen, rbnode_t::key, iter_donotq_addr::net, iter_donotq_addr::node, iter_donotq_addr::parent, rbtree_find_less_equal(), and iter_donotq::tree.
Referenced by iter_filter_unsuitable().
size_t donotq_get_mem | ( | struct iter_donotq * | donotq | ) |
Get memory used by donotqueryaddresses structure.
donotq,: | structure for address storage. |
References iter_donotq::region, and regional_get_mem().
Referenced by iter_get_mem().