cachedb.h File Reference

This file contains a module that uses an external database to cache dns responses. More...

#include "util/module.h"

Data Structures

struct  cachedb_env
 The global variable environment contents for the cachedb Shared between threads, this represents long term information. More...
 
struct  cachedb_qstate
 Per query state for the cachedb module. More...
 
struct  cachedb_backend
 Backend call routines. More...
 

Macros

#define CACHEDB_HASHSIZE   256 /* bit hash */
 

Functions

int cachedb_init (struct module_env *env, int id)
 Init the cachedb module.
 
void cachedb_deinit (struct module_env *env, int id)
 Deinit the cachedb module.
 
void cachedb_operate (struct module_qstate *qstate, enum module_ev event, int id, struct outbound_entry *outbound)
 Operate on an event on a query (in qstate).
 
void cachedb_inform_super (struct module_qstate *qstate, int id, struct module_qstate *super)
 Subordinate query done, inform this super request of its conclusion.
 
void cachedb_clear (struct module_qstate *qstate, int id)
 clear the cachedb query-specific contents out of qstate
 
size_t cachedb_get_mem (struct module_env *env, int id)
 return memory estimate for cachedb module
 
struct module_func_blockcachedb_get_funcblock (void)
 Get the function block with pointers to the cachedb functions. More...
 
int cachedb_is_enabled (struct module_stack *mods, struct module_env *env)
 See if the cachedb is enabled. More...
 
void cachedb_msg_remove (struct module_qstate *qstate)
 Remove a message from the global cache. More...
 
void cachedb_msg_remove_qinfo (struct module_env *env, struct query_info *qinfo)
 Remove message from the cachedb cache, by query info. More...
 

Detailed Description

This file contains a module that uses an external database to cache dns responses.

Function Documentation

◆ cachedb_get_funcblock()

struct module_func_block* cachedb_get_funcblock ( void  )

Get the function block with pointers to the cachedb functions.

Returns
the function block for "cachedb".

Referenced by module_funcs_avail().

◆ cachedb_is_enabled()

int cachedb_is_enabled ( struct module_stack mods,
struct module_env env 
)

See if the cachedb is enabled.

Parameters
modsmodule stack. It finds the cachedb module environment.
envmodule environment.
Returns
true if exists and enabled.

◆ cachedb_msg_remove()

void cachedb_msg_remove ( struct module_qstate qstate)

Remove a message from the global cache.

Because edns subnet has a more specific entry, and if not removed when everything expires, the global entry is used, instead of a fresh lookup of the edns subnet entry.

Parameters
qstatequery state.

◆ cachedb_msg_remove_qinfo()

void cachedb_msg_remove_qinfo ( struct module_env env,
struct query_info qinfo 
)

Remove message from the cachedb cache, by query info.

Parameters
envmodule environment to look up cachedb state.
qinfothe message to remove.

Referenced by bogus_del_msg(), do_cache_remove(), negative_del_msg(), and zone_del_msg().