Lines Matching defs:daemon

54 #include "daemon/daemon.h"
55 #include "daemon/worker.h"
56 #include "daemon/stats.h"
83 int shm_main_init(struct daemon* daemon)
90 if(!daemon)
92 if(!daemon->cfg->shm_enable)
94 if(daemon->cfg->stat_interval == 0)
98 shm_size = (sizeof(struct ub_stats_info) * (daemon->num + 1));
101 daemon->shm_info = (struct shm_main_info*)calloc(1, shm_size);
104 if(!daemon->shm_info) {
109 daemon->shm_info->key = daemon->cfg->shm_key;
112 daemon->shm_info->id_ctl = shmget(daemon->shm_info->key, sizeof(int), SHM_R);
113 daemon->shm_info->id_arr = shmget(daemon->shm_info->key + 1, sizeof(int), SHM_R);
116 if (daemon->shm_info->id_ctl >= 0)
117 shmctl(daemon->shm_info->id_ctl, IPC_RMID, NULL);
120 if (daemon->shm_info->id_arr >= 0)
121 shmctl(daemon->shm_info->id_arr, IPC_RMID, NULL);
124 daemon->shm_info->id_ctl = shmget(daemon->shm_info->key, sizeof(struct ub_shm_stat_info), IPC_CREAT | 0644);
126 if (daemon->shm_info->id_ctl < 0)
129 daemon->shm_info->key, strerror(errno));
132 free(daemon->shm_info);
133 daemon->shm_info = NULL;
138 daemon->shm_info->id_arr = shmget(daemon->shm_info->key + 1, shm_size, IPC_CREAT | 0644);
140 if (daemon->shm_info->id_arr < 0)
143 daemon->shm_info->key, strerror(errno));
146 free(daemon->shm_info);
147 daemon->shm_info = NULL;
153 daemon->shm_info->ptr_ctl = (struct ub_shm_stat_info*)
154 shmat(daemon->shm_info->id_ctl, NULL, 0);
155 if(daemon->shm_info->ptr_ctl == (void *) -1) {
157 daemon->shm_info->id_ctl, strerror(errno));
160 free(daemon->shm_info);
161 daemon->shm_info = NULL;
166 daemon->shm_info->ptr_arr = (struct ub_stats_info*)
167 shmat(daemon->shm_info->id_arr, NULL, 0);
169 if (daemon->shm_info->ptr_arr == (void *) -1)
172 daemon->shm_info->id_arr, strerror(errno));
175 free(daemon->shm_info);
176 daemon->shm_info = NULL;
182 memset(daemon->shm_info->ptr_ctl, 0, sizeof(struct ub_shm_stat_info));
183 memset(daemon->shm_info->ptr_arr, 0, shm_size);
185 shm_stat = daemon->shm_info->ptr_ctl;
186 shm_stat->num_threads = daemon->num;
189 (void)daemon;
194 void shm_main_shutdown(struct daemon* daemon)
198 if(!daemon->cfg->shm_enable)
202 daemon->shm_info->key, daemon->shm_info->id_ctl, daemon->shm_info->id_arr, daemon->shm_info->ptr_ctl, daemon->shm_info->ptr_arr);
205 if (daemon->shm_info->id_ctl >= 0)
206 shmctl(daemon->shm_info->id_ctl, IPC_RMID, NULL);
208 if (daemon->shm_info->id_arr >= 0)
209 shmctl(daemon->shm_info->id_arr, IPC_RMID, NULL);
211 if (daemon->shm_info->ptr_ctl)
212 shmdt(daemon->shm_info->ptr_ctl);
214 if (daemon->shm_info->ptr_arr)
215 shmdt(daemon->shm_info->ptr_arr);
217 free(daemon->shm_info);
218 daemon->shm_info = NULL;
220 (void)daemon;
233 verbose(VERB_DETAIL, "SHM run - worker [%d] - daemon [%p] - timenow(%u) - timeboot(%u)",
234 worker->thread_num, worker->daemon, (unsigned)worker->env.now_tv->tv_sec, (unsigned)worker->daemon->time_boot.tv_sec);
238 stat_total = worker->daemon->shm_info->ptr_arr;
239 stat_info = worker->daemon->shm_info->ptr_arr + offset;
252 shm_stat = worker->daemon->shm_info->ptr_ctl;
257 stat_timeval_subtract(&shm_stat->time.up_sec, &shm_stat->time.up_usec, worker->env.now_tv, &worker->daemon->time_boot);
258 stat_timeval_subtract(&shm_stat->time.elapsed_sec, &shm_stat->time.elapsed_usec, worker->env.now_tv, &worker->daemon->time_last_stat);
264 if(worker->daemon->dnscenv) {
266 worker->daemon->dnscenv->shared_secrets_cache);
268 worker->daemon->dnscenv->nonces_cache);
303 stat_total->mesh_time_median /= (double)worker->daemon->num;