The daemon consists of global settings and a number of workers. More...
Data Structures | |
| struct | daemon |
| Structure holding worker list. More... | |
Functions | |
| struct daemon * | daemon_init (void) |
| Initialize daemon structure. | |
| int | daemon_open_shared_ports (struct daemon *daemon) |
| Open shared listening ports (if needed). | |
| void | daemon_fork (struct daemon *daemon) |
| Fork workers and start service. | |
| void | daemon_cleanup (struct daemon *daemon) |
| Close off the worker thread information. | |
| void | daemon_delete (struct daemon *daemon) |
| Delete workers, close listening ports. | |
| void | daemon_apply_cfg (struct daemon *daemon, struct config_file *cfg) |
| Apply config settings. | |
The daemon consists of global settings and a number of workers.
| struct daemon* daemon_init | ( | void | ) | [read] |
Initialize daemon structure.
References fatal_exit(), signal_handling_record(), comp_meth, ub_systemseed(), daemon::need_to_exit, modstack_init(), daemon::mods, daemon::env, alloc_init(), daemon::superalloc, daemon::acl, acl_list_create(), daemon::time_boot, log_err(), and daemon::time_last_stat.
Referenced by run_daemon(), and service_init().
| int daemon_open_shared_ports | ( | struct daemon * | daemon | ) |
Open shared listening ports (if needed).
The cfg member pointer must have been set for the daemon.
| daemon,: | the daemon. |
References log_assert, daemon::cfg, config_file::port, daemon::listening_port, listening_ports_free(), daemon::ports, listening_ports_open(), config_file::remote_control_enable, daemon::rc_port, daemon::rc_ports, config_file::control_port, and daemon_remote_open_ports().
Referenced by run_daemon(), and service_init().
| void daemon_fork | ( | struct daemon * | daemon | ) |
Fork workers and start service.
When the routine exits, it is no longer forked.
| daemon,: | the daemon. |
References log_assert, acl_list_apply_cfg(), daemon::acl, daemon::cfg, fatal_exit(), daemon::local_zones, local_zones_create(), local_zones_apply_cfg(), daemon_setup_modules(), daemon_create_workers(), worker_init(), daemon::workers, daemon::ports, daemon_start_others(), signal_handling_playback(), log_info(), worker_work(), daemon_stop_others(), daemon::need_to_exit, and worker::need_to_exit.
Referenced by run_daemon(), and service_main().
| void daemon_cleanup | ( | struct daemon * | daemon | ) |
Close off the worker thread information.
Bring the daemon back into state ready for daemon_fork again.
| daemon,: | the daemon. |
References log_assert, signal_handling_record(), log_thread_set(), slabhash_clear(), daemon::env, module_env::rrset_cache, rrset_cache::table, module_env::msg_cache, local_zones_delete(), daemon::local_zones, daemon_remote_clear(), daemon::rc, daemon::num, worker_delete(), daemon::workers, and daemon::cfg.
Referenced by run_daemon(), service_deinit(), and service_main().
| void daemon_delete | ( | struct daemon * | daemon | ) |
Delete workers, close listening ports.
| daemon,: | the daemon. |
References modstack_desetup(), daemon::mods, daemon::env, daemon_remote_delete(), daemon::rc, listening_ports_free(), daemon::ports, daemon::rc_ports, slabhash_delete(), module_env::msg_cache, rrset_cache_delete(), module_env::rrset_cache, infra_delete(), module_env::infra_cache, ub_randfree(), daemon::rand, alloc_clear(), daemon::superalloc, acl_list_delete(), daemon::acl, daemon::chroot, daemon::pidfile, daemon::listen_sslctx, ub_c_lex_destroy(), comp_meth, and log_err().
Referenced by run_daemon(), service_init(), and service_deinit().
| void daemon_apply_cfg | ( | struct daemon * | daemon, |
| struct config_file * | cfg | ||
| ) |
Apply config settings.
| daemon,: | the daemon. |
| cfg,: | new config settings. |
References daemon::cfg, config_apply(), daemon::env, module_env::msg_cache, config_file::msg_cache_size, slabhash_get_size(), config_file::msg_cache_slabs, slabhash::size, slabhash_delete(), slabhash_create(), HASH_DEFAULT_STARTARRAY, msgreply_sizefunc(), query_info_compare(), query_entry_delete(), reply_info_delete(), fatal_exit(), module_env::rrset_cache, rrset_cache_adjust(), daemon::superalloc, module_env::infra_cache, and infra_adjust().
Referenced by apply_settings(), and service_init().