iter_donotq.h File Reference

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

#include "util/rbtree.h"

Data Structures

struct  iter_donotq
 Iterator donotqueryaddresses structure. More...
struct  iter_donotq_addr
 Iterator donotquery address. More...

Functions

struct iter_donotqdonotq_create ()
 Create donotqueryaddresses structure.
void donotq_delete (struct iter_donotq *donotq)
 Delete donotqueryaddresses structure.
int donotq_apply_cfg (struct iter_donotq *donotq, 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.
int donotq_cmp (const void *k1, const void *k2)
 compare two donotq entries


Detailed Description

This file contains functions to assist the iterator module.

Keep track of the donotquery addresses and lookup fast.


Function Documentation

struct iter_donotq* donotq_create (  )  [read]

Create donotqueryaddresses structure.

Returns:
new structure or NULL on error.

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

Referenced by iter_apply_cfg().

void donotq_delete ( struct iter_donotq donotq  ) 

Delete donotqueryaddresses structure.

Parameters:
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.

Parameters:
donotq,: where to store.
cfg,: config options.
Returns:
0 on error.

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.

Parameters:
donotq,: structure for address storage.
addr,: address to check
addrlen,: length of addr.
Returns:
: true if the address must not be queried. false if unlisted.

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.

Parameters:
donotq,: structure for address storage.
Returns:
bytes in use.

References iter_donotq::region, and regional_get_mem().

Referenced by iter_get_mem().


Generated on Sun Sep 21 16:23:29 2008 for unbound by  doxygen 1.5.6