iter_donotq.c File Reference

This file contains functions to assist the iterator module. More...

#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"


struct iter_donotqdonotq_create (void)
 Create donotqueryaddresses structure. More...
void donotq_delete (struct iter_donotq *dq)
 Delete donotqueryaddresses structure. More...
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
int donotq_apply_cfg (struct iter_donotq *dq, struct config_file *cfg)
 Process donotqueryaddresses config. More...
int donotq_lookup (struct iter_donotq *donotq, struct sockaddr_storage *addr, socklen_t addrlen)
 See if an address is blocked. More...
size_t donotq_get_mem (struct iter_donotq *donotq)
 Get memory used by donotqueryaddresses structure. More...

Detailed Description

This file contains functions to assist the iterator module.

The donotqueryaddresses are stored and looked up. These addresses (like must not be used to send queries to, and can be discarded immediately from the server selection.

Function Documentation

◆ donotq_create()

struct iter_donotq* donotq_create ( void  )

Create donotqueryaddresses structure.

new structure or NULL on error.

References donotq_delete(), iter_donotq::region, and regional_create().

Referenced by iter_apply_cfg().

◆ donotq_delete()

void donotq_delete ( struct iter_donotq donotq)

Delete donotqueryaddresses structure.

donotqto delete.

References iter_donotq::region, and regional_destroy().

Referenced by donotq_create(), and iter_deinit().

◆ donotq_apply_cfg()

int donotq_apply_cfg ( struct iter_donotq donotq,
struct config_file cfg 

Process donotqueryaddresses config.

donotqwhere to store.
cfgconfig options.
0 on error.

References addr_tree_init(), addr_tree_init_parents(), config_file::do_ip6, donotq_str_cfg(), config_file::donotquery_localhost, read_donotq(), iter_donotq::region, regional_free_all(), and iter_donotq::tree.

Referenced by iter_apply_cfg().

◆ donotq_lookup()

int donotq_lookup ( struct iter_donotq donotq,
struct sockaddr_storage *  addr,
socklen_t  addrlen 

See if an address is blocked.

donotqstructure for address storage.
addraddress to check
addrlenlength of addr.
: true if the address must not be queried. false if unlisted.

References addr_tree_lookup(), and iter_donotq::tree.

Referenced by iter_filter_unsuitable().

◆ donotq_get_mem()

size_t donotq_get_mem ( struct iter_donotq donotq)

Get memory used by donotqueryaddresses structure.

donotqstructure for address storage.
bytes in use.

References iter_donotq::region, and regional_get_mem().