Maintained by: NLnet Labs
Data Structures | Functions
iter_priv.h File Reference

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

#include "util/rbtree.h"

Data Structures

struct  iter_priv
 Iterator priv structure. More...
 

Functions

struct iter_privpriv_create (void)
 Create priv structure. More...
 
void priv_delete (struct iter_priv *priv)
 Delete priv structure. More...
 
int priv_apply_cfg (struct iter_priv *priv, struct config_file *cfg)
 Process priv config. More...
 
int priv_rrset_bad (struct iter_priv *priv, struct sldns_buffer *pkt, struct rrset_parse *rrset)
 See if rrset is bad. More...
 
size_t priv_get_mem (struct iter_priv *priv)
 Get memory used by priv structure. More...
 

Detailed Description

This file contains functions to assist the iterator module.

Keep track of the private addresses and lookup fast.

Function Documentation

struct iter_priv* priv_create ( void  )
read

Create priv structure.

Returns
new structure or NULL on error.

References iter_priv::a, addr_tree_init(), iter_priv::n, name_tree_init(), priv_delete(), iter_priv::region, and regional_create().

Referenced by iter_apply_cfg().

void priv_delete ( struct iter_priv priv)

Delete priv structure.

Parameters
priv,:to delete.

References iter_priv::region, and regional_destroy().

Referenced by iter_deinit(), and priv_create().

int priv_apply_cfg ( struct iter_priv priv,
struct config_file cfg 
)

Process priv config.

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

References iter_priv::a, addr_tree_init(), addr_tree_init_parents(), iter_priv::n, name_tree_init(), name_tree_init_parents(), read_addrs(), read_names(), iter_priv::region, and regional_free_all().

Referenced by iter_apply_cfg().

int priv_rrset_bad ( struct iter_priv priv,
struct sldns_buffer pkt,
struct rrset_parse rrset 
)

See if rrset is bad.

Will remove individual RRs that are bad (if possible) to sanitize the RRset without removing it completely.

Parameters
priv,:structure for private address storage.
pkt,:packet to decompress rrset name in.
rrset,:the rrset to examine, A or AAAA.
Returns
true if the rrset is bad and should be removed.

References iter_priv::a, rbtree_t::count, rrset_parse::dname, rrset_parse::dname_len, INET6_SIZE, INET_SIZE, LDNS_RR_TYPE_A, LDNS_RR_TYPE_AAAA, name_tree_node::len, rr_parse::next, priv_lookup_addr(), priv_lookup_name(), remove_rr(), rrset_parse::rr_first, rrset_parse::rrset_class, rr_parse::ttl_data, and rrset_parse::type.

Referenced by scrub_sanitize().

size_t priv_get_mem ( struct iter_priv priv)

Get memory used by priv structure.

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

References iter_priv::region, and regional_get_mem().

Referenced by iter_get_mem().