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"
#include <ldns/buffer.h>

Data Structures

struct  iter_priv
 Iterator priv structure. More...

Functions

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

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::region, regional_create(), priv_delete(), addr_tree_init(), iter_priv::a, name_tree_init(), and iter_priv::n.

Referenced by iter_apply_cfg().

void priv_delete ( struct iter_priv priv)

Delete priv structure.

Parameters:
priv,:to delete.

References regional_destroy(), and iter_priv::region.

Referenced by priv_create(), and iter_deinit().

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 regional_free_all(), iter_priv::region, addr_tree_init(), iter_priv::a, name_tree_init(), iter_priv::n, read_addrs(), read_names(), addr_tree_init_parents(), and name_tree_init_parents().

Referenced by iter_apply_cfg().

int priv_rrset_bad ( struct iter_priv priv,
ldns_buffer *  pkt,
struct rrset_parse rrset 
)

See if rrset is bad.

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, priv_lookup_name(), rrset_parse::dname, rrset_parse::dname_len, rrset_parse::rrset_class, name_tree_node::len, rrset_parse::type, rrset_parse::rr_first, rr_parse::next, rr_parse::ttl_data, INET_SIZE, priv_lookup_addr(), and INET6_SIZE.

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 regional_get_mem(), and iter_priv::region.

Referenced by iter_get_mem().