unbound: daemon/cachedump.c File Reference

unbound 0.1

Data Structures | Functions
cachedump.c File Reference

This file contains functions to read and write the cache(s) to text format. More...

`#include "config.h"`
`#include <openssl/ssl.h>`
`#include "daemon/cachedump.h"`
`#include "daemon/remote.h"`
`#include "daemon/worker.h"`
`#include "services/cache/rrset.h"`
`#include "services/cache/dns.h"`
`#include "services/cache/infra.h"`
`#include "services/outside_network.h"`
`#include "util/data/msgreply.h"`
`#include "util/regional.h"`
`#include "util/net_help.h"`
`#include "util/data/dname.h"`
`#include "util/config_file.h"`
`#include "iterator/iterator.h"`
`#include "iterator/iter_delegpt.h"`
`#include "iterator/iter_utils.h"`
`#include "iterator/iter_fwd.h"`
`#include "iterator/iter_hints.h"`
`#include "sldns/sbuffer.h"`
`#include "sldns/wire2str.h"`
`#include "sldns/str2wire.h"`

## Data Structures
struct | dump_info
| Struct for dump information. More...

## Functions
static void | spool_txt_printf (struct config_strlist_head *txt, const char *format,...)
| Print item to spool list.
static void static void | spool_txt_string (struct config_strlist_head *txt, char *str)
| Append to strlist at end, and log error if out of memory.
static void | spool_txt_vmsg (struct config_strlist_head *txt, const char *format, va_list args)
| Spool txt to spool list.
static void | dump_rrset_line (struct config_strlist_head *txt, struct ub_packed_rrset_key *k, time_t now, size_t i)
| dump one rrset zonefile line
static void | dump_rrset (struct config_strlist_head *txt, struct ub_packed_rrset_key *k, struct packed_rrset_data *d, time_t now)
| dump rrset key and data info
static int | spool_strlist (RES *ssl, struct config_strlist *list)
| Spool strlist to the output.
static int | dump_lruhash (struct lruhash *table, void(*func)(struct lruhash_entry *, struct config_strlist_head *, void *), RES *ssl, void *arg)
| dump lruhash cache and call callback for every item.
static int | dump_slabhash (struct slabhash *sh, void(*func)(struct lruhash_entry *, struct config_strlist_head *, void *), RES *ssl, void *arg)
| dump slabhash cache and call callback for every item.
static void | dump_rrset_entry (struct lruhash_entry *e, struct config_strlist_head *txt, void *arg)
| Dump the rrset cache entry.
static int | dump_rrset_cache (RES *ssl, struct worker *worker)
| dump rrset cache
static void | dump_msg_ref (struct config_strlist_head *txt, struct ub_packed_rrset_key *k)
| dump message to rrset reference
static void | dump_msg (struct config_strlist_head *txt, struct query_info *k, struct reply_info *d, time_t now)
| dump message entry
static int | copy_msg (struct regional *region, struct lruhash_entry *e, struct query_info **k, struct reply_info **d)
| copy msg to worker pad
static void | dump_msg_entry (struct lruhash_entry *e, struct config_strlist_head *txt, void *arg)
| Dump the msg entry.
static int | dump_msg_cache (RES *ssl, struct worker *worker)
| dump msg cache
int | dump_cache (RES *ssl, struct worker *worker)
| Dump cache(s) to text.
static int | ssl_read_buf (RES *ssl, sldns_buffer *buf)
| read a line from ssl into buffer
static int | read_fixed (RES *ssl, sldns_buffer *buf, const char *str)
| check fixed text on line
static int | load_rr (RES *ssl, sldns_buffer *buf, struct regional *region, struct ub_packed_rrset_key *rk, struct packed_rrset_data *d, unsigned int i, int is_rrsig, int *go_on, time_t now)
| load an RR into rrset
static int | move_into_cache (struct ub_packed_rrset_key *k, struct packed_rrset_data *d, struct worker *worker)
| move entry into cache
static int | load_rrset (RES *ssl, sldns_buffer *buf, struct worker *worker)
| load an rrset entry
static int | load_rrset_cache (RES *ssl, struct worker *worker)
| load rrset cache
static char * | load_qinfo (char *str, struct query_info *qinfo, struct regional *region)
| read qinfo from next three words
static int | load_ref (RES *ssl, sldns_buffer *buf, struct worker *worker, struct regional *region, struct ub_packed_rrset_key **rrset, int *go_on)
| load a msg rrset reference
static int | load_msg (RES *ssl, sldns_buffer *buf, struct worker *worker)
| load a msg entry
static int | load_msg_cache (RES *ssl, struct worker *worker)
| load msg cache
int | load_cache (RES *ssl, struct worker *worker)
| Load cache(s) from text.
static void | print_dp_details (RES *ssl, struct worker *worker, struct delegpt *dp)
| print details on a delegation point
static void | print_dp_main (RES *ssl, struct delegpt *dp, struct dns_msg *msg)
| print main dp info
int | print_deleg_lookup (RES *ssl, struct worker *worker, uint8_t *nm, size_t nmlen, int ATTR_UNUSED(nmlabs))

## Detailed Description

This file contains functions to read and write the cache(s) to text format.

## Function Documentation

## ◆ spool_txt_printf()

void spool_txt_printf | ( | struct config_strlist_head * | txt,
|  | const char * | format,
|  |  | ... )
| static

Print item to spool list.

On alloc failure the list is as before.

References spool_txt_vmsg().

Referenced by dump_msg(), dump_msg_ref(), and dump_rrset().

## ◆ dump_cache()

int dump_cache | ( | RES * | ssl,
|  | struct worker * | worker )

Dump cache(s) to text.

Parameters

  ssl | to print to
  worker | worker that is available (buffers, etc) and has ptrs to the caches.

Returns
  false on ssl print error.

References dump_msg_cache(), dump_rrset_cache(), dump_info::ssl, and ssl_printf().

Referenced by execute_cmd().

## ◆ load_cache()

int load_cache | ( | RES * | ssl,
|  | struct worker * | worker )

Load cache(s) from text.

Parameters

  ssl | to read from
  worker | worker that is available (buffers, etc) and has ptrs to the caches.

Returns
  false on ssl error.

References worker::env, load_msg_cache(), load_rrset_cache(), read_fixed(), and module_env::scratch_buffer.

Referenced by execute_cmd().