Maintained by: NLnet Labs
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 "util/data/msgreply.h"
#include "util/regional.h"
#include "util/net_help.h"
#include "util/data/dname.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"

Functions

static int dump_rrset_line (SSL *ssl, struct ub_packed_rrset_key *k, time_t now, size_t i)
 dump one rrset zonefile line
 
static int dump_rrset (SSL *ssl, struct ub_packed_rrset_key *k, struct packed_rrset_data *d, time_t now)
 dump rrset key and data info
 
static int dump_rrset_lruhash (SSL *ssl, struct lruhash *h, time_t now)
 dump lruhash rrset cache
 
static int dump_rrset_cache (SSL *ssl, struct worker *worker)
 dump rrset cache
 
static int dump_msg_ref (SSL *ssl, struct ub_packed_rrset_key *k)
 dump message to rrset reference
 
static int dump_msg (SSL *ssl, 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 int dump_msg_lruhash (SSL *ssl, struct worker *worker, struct lruhash *h)
 dump lruhash msg cache
 
static int dump_msg_cache (SSL *ssl, struct worker *worker)
 dump msg cache
 
int dump_cache (SSL *ssl, struct worker *worker)
 Dump cache(s) to text. More...
 
static int ssl_read_buf (SSL *ssl, sldns_buffer *buf)
 read a line from ssl into buffer
 
static int read_fixed (SSL *ssl, sldns_buffer *buf, const char *str)
 check fixed text on line
 
static int load_rr (SSL *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 (SSL *ssl, sldns_buffer *buf, struct worker *worker)
 load an rrset entry
 
static int load_rrset_cache (SSL *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 (SSL *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 (SSL *ssl, sldns_buffer *buf, struct worker *worker)
 load a msg entry
 
static int load_msg_cache (SSL *ssl, struct worker *worker)
 load msg cache
 
int load_cache (SSL *ssl, struct worker *worker)
 Load cache(s) from text. More...
 
static void print_dp_details (SSL *ssl, struct worker *worker, struct delegpt *dp)
 print details on a delegation point
 
static void print_dp_main (SSL *ssl, struct delegpt *dp, struct dns_msg *msg)
 print main dp info
 
int print_deleg_lookup (SSL *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

◆ dump_cache()

int dump_cache ( SSL *  ssl,
struct worker worker 
)

Dump cache(s) to text.

Parameters
sslto print to
workerworker that is available (buffers, etc) and has ptrs to the caches.
Returns
false on ssl print error.

References dump_msg_cache(), dump_rrset_cache(), and ssl_printf().

Referenced by execute_cmd().

◆ load_cache()

int load_cache ( SSL *  ssl,
struct worker worker 
)

Load cache(s) from text.

Parameters
sslto read from
workerworker 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().