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 "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/data/msgreply.h"
#include "util/module.h"
#include <signal.h>
#include <fcntl.h>
#include <openssl/crypto.h>
#include <pwd.h>
#include <grp.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 (char *pidfile, int inchroot)
 check old pid file.
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)
 daemonize, drop user priviliges and chroot if needed
static void run_daemon (const 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 ( void   )  [static]

print usage.

References module_list_avail().

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 perform_setup().

static void checkoldpid ( char *  pidfile,
int  inchroot 
) [static]

check old pid file.

Parameters:
pidfile,: the file name of the pid file.
inchroot,: if pidfile is inchroot and we can thus expect to be able to delete it.

References log_warn(), and readpid().

Referenced by perform_setup().

static void run_daemon ( const 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(), daemon::chroot, config_file::chrootdir, config_create(), config_delete(), 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().

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


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 Tue Oct 13 06:46:30 2009 for unbound by  doxygen 1.5.9