unbound-checkconf.c File Reference
#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"


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, 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.


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 

Print given option to stdout.

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.