val_kcache.h File Reference

This file contains functions for caching validated key entries. More...

#include "util/storage/slabhash.h"

Data Structures

struct  key_cache
 Key cache. More...

Functions

struct key_cachekey_cache_create (struct config_file *cfg)
 Create the key cache.
void key_cache_delete (struct key_cache *kcache)
 Delete the key cache.
void key_cache_insert (struct key_cache *kcache, struct key_entry_key *kkey)
 Insert or update a key cache entry.
struct key_entry_keykey_cache_obtain (struct key_cache *kcache, uint8_t *name, size_t namelen, uint16_t key_class, struct regional *region, uint32_t now)
 Lookup key entry in the cache.
size_t key_cache_get_mem (struct key_cache *kcache)
 Get memory in use by the key cache.


Detailed Description

This file contains functions for caching validated key entries.


Function Documentation

struct key_cache* key_cache_create ( struct config_file cfg  )  [read]

Create the key cache.

Parameters:
cfg,: config settings for the key cache.
Returns:
new key cache or NULL on malloc failure.

References HASH_DEFAULT_STARTARRAY, config_file::key_cache_size, config_file::key_cache_slabs, key_entry_compfunc(), key_entry_deldatafunc(), key_entry_delkeyfunc(), key_entry_sizefunc(), log_err(), key_cache::slab, and slabhash_create().

Referenced by val_apply_cfg().

void key_cache_delete ( struct key_cache kcache  ) 

Delete the key cache.

Parameters:
kcache,: to delete

References key_cache::slab, and slabhash_delete().

Referenced by val_deinit().

void key_cache_insert ( struct key_cache kcache,
struct key_entry_key kkey 
)

Insert or update a key cache entry.

Note that the insert may silently fail if there is not enough memory.

Parameters:
kcache,: the key cache.
kkey,: key entry key, assumed malloced in a region, is copied to perform update or insertion. Its data pointer is also copied.

References lruhash_entry::data, key_entry_key::entry, lruhash_entry::hash, key_entry_copy(), key_entry_hash(), key_cache::slab, and slabhash_insert().

Referenced by primeResponseToKE(), and process_dnskey_response().

struct key_entry_key* key_cache_obtain ( struct key_cache kcache,
uint8_t *  name,
size_t  namelen,
uint16_t  key_class,
struct regional region,
uint32_t  now 
) [read]

Lookup key entry in the cache.

Looks up the closest key entry above the given name.

Parameters:
kcache,: the key cache.
name,: for what name to look; uncompressed wireformat
namelen,: length of the name.
key_class,: class of the key.
region,: a copy of the key_entry is allocated in this region.
now,: current time.
Returns:
pointer to a newly allocated key_entry copy in the region, if a key entry could be found, and allocation succeeded and TTL was OK. Otherwise, NULL is returned.

References lruhash_entry::data, dname_is_root(), dname_remove_label(), key_entry_key::entry, key_cache_search(), key_entry_copy_toregion(), lruhash_entry::lock, and key_entry_data::ttl.

Referenced by processInit().

size_t key_cache_get_mem ( struct key_cache kcache  ) 

Get memory in use by the key cache.

Parameters:
kcache,: the key cache.
Returns:
memory in use in bytes.

References key_cache::slab, and slabhash_get_mem().

Referenced by val_get_mem().


Generated on Thu Mar 26 09:45:02 2009 for unbound by  doxygen 1.5.8