Lines Matching refs:daemon
2 * daemon/remote.c - remote control for the unbound daemon.
39 * This file contains the remote control functionality for the daemon.
60 #include "daemon/remote.h"
61 #include "daemon/worker.h"
62 #include "daemon/daemon.h"
63 #include "daemon/stats.h"
64 #include "daemon/cachedump.h"
138 struct daemon* daemon);
681 for(i=1; i<rc->worker->daemon->num; i++) {
682 worker_send_cmd(rc->worker->daemon->workers[i],
684 if(!tube_write_msg(rc->worker->daemon->workers[i]->cmd,
885 print_mem(RES* ssl, struct worker* worker, struct daemon* daemon,
902 msg = slabhash_get_mem(daemon->env->msg_cache);
903 rrset = slabhash_get_mem(&daemon->env->rrset_cache->table);
914 if(daemon->dnscenv) {
916 daemon->dnscenv->shared_secrets_cache);
917 dnscrypt_nonce = slabhash_get_mem(daemon->dnscenv->nonces_cache);
976 timeval_subtract(&up, &now, &worker->daemon->time_boot);
977 timeval_subtract(&dt, &now, &worker->daemon->time_last_stat);
979 worker->daemon->time_last_stat = now;
1215 struct daemon* daemon = worker->daemon;
1220 log_assert(daemon->num > 0);
1222 for(i=0; i<daemon->num; i++) {
1223 server_stats_obtain(worker, daemon->workers[i], &s, reset);
1231 total.mesh_time_median /= (double)daemon->num;
1236 if(daemon->cfg->stat_extended) {
1237 if(!print_mem(ssl, worker, daemon, &total))
1241 if(!print_ext(ssl, &total, daemon->cfg->stat_inhibit_zero))
1367 if(!perform_zone_add(ssl, worker->daemon->local_zones,
1425 if(!perform_zone_remove(ssl, worker->daemon->local_zones,
1499 if(perform_data_add(ssl, worker->daemon->local_zones,
1547 if(!perform_data_remove(ssl, worker->daemon->local_zones,
2620 if(!ssl_printf(ssl, "threads: %d\n", worker->daemon->num))
2622 if(!ssl_printf(ssl, "modules: %d [", worker->daemon->mods.num))
2624 for(i=0; i<worker->daemon->mods.num; i++) {
2625 if(!ssl_printf(ssl, " %s", worker->daemon->mods.mod[i]->name))
2630 uptime = (time_t)time(NULL) - (time_t)worker->daemon->time_boot.tv_sec;
2634 (worker->daemon->reuseport?" reuseport":""),
2635 (worker->daemon->rc->accept_list?" control":""),
2636 (worker->daemon->rc->accept_list && worker->daemon->rc->use_cert?"(ssl)":""),
2637 (worker->daemon->rc->accept_list && worker->daemon->cfg->control_ifs.first && worker->daemon->cfg->control_ifs.first->str && worker->daemon->cfg->control_ifs.first->str[0] == '/'?"(namedpipe)":"")
3306 struct cookie_secrets* cookie_secrets = worker->daemon->cookie_secrets;
3348 struct cookie_secrets* cookie_secrets = worker->daemon->cookie_secrets;
3383 struct cookie_secrets* cookie_secrets = worker->daemon->cookie_secrets;
3419 struct cookie_secrets* cookie_secrets = worker->daemon->cookie_secrets;
3426 worker->daemon->cookie_secrets = cookie_secrets_create();
3427 if(!worker->daemon->cookie_secrets) {
3431 cookie_secrets = worker->daemon->cookie_secrets;
3477 struct cookie_secrets* cookie_secrets = worker->daemon->cookie_secrets;
3542 if(worker->daemon->num > 1) {
3552 if(worker->daemon->num > 1) {
3570 do_list_local_zones(ssl, worker->daemon->local_zones);
3573 do_list_local_data(ssl, worker, worker->daemon->local_zones);
3656 do_zone_remove(ssl, worker->daemon->local_zones, skipwhite(p+17));
3658 do_zone_add(ssl, worker->daemon->local_zones, skipwhite(p+10));
3660 do_data_remove(ssl, worker->daemon->local_zones, skipwhite(p+17));
3662 do_data_add(ssl, worker->daemon->local_zones, skipwhite(p+10));
4264 if(!config_read(*newcfg, fr->worker->daemon->cfgfile,
4265 fr->worker->daemon->chroot)) {
4268 (fr->worker->daemon->chroot?"<chroot:":""),
4269 (fr->worker->daemon->chroot?fr->worker->daemon->chroot:""),
4270 (fr->worker->daemon->chroot?"> ":""),
4271 fr->worker->daemon->cfgfile, strerror(errno)))
4280 (fr->worker->daemon->chroot?"<chroot:":""),
4281 (fr->worker->daemon->chroot?fr->worker->daemon->chroot:""),
4282 (fr->worker->daemon->chroot?"> ":""),
4283 fr->worker->daemon->cfgfile))
4331 if(!taglist_equal(fr->worker->daemon->cfg->tagname,
4332 fr->worker->daemon->cfg->num_tags, newcfg->tagname,
4334 !taglist_change_at_end(fr->worker->daemon->cfg->tagname,
4335 fr->worker->daemon->cfg->num_tags, newcfg->tagname,
4341 fr->worker->daemon->fast_reload_drop_mesh = fr->fr_drop_mesh;
4963 struct daemon* daemon)
4967 if(!setup_acl_for_ports(acl_interface, daemon->ports[0]))
4969 if(daemon->reuseport) {
4971 for(i=1; i<daemon->num_ports; i++) {
4973 daemon->ports[i]))
5205 fr->worker->daemon)) {
5224 if(fr->worker->daemon->tcl->tree.count != 0)
5225 fr->worker->daemon->fast_reload_tcl_has_changes = 1;
5226 else fr->worker->daemon->fast_reload_tcl_has_changes = 0;
5235 fr->worker->daemon->env, &fr->worker->daemon->mods)) {
5974 struct daemon* daemon = fr->worker->daemon;
5975 struct module_env* env = daemon->env;
5988 lock_rw_wrlock(&daemon->local_zones->lock);
6034 acl_list_swap_tree(daemon->acl, ct->acl);
6035 acl_list_swap_tree(daemon->acl_interface, ct->acl_interface);
6036 tcl_list_swap_tree(daemon->tcl, ct->tcl);
6037 local_zones_swap_tree(daemon->local_zones, ct->local_zones);
6039 daemon->use_response_ip = ct->use_response_ip;
6040 daemon->use_rpz = ct->use_rpz;
6045 daemon->env->cachedb_enabled = cachedb_is_enabled(&daemon->mods,
6046 daemon->env);
6051 dt_apply_cfg(daemon->dtenv, env->cfg);
6052 else dt_apply_logcfg(daemon->dtenv, env->cfg);
6070 lock_rw_unlock(&daemon->local_zones->lock);
6617 int numworkers = worker->daemon->num;
6618 worker->daemon->fast_reload_thread = (struct fast_reload_thread*)
6619 calloc(1, sizeof(*worker->daemon->fast_reload_thread));
6620 if(!worker->daemon->fast_reload_thread)
6622 fr = worker->daemon->fast_reload_thread;
6626 worker->daemon->fast_reload_drop_mesh = fr->fr_drop_mesh;
6634 if(!create_socketpair(fr->commpair, worker->daemon->rand)) {
6636 worker->daemon->fast_reload_thread = NULL;
6646 worker->daemon->fast_reload_thread = NULL;
6649 if(!create_socketpair(fr->commreload, worker->daemon->rand)) {
6654 worker->daemon->fast_reload_thread = NULL;
6702 * sits on a list, that is in the daemon struct.
6707 fast_reload_thread->worker->daemon);
6791 worker->daemon->fast_reload_thread = NULL;
6845 struct daemon* daemon = fr->worker->daemon;
6847 int count=0, total=daemon->num-1;
6936 mesh->use_response_ip = worker->daemon->use_response_ip;
6937 mesh->use_rpz = worker->daemon->use_rpz;
7011 lock_rw_wrlock(&worker->daemon->fast_reload_thread->old_auth_zones->lock);
7020 *loadxfr = auth_xfer_find(worker->daemon->fast_reload_thread->
7053 lock_rw_unlock(&worker->daemon->fast_reload_thread->old_auth_zones->lock);
7072 lock_rw_unlock(&worker->daemon->fast_reload_thread->old_auth_zones->lock);
7136 lock_rw_unlock(&worker->daemon->fast_reload_thread->old_auth_zones->lock);
7197 lock_rw_unlock(&worker->daemon->fast_reload_thread->old_auth_zones->lock);
7273 if(worker->daemon->fast_reload_tcl_has_changes)
7279 worker->daemon->fast_reload_thread->auth_zone_change_list);
7281 worker->env.cachedb_enabled = worker->daemon->env->cachedb_enabled;
7292 struct daemon* daemon = fr->worker->daemon;
7296 for(i=0; i<daemon->num; i++) {
7299 worker_send_cmd(daemon->workers[i], worker_cmd_reload_stop);
7312 for(i=0; i<daemon->num; i++) {
7315 worker_send_cmd(daemon->workers[i], worker_cmd_reload_start);
7319 if(fr->worker->daemon->fast_reload_drop_mesh) {
7341 struct daemon* daemon = fr->worker->daemon;
7346 for(i=0; i<daemon->num; i++) {
7349 worker_send_cmd(daemon->workers[i], worker_cmd_reload_poll);
7441 while(worker->daemon->fast_reload_thread) {
7446 if(worker->daemon->fast_reload_thread)
7447 ub_winsock_tcp_wouldblock(worker->daemon->
7455 if(worker->daemon->fast_reload_thread)
7456 ub_winsock_tcp_wouldblock(worker->daemon->
7475 if(worker->daemon->fast_reload_thread != NULL) {
7743 fr_printq_list_insert(struct fast_reload_printq* printq, struct daemon* daemon)
7747 printq->next = daemon->fast_reload_printq_list;
7752 daemon->fast_reload_printq_list = printq;
7771 struct daemon* daemon = printq->worker->daemon;
7773 daemon->fast_reload_printq_list = printq->next;
7787 if(printq->worker->daemon->fast_reload_thread &&
7788 printq->worker->daemon->fast_reload_thread->printq == printq)
7789 printq->worker->daemon->fast_reload_thread->printq = NULL;
7807 if(worker->daemon->fast_reload_thread) {
7817 worker->daemon->fast_reload_thread->started = 1;
7827 fd_set_nonblock(worker->daemon->fast_reload_thread->commpair[0]);
7828 worker->daemon->fast_reload_thread->service_event = ub_event_new(
7830 worker->daemon->fast_reload_thread->commpair[0],
7832 worker->daemon->fast_reload_thread);
7833 if(!worker->daemon->fast_reload_thread->service_event) {
7834 fast_reload_thread_desetup(worker->daemon->fast_reload_thread);
7839 if(ub_event_add(worker->daemon->fast_reload_thread->service_event,
7841 fast_reload_thread_desetup(worker->daemon->fast_reload_thread);
7846 worker->daemon->fast_reload_thread->service_event_is_added = 1;
7858 worker->daemon->fast_reload_thread->printq = fr_printq_create(s->c,
7860 if(!worker->daemon->fast_reload_thread->printq) {
7861 fast_reload_thread_desetup(worker->daemon->fast_reload_thread);
7866 worker->daemon->fast_reload_thread->printq->remote = *ssl;
7869 comm_point_stop_listening(worker->daemon->fast_reload_thread->printq->client_cp);
7872 ub_thread_create(&worker->daemon->fast_reload_thread->tid,
7873 fast_reload_thread_main, worker->daemon->fast_reload_thread);
7886 if(worker->daemon->fast_reload_thread != NULL) {