unbound: daemon/unbound.c File Reference

unbound 0.1

Functions | Variables
unbound.c File Reference

Main program to start the DNS resolver daemon. More...

`#include "config.h"`
`#include <sys/time.h>`
`#include "util/log.h"`
`#include "daemon/daemon.h"`
`#include "daemon/remote.h"`
`#include "util/config_file.h"`
`#include "util/storage/slabhash.h"`
`#include "services/listen_dnsport.h"`
`#include "services/cache/rrset.h"`
`#include "services/cache/infra.h"`
`#include "util/fptr_wlist.h"`
`#include "util/data/msgreply.h"`
`#include "util/module.h"`
`#include "util/net_help.h"`
`#include "util/ub_event.h"`
`#include <signal.h>`
`#include <fcntl.h>`
`#include <openssl/crypto.h>`
`#include <openssl/ssl.h>`

## Functions
static void | print_build_options (void)
| print build options.
static void | usage (void)
| print usage.
int | replay_var_compare (const void *ATTR_UNUSED(a), const void *ATTR_UNUSED(b))
static void | checkrlimits (struct config_file *cfg)
| check file descriptor count
static void | apply_settings (struct daemon *daemon, struct config_file *cfg, int cmdline_verbose, int debug_mode)
| set verbosity, check rlimits, cache settings
static void | detach (void)
| detach from command line
static void | perform_setup (struct daemon *daemon, struct config_file *cfg, int debug_mode, const char **cfgfile, int need_pidfile)
| daemonize, drop user privileges and chroot if needed
static void | run_daemon (const char *cfgfile, int cmdline_verbose, int debug_mode, int need_pidfile)
| Run the daemon.
int | main (int argc, char *argv[])
| main program.

## 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

Main program to start the DNS resolver daemon.

## Function Documentation

## ◆ run_daemon()

static void run_daemon | ( | const char * | cfgfile,
|  | int | cmdline_verbose,
|  | int | debug_mode,
|  | int | need_pidfile
| ) |  |
| static

Run the daemon.

Parameters

  cfgfile | the config file name.
  cmdline_verbose | verbosity resulting from commandline -v. These increase verbosity as specified in the config file.
  debug_mode | if set, do not daemonize.
  need_pidfile | if false, no pidfile is checked or created.

References apply_settings(), daemon::cfg, daemon::chroot, config_file::chrootdir, config_create(), config_delete(), config_lookup_uid(), config_read(), daemon_cleanup(), daemon_delete(), daemon_fork(), daemon_init(), daemon_open_shared_ports(), fatal_exit(), log_init(), log_warn(), config_file::logfile, daemon::need_to_exit, perform_setup(), daemon::pidfile, config_file::use_syslog, VERB_ALGO, VERB_OPS, and verbose().

Referenced by main().

## ◆ main()

int main | ( | int | argc,
|  | char * | argv[]
| ) |  |

main program.

Set options given commandline arguments.

Parameters

  argc | number of commandline arguments.
  argv | array of commandline arguments.

Returns
  : exit status of the program.

References fatal_exit(), log_get_lock(), log_ident_set(), log_ident_set_default(), log_init(), optarg, optind, print_build_options(), run_daemon(), usage(), verbosity, and wsvc_command_option().