unbound.c File Reference

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

#include "config.h"
#include "util/log.h"
#include "daemon/daemon.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/data/msgreply.h"
#include "util/module.h"
#include <signal.h>
#include <fcntl.h>
#include <pwd.h>
#include <sys/resource.h>
#include <event.h>

Functions

static void usage ()
 print usage.
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)
 set verbosity, check rlimits, cache settings
static pid_t readpid (const char *file)
 Read existing pid from pidfile.
static void writepid (const char *pidfile, pid_t pid)
 write pid to file.
static void checkoldpid (struct config_file *cfg)
 check old pid file.
static void detach (struct config_file *cfg)
 detach from command line
static void do_chroot (struct daemon *daemon, struct config_file *cfg, int debug_mode, char **cfgfile)
 daemonize, drop user priviliges and chroot if needed
static void run_daemon (char *cfgfile, int cmdline_verbose, int debug_mode)
 Run the daemon.
int main (int argc, char *argv[])
 main program.

Variables

void * unbound_start_brk = 0
 global debug value to keep track of heap memory allocation
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

static void usage (  )  [static]

print usage.

Referenced by main().

static pid_t readpid ( const char *  file  )  [static]

Read existing pid from pidfile.

Parameters:
file,: file name of pid file.
Returns:
: the pid from the file or -1 if none.

References log_err().

Referenced by checkoldpid().

static void writepid ( const char *  pidfile,
pid_t  pid 
) [static]

write pid to file.

Parameters:
pidfile,: file name of pid file.
pid,: pid to write to file.

References log_err().

Referenced by do_chroot().

static void checkoldpid ( struct config_file cfg  )  [static]

check old pid file.

Parameters:
cfg,: the config settings

References config_file::chrootdir, log_warn(), config_file::pidfile, and readpid().

Referenced by do_chroot().

static void run_daemon ( char *  cfgfile,
int  cmdline_verbose,
int  debug_mode 
) [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.

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

Referenced by 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 cfgfile, log_init(), optarg, optind, run_daemon(), unbound_start_brk, usage(), and verbosity.


Variable Documentation

int optind

getopt global, in case header files fail to declare it.

Referenced by main().

char* optarg

getopt global, in case header files fail to declare it.

Referenced by main().


Generated on Sun Sep 21 16:23:29 2008 for unbound by  doxygen 1.5.6