val_anchor.h File Reference

This file contains storage for the trust anchors for the validator. More...

#include "util/rbtree.h"

Data Structures

struct  val_anchors
 Trust anchor store. More...
struct  ta_key
 Trust anchor key. More...
struct  trust_anchor
 A trust anchor in the trust anchor store. More...

Functions

struct val_anchorsanchors_create ()
 Create trust anchor storage.
void anchors_delete (struct val_anchors *anchors)
 Delete trust anchor storage.
int anchors_apply_cfg (struct val_anchors *anchors, struct config_file *cfg)
 Process trust anchor config.
struct trust_anchoranchors_lookup (struct val_anchors *anchors, uint8_t *qname, size_t qname_len, uint16_t qclass)
 Given a qname/qclass combination, find the trust anchor closest above it.
struct trust_anchoranchor_find (struct val_anchors *anchors, uint8_t *name, int namelabs, size_t namelen, uint16_t dclass)
 Find a trust anchor.
int anchor_store_str (struct val_anchors *anchors, ldns_buffer *buffer, const char *str)
 Store one string as trust anchor RR.
size_t anchors_get_mem (struct val_anchors *anchors)
 Get memory in use by the trust anchor storage.
int anchor_cmp (const void *k1, const void *k2)
 compare two trust anchors


Detailed Description

This file contains storage for the trust anchors for the validator.


Function Documentation

struct val_anchors* anchors_create (  )  [read]

Create trust anchor storage.

Returns:
new storage or NULL on error.

References anchor_cmp(), anchors_delete(), rbtree_create(), val_anchors::region, regional_create(), and val_anchors::tree.

Referenced by anchors_test(), and val_apply_cfg().

void anchors_delete ( struct val_anchors anchors  ) 

Delete trust anchor storage.

Parameters:
anchors,: to delete.

References val_anchors::region, regional_destroy(), and val_anchors::tree.

Referenced by anchors_create(), anchors_test(), and val_deinit().

int anchors_apply_cfg ( struct val_anchors anchors,
struct config_file cfg 
)

struct trust_anchor* anchors_lookup ( struct val_anchors anchors,
uint8_t *  qname,
size_t  qname_len,
uint16_t  qclass 
) [read]

Given a qname/qclass combination, find the trust anchor closest above it.

Or return NULL if none exists.

Parameters:
anchors,: struct anchor storage
qname,: query name, uncompressed wireformat.
qname_len,: length of qname.
qclass,: class to query for.
Returns:
the trust anchor or NULL if none is found.

References trust_anchor::dclass, dname_count_labels(), dname_lab_cmp(), rbnode_t::key, trust_anchor::name, trust_anchor::namelabs, trust_anchor::namelen, trust_anchor::node, trust_anchor::parent, rbtree_find_less_equal(), and val_anchors::tree.

Referenced by processInit(), test_anchor_empty(), test_anchor_one(), test_anchors(), and val_mark_indeterminate().

struct trust_anchor* anchor_find ( struct val_anchors anchors,
uint8_t *  name,
int  namelabs,
size_t  namelen,
uint16_t  dclass 
) [read]

Find a trust anchor.

Exact matching.

Parameters:
anchors,: anchor storage.
name,: name of trust anchor (wireformat)
namelabs,: labels in name
namelen,: length of name
dclass,: class of trust anchor
Returns:
NULL if not found.

References trust_anchor::dclass, rbnode_t::key, trust_anchor::name, trust_anchor::namelabs, trust_anchor::namelen, trust_anchor::node, rbtree_search(), and val_anchors::tree.

Referenced by anchor_store_new_key(), and iter_indicates_dnssec().

int anchor_store_str ( struct val_anchors anchors,
ldns_buffer *  buffer,
const char *  str 
)

Store one string as trust anchor RR.

Parameters:
anchors,: anchor storage.
buffer,: parsing buffer, to generate the RR wireformat in.
str,: string.
Returns:
false on error.

References anchor_store_new_rr(), and log_err().

Referenced by anchors_apply_cfg(), process_bind_contents(), test_anchor_one(), and test_anchors().

size_t anchors_get_mem ( struct val_anchors anchors  ) 

Get memory in use by the trust anchor storage.

Parameters:
anchors,: anchor storage.
Returns:
memory in use in bytes.

References val_anchors::region, and regional_get_mem().

Referenced by val_get_mem().


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