unbound-checkconf.c File Reference

The config checker checks for syntax and other errors in the unbound.conf file, and can be used to check for errors before the server is started or sigHUPped. More...

#include "config.h"
#include <ctype.h>
#include "util/log.h"
#include "util/config_file.h"
#include "util/module.h"
#include "util/net_help.h"
#include "util/regional.h"
#include "iterator/iterator.h"
#include "iterator/iter_fwd.h"
#include "iterator/iter_hints.h"
#include "validator/validator.h"
#include "services/localzone.h"
#include "services/listen_dnsport.h"
#include "services/view.h"
#include "services/authzone.h"
#include "respip/respip.h"
#include "sldns/sbuffer.h"
#include "sldns/str2wire.h"

Functions

static void usage (void)
 Give checkconf usage, and exit (1).
 
static void print_option (struct config_file *cfg, const char *opt, int final)
 Print given option to stdout. More...
 
static void check_mod (struct config_file *cfg, struct module_func_block *fb)
 check if module works with config
 
static int str_addr_is_localhost (const char *a)
 true if addr is a localhost address, 127.0.0.1 or ::1 (with maybe "@port" after it)
 
static void donotquerylocalhostcheck (struct config_file *cfg)
 check do-not-query-localhost
 
static void localzonechecks (struct config_file *cfg)
 check localzones
 
static void acl_view_tag_checks (struct config_file *cfg, struct views *views)
 checks for acl and views
 
static void view_and_respipchecks (struct config_file *cfg)
 check view and response-ip configuration
 
static void warn_hosts (const char *typ, struct config_stub *list)
 emit warnings for IP in hosts
 
static void interfacechecks (struct config_file *cfg)
 check interface strings
 
static void ifautomaticportschecks (char *ifautomaticports)
 check interface-automatic-ports
 
static void aclchecks (struct config_file *cfg)
 check acl ips
 
static void tcpconnlimitchecks (struct config_file *cfg)
 check tcp connection limit ips
 
static int is_file (const char *fname)
 true if fname is a file
 
static int is_dir (const char *fname)
 true if fname is a directory
 
static char * basedir (char *fname)
 get base dir of a fname
 
static void check_chroot_string (const char *desc, char **ss, const char *chrootdir, struct config_file *cfg)
 check chroot for a file string
 
static void check_chroot_filelist (const char *desc, struct config_strlist *list, const char *chrootdir, struct config_file *cfg)
 check file list, every file must be inside the chroot location
 
static void check_chroot_filelist_wild (const char *desc, struct config_strlist *list, const char *chrootdir, struct config_file *cfg)
 check file list, with wildcard processing
 
static void check_modules_exist (const char *module_conf)
 check that the modules exist, are compiled in
 
static void morechecks (struct config_file *cfg)
 check configuration for errors
 
static void check_fwd (struct config_file *cfg)
 check forwards
 
static void check_hints (struct config_file *cfg)
 check hints
 
static void check_auth (struct config_file *cfg)
 check auth zones
 
static void checkconf (const char *cfgfile, const char *opt, int final)
 check config file
 
int main (int argc, char *argv[])
 Main routine for checkconf.
 

Variables

int optind
 getopt global, in case header files fail to declare it.
 
char * optarg
 getopt global, in case header files fail to declare it.
 

Detailed Description

The config checker checks for syntax and other errors in the unbound.conf file, and can be used to check for errors before the server is started or sigHUPped.

Exit status 1 means an error.

Function Documentation

◆ print_option()

static void print_option ( struct config_file cfg,
const char *  opt,
int  final 
)
static

Print given option to stdout.

Parameters
cfgconfig
optoption name without trailing :. This is different from config_set_option.
finalif final pathname with chroot applied has to be printed.

References fname_after_chroot(), and config_file::pidfile.