sbin/nfsd/nfsd.c
209
nsd.nsd_nfsd = NULL;
sbin/nfsd/nfsd.c
210
if (nfssvc(NFSSVC_NFSD, &nsd) == -1) {
sbin/nfsd/nfsd.c
76
struct nfsd_srvargs nsd;
sys/dev/softraid.c
4550
struct sr_discipline *sd, *nsd;
sys/dev/softraid.c
4557
sr_discipline_list, sd_link, nsd)
sys/nfs/nfs_syscalls.c
144
struct nfsd_srvargs nfsd_srvargs, *nsd = &nfsd_srvargs;
sys/nfs/nfs_syscalls.c
189
error = copyin(SCARG(uap, argp), nsd, sizeof(*nsd));
usr.sbin/nsd/axfr.c
186
static int axfr_ixfr_can_admit_query(struct nsd* nsd, struct query* q)
usr.sbin/nsd/axfr.c
193
if (nsd->options->tls_auth_xfr_only && !q->tls_auth) {
usr.sbin/nsd/axfr.c
211
zone_opt = zone_options_find(nsd->options, q->qname);
usr.sbin/nsd/axfr.c
22
query_axfr(struct nsd *nsd, struct query *query, int wstats)
usr.sbin/nsd/axfr.c
291
answer_axfr_ixfr(struct nsd *nsd, struct query *q)
usr.sbin/nsd/axfr.c
297
if(!axfr_ixfr_can_admit_query(nsd, q))
usr.sbin/nsd/axfr.c
299
return query_axfr(nsd, q, 1);
usr.sbin/nsd/axfr.c
305
if(!axfr_ixfr_can_admit_query(nsd, q)) {
usr.sbin/nsd/axfr.c
316
return query_ixfr(nsd, q);
usr.sbin/nsd/axfr.c
50
STATUP(nsd, raxfr);
usr.sbin/nsd/axfr.c
52
exact = namedb_lookup(nsd->db,
usr.sbin/nsd/axfr.c
58
query->axfr_zone = domain_find_zone(nsd->db, closest_encloser);
usr.sbin/nsd/axfr.c
70
ZTATUP(nsd, query->axfr_zone, raxfr);
usr.sbin/nsd/axfr.h
22
query_state_type answer_axfr_ixfr(struct nsd *nsd, struct query *q);
usr.sbin/nsd/axfr.h
23
query_state_type query_axfr(struct nsd *nsd, struct query *query, int wstats);
usr.sbin/nsd/dbaccess.c
229
namedb_read_zonefile(struct nsd* nsd, struct zone* zone, udb_base* taskudb,
usr.sbin/nsd/dbaccess.c
238
if(!nsd->db || !zone || !zone->opts || !zone->opts->pattern->zonefile)
usr.sbin/nsd/dbaccess.c
242
fname = config_make_zonefile(zone->opts, nsd);
usr.sbin/nsd/dbaccess.c
308
namedb_zone_free_filenames(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
309
zone->filename = region_strdup(nsd->db->region, fname);
usr.sbin/nsd/dbaccess.c
313
nsec3_clear_precompile(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
316
delete_zone_rrs(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
319
errors = zonec_read(nsd->db, nsd->db->domains, zone->opts->name, fname, zone);
usr.sbin/nsd/dbaccess.c
326
nsec3_clear_precompile(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
329
delete_zone_rrs(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
330
namedb_zone_free_filenames(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
332
region_recycle(nsd->db->region, zone->logstr,
usr.sbin/nsd/dbaccess.c
343
region_recycle(nsd->db->region, zone->logstr,
usr.sbin/nsd/dbaccess.c
347
ixfr_readup_exist(zone, nsd, fname);
usr.sbin/nsd/dbaccess.c
349
if(!ixfr_create_perform(ixfrcr, zone, 1, nsd, fname,
usr.sbin/nsd/dbaccess.c
358
ixfr_read_from_file(nsd, zone, fname);
usr.sbin/nsd/dbaccess.c
363
prehash_zone_complete(nsd->db, zone);
usr.sbin/nsd/dbaccess.c
367
void namedb_check_zonefile(struct nsd* nsd, udb_base* taskudb,
usr.sbin/nsd/dbaccess.c
373
zone = namedb_find_zone(nsd->db, dname);
usr.sbin/nsd/dbaccess.c
375
zone = namedb_zone_create(nsd->db, dname, zopt);
usr.sbin/nsd/dbaccess.c
377
namedb_read_zonefile(nsd, zone, taskudb, last_task);
usr.sbin/nsd/dbaccess.c
380
void namedb_check_zonefiles(struct nsd* nsd, struct nsd_options* opt,
usr.sbin/nsd/dbaccess.c
386
namedb_check_zonefile(nsd, taskudb, last_task, zo);
usr.sbin/nsd/dbaccess.c
387
if(nsd->signal_hint_shutdown) break;
usr.sbin/nsd/dbcreate.c
176
namedb_write_zonefile(struct nsd* nsd, struct zone_options* zopt)
usr.sbin/nsd/dbcreate.c
185
zone = namedb_find_zone(nsd->db, (const dname_type*)zopt->node.key);
usr.sbin/nsd/dbcreate.c
190
zfile = config_make_zonefile(zopt, nsd);
usr.sbin/nsd/dbcreate.c
230
region_recycle(nsd->db->region, zone->filename,
usr.sbin/nsd/dbcreate.c
232
zone->filename = region_strdup(nsd->db->region, zfile);
usr.sbin/nsd/dbcreate.c
234
region_recycle(nsd->db->region, zone->logstr,
usr.sbin/nsd/dbcreate.c
243
namedb_write_zonefiles(struct nsd* nsd, struct nsd_options* options)
usr.sbin/nsd/dbcreate.c
247
namedb_write_zonefile(nsd, zo);
usr.sbin/nsd/difffile.c
109
struct nsd* nsd, uint64_t filenumber)
usr.sbin/nsd/difffile.c
1160
apply_ixfr(nsd_type* nsd, FILE *in, uint32_t serialno,
usr.sbin/nsd/difffile.c
124
df = xfrd_open_xfrfile(nsd, filenumber, "r+");
usr.sbin/nsd/difffile.c
1359
ixfr_store_finish(ixfr_store, nsd, NULL);
usr.sbin/nsd/difffile.c
1378
nsec3_clear_precompile(nsd->db, zone);
usr.sbin/nsd/difffile.c
1381
delete_zone_rrs(nsd->db, zone);
usr.sbin/nsd/difffile.c
1403
commit_RRset(nsd->db, zone, &collect_rrs);
usr.sbin/nsd/difffile.c
1405
if(!delete_RR(nsd->db, owner, type, klass, ttl, packet,
usr.sbin/nsd/difffile.c
1412
if(!(add_RR(nsd->db, owner, type, klass, ttl, packet,
usr.sbin/nsd/difffile.c
1426
rr_lower_usage( nsd->db, collect_rrs.rrs[i]);
usr.sbin/nsd/difffile.c
1427
region_recycle( nsd->db->region, collect_rrs.rrs[i]
usr.sbin/nsd/difffile.c
1436
commit_RRset(nsd->db, zone, &collect_rrs);
usr.sbin/nsd/difffile.c
1466
apply_ixfr_for_zone(nsd_type* nsd, zone_type* zone, FILE* in,
usr.sbin/nsd/difffile.c
1535
if(check_for_bad_serial(nsd->db, zone_buf, old_serial)) {
usr.sbin/nsd/difffile.c
1553
ret = apply_ixfr(nsd, in, new_serial,
usr.sbin/nsd/difffile.c
1560
zone_buf, DIFF_CORRUPT, nsd, xfrfilenr);
usr.sbin/nsd/difffile.c
1574
prehash_zone(nsd->db, zone);
usr.sbin/nsd/difffile.c
1582
region_recycle(nsd->db->region, zone->logstr,
usr.sbin/nsd/difffile.c
1584
zone->logstr = region_strdup(nsd->db->region, log_buf);
usr.sbin/nsd/difffile.c
1585
namedb_zone_free_filenames(nsd->db, zone);
usr.sbin/nsd/difffile.c
1593
zone_buf, DIFF_INCONSISTENT, nsd, xfrfilenr);
usr.sbin/nsd/difffile.c
1597
ixfr_store_finish(ixfr_store, nsd, log_buf);
usr.sbin/nsd/difffile.c
164
const char* zone, uint8_t commit, struct nsd* nsd, uint64_t filenumber)
usr.sbin/nsd/difffile.c
169
assert(nsd != NULL);
usr.sbin/nsd/difffile.c
176
df = xfrd_open_xfrfile(nsd, filenumber, "r+");
usr.sbin/nsd/difffile.c
2038
task_process_checkzones(struct nsd* nsd, udb_base* taskudb, udb_ptr* last_task,
usr.sbin/nsd/difffile.c
2044
struct zone_options* zo = zone_options_find(nsd->options,
usr.sbin/nsd/difffile.c
2047
namedb_check_zonefile(nsd, taskudb, last_task, zo);
usr.sbin/nsd/difffile.c
2050
namedb_check_zonefiles(nsd, nsd->options, taskudb, last_task);
usr.sbin/nsd/difffile.c
2055
task_process_writezones(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2058
struct zone_options* zo = zone_options_find(nsd->options,
usr.sbin/nsd/difffile.c
2061
namedb_write_zonefile(nsd, zo);
usr.sbin/nsd/difffile.c
2063
namedb_write_zonefiles(nsd, nsd->options);
usr.sbin/nsd/difffile.c
2068
task_process_add_zone(struct nsd* nsd, udb_base* udb, udb_ptr* last_task,
usr.sbin/nsd/difffile.c
2076
zdname = dname_parse(nsd->db->region, zname);
usr.sbin/nsd/difffile.c
2082
z = find_or_create_zone(nsd->db, zdname, nsd->options, zname, pname);
usr.sbin/nsd/difffile.c
2084
region_recycle(nsd->db->region, (void*)zdname,
usr.sbin/nsd/difffile.c
2090
region_recycle(nsd->db->region, (void*)zdname,
usr.sbin/nsd/difffile.c
2095
namedb_read_zonefile(nsd, z, udb, last_task);
usr.sbin/nsd/difffile.c
2100
task_process_del_zone(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2106
zone = namedb_find_zone(nsd->db, task->zname);
usr.sbin/nsd/difffile.c
2111
nsec3_clear_precompile(nsd->db, zone);
usr.sbin/nsd/difffile.c
2114
delete_zone_rrs(nsd->db, zone);
usr.sbin/nsd/difffile.c
2118
namedb_zone_delete(nsd->db, zone);
usr.sbin/nsd/difffile.c
2120
zone_options_delete(nsd->options, zopt);
usr.sbin/nsd/difffile.c
2124
task_process_add_key(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2131
key_options_add_modify(nsd->options, &key);
usr.sbin/nsd/difffile.c
2136
task_process_del_key(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2141
key_options_remove(nsd->options, name);
usr.sbin/nsd/difffile.c
2145
task_process_cookies(struct nsd* nsd, struct task_list_d* task) {
usr.sbin/nsd/difffile.c
2149
nsd->do_answer_cookie = (int) task->newserial;
usr.sbin/nsd/difffile.c
2150
nsd->cookie_count = (size_t) task->yesno;
usr.sbin/nsd/difffile.c
2151
memmove(nsd->cookie_secrets, task->zname, sizeof(nsd->cookie_secrets));
usr.sbin/nsd/difffile.c
2152
explicit_bzero(task->zname, sizeof(nsd->cookie_secrets));
usr.sbin/nsd/difffile.c
2156
task_process_add_pattern(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2164
pattern_options_add_modify(nsd->options, pat);
usr.sbin/nsd/difffile.c
2169
task_process_del_pattern(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2173
pattern_options_remove(nsd->options, name);
usr.sbin/nsd/difffile.c
2177
task_process_opt_change(struct nsd* nsd, struct task_list_d* task)
usr.sbin/nsd/difffile.c
2181
nsd->options->rrl_ratelimit = task->oldserial;
usr.sbin/nsd/difffile.c
2182
nsd->options->rrl_whitelist_ratelimit = task->newserial;
usr.sbin/nsd/difffile.c
2183
nsd->options->rrl_slip = task->yesno;
usr.sbin/nsd/difffile.c
2184
rrl_set_limit(nsd->options->rrl_ratelimit, nsd->options->rrl_whitelist_ratelimit,
usr.sbin/nsd/difffile.c
2185
nsd->options->rrl_slip);
usr.sbin/nsd/difffile.c
2187
(void)nsd; (void)task;
usr.sbin/nsd/difffile.c
2193
task_process_zonestat_inc(struct nsd* nsd, udb_base* udb, udb_ptr *last_task,
usr.sbin/nsd/difffile.c
2197
nsd->zonestatdesired = (unsigned)task->oldserial;
usr.sbin/nsd/difffile.c
2199
task_new_zonestat_inc(udb, last_task, nsd->zonestatdesired);
usr.sbin/nsd/difffile.c
2204
task_process_apply_xfr(struct nsd* nsd, udb_base* udb, udb_ptr* task)
usr.sbin/nsd/difffile.c
2212
zone = namedb_find_zone(nsd->db, TASKLIST(task)->zname);
usr.sbin/nsd/difffile.c
2222
df = xfrd_open_xfrfile(nsd, TASKLIST(task)->yesno, "r");
usr.sbin/nsd/difffile.c
2232
switch(apply_ixfr_for_zone(nsd, zone, df, nsd->options, udb,
usr.sbin/nsd/difffile.c
2254
void task_process_in_reload(struct nsd* nsd, udb_base* udb, udb_ptr *last_task,
usr.sbin/nsd/difffile.c
2259
task_process_expire(nsd->db, TASKLIST(task));
usr.sbin/nsd/difffile.c
2262
task_process_checkzones(nsd, udb, last_task, TASKLIST(task));
usr.sbin/nsd/difffile.c
2265
task_process_writezones(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2271
task_process_add_zone(nsd, udb, last_task, TASKLIST(task));
usr.sbin/nsd/difffile.c
2274
task_process_del_zone(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2277
task_process_add_key(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2280
task_process_del_key(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2283
task_process_add_pattern(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2286
task_process_del_pattern(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2289
task_process_opt_change(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
2293
task_process_zonestat_inc(nsd, udb, last_task, TASKLIST(task));
usr.sbin/nsd/difffile.c
2297
task_process_cookies(nsd, TASKLIST(task));
usr.sbin/nsd/difffile.c
61
struct nsd* nsd, uint64_t filenumber)
usr.sbin/nsd/difffile.c
63
FILE* df = xfrd_open_xfrfile(nsd, filenumber, seq_nr?"a":"w");
usr.sbin/nsd/difffile.h
158
void task_process_apply_xfr(struct nsd* nsd, udb_base* udb, udb_ptr *task);
usr.sbin/nsd/difffile.h
159
void task_process_in_reload(struct nsd* nsd, udb_base* udb, udb_ptr *last_task,
usr.sbin/nsd/difffile.h
16
struct nsd;
usr.sbin/nsd/difffile.h
34
struct nsd* nsd, uint64_t filenumber);
usr.sbin/nsd/difffile.h
42
const char* log_msg, struct nsd* nsd, uint64_t filenumber);
usr.sbin/nsd/difffile.h
49
uint8_t commit, struct nsd* nsd, uint64_t filenumber);
usr.sbin/nsd/difffile.h
74
int apply_ixfr_for_zone(struct nsd* nsd, zone_type* zone, FILE* in,
usr.sbin/nsd/dnstap/dnstap_collector.c
116
void dt_collector_destroy(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
119
free(nsd->dt_collector_fd_recv);
usr.sbin/nsd/dnstap/dnstap_collector.c
120
nsd->dt_collector_fd_recv = NULL;
usr.sbin/nsd/dnstap/dnstap_collector.c
121
if (nsd->dt_collector_fd_send < nsd->dt_collector_fd_swap)
usr.sbin/nsd/dnstap/dnstap_collector.c
122
free(nsd->dt_collector_fd_send);
usr.sbin/nsd/dnstap/dnstap_collector.c
124
free(nsd->dt_collector_fd_swap);
usr.sbin/nsd/dnstap/dnstap_collector.c
125
nsd->dt_collector_fd_send = NULL;
usr.sbin/nsd/dnstap/dnstap_collector.c
126
nsd->dt_collector_fd_swap = NULL;
usr.sbin/nsd/dnstap/dnstap_collector.c
131
void dt_collector_close(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
143
fd_send = nsd->dt_collector_fd_send < nsd->dt_collector_fd_swap
usr.sbin/nsd/dnstap/dnstap_collector.c
144
? nsd->dt_collector_fd_send : nsd->dt_collector_fd_swap;
usr.sbin/nsd/dnstap/dnstap_collector.c
146
if(nsd->dt_collector_fd_recv[i] != -1) {
usr.sbin/nsd/dnstap/dnstap_collector.c
147
close(nsd->dt_collector_fd_recv[i]);
usr.sbin/nsd/dnstap/dnstap_collector.c
148
nsd->dt_collector_fd_recv[i] = -1;
usr.sbin/nsd/dnstap/dnstap_collector.c
284
static void dt_init_dnstap(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
288
if(nsd->chrootdir && nsd->chrootdir[0]) {
usr.sbin/nsd/dnstap/dnstap_collector.c
289
int l = strlen(nsd->chrootdir)-1; /* ends in trailing slash */
usr.sbin/nsd/dnstap/dnstap_collector.c
290
if (nsd->options->dnstap_socket_path &&
usr.sbin/nsd/dnstap/dnstap_collector.c
291
nsd->options->dnstap_socket_path[0] == '/' &&
usr.sbin/nsd/dnstap/dnstap_collector.c
292
strncmp(nsd->options->dnstap_socket_path,
usr.sbin/nsd/dnstap/dnstap_collector.c
293
nsd->chrootdir, l) == 0)
usr.sbin/nsd/dnstap/dnstap_collector.c
294
nsd->options->dnstap_socket_path += l;
usr.sbin/nsd/dnstap/dnstap_collector.c
297
dt_col->dt_env = dt_create(nsd->options->dnstap_socket_path,
usr.sbin/nsd/dnstap/dnstap_collector.c
298
nsd->options->dnstap_ip, num_workers, nsd->options->dnstap_tls,
usr.sbin/nsd/dnstap/dnstap_collector.c
299
nsd->options->dnstap_tls_server_name,
usr.sbin/nsd/dnstap/dnstap_collector.c
300
nsd->options->dnstap_tls_cert_bundle,
usr.sbin/nsd/dnstap/dnstap_collector.c
301
nsd->options->dnstap_tls_client_key_file,
usr.sbin/nsd/dnstap/dnstap_collector.c
302
nsd->options->dnstap_tls_client_cert_file);
usr.sbin/nsd/dnstap/dnstap_collector.c
307
dt_apply_cfg(dt_col->dt_env, nsd->options);
usr.sbin/nsd/dnstap/dnstap_collector.c
312
static void dt_collector_cleanup(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
320
dt_collector_close(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
330
dt_collector_destroy(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
331
daemon_remote_delete(nsd->rc); /* ssl-delete secret keys */
usr.sbin/nsd/dnstap/dnstap_collector.c
332
nsd_options_destroy(nsd->options);
usr.sbin/nsd/dnstap/dnstap_collector.c
333
region_destroy(nsd->region);
usr.sbin/nsd/dnstap/dnstap_collector.c
338
static void dt_attach_events(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
365
nsd->dt_collector_fd_recv[i], EV_PERSIST|EV_READ,
usr.sbin/nsd/dnstap/dnstap_collector.c
388
static void dt_collector_run(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
392
dt_init_dnstap(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
393
dt_attach_events(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
40
struct dt_collector* dt_collector_create(struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
402
dt_collector_cleanup(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
406
void dt_collector_start(struct dt_collector* dt_col, struct nsd* nsd)
usr.sbin/nsd/dnstap/dnstap_collector.c
421
assert(nsd->dt_collector_fd_send < nsd->dt_collector_fd_swap);
usr.sbin/nsd/dnstap/dnstap_collector.c
422
fd_send = nsd->dt_collector_fd_send < nsd->dt_collector_fd_swap
usr.sbin/nsd/dnstap/dnstap_collector.c
423
? nsd->dt_collector_fd_send : nsd->dt_collector_fd_swap;
usr.sbin/nsd/dnstap/dnstap_collector.c
440
udb_base_free_keep_mmap(nsd->task[0]);
usr.sbin/nsd/dnstap/dnstap_collector.c
441
udb_base_free_keep_mmap(nsd->task[1]);
usr.sbin/nsd/dnstap/dnstap_collector.c
442
namedb_close(nsd->db);
usr.sbin/nsd/dnstap/dnstap_collector.c
444
dt_collector_run(dt_col, nsd);
usr.sbin/nsd/dnstap/dnstap_collector.c
45
dt_col->count = nsd->child_count * 2;
usr.sbin/nsd/dnstap/dnstap_collector.c
455
if(nsd->dt_collector_fd_recv[i] != -1) {
usr.sbin/nsd/dnstap/dnstap_collector.c
456
close(nsd->dt_collector_fd_recv[i]);
usr.sbin/nsd/dnstap/dnstap_collector.c
457
nsd->dt_collector_fd_recv[i] = -1;
usr.sbin/nsd/dnstap/dnstap_collector.c
542
void dt_collector_submit_auth_query(struct nsd* nsd,
usr.sbin/nsd/dnstap/dnstap_collector.c
552
if(!nsd->dt_collector) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
553
if(!nsd->options->dnstap_log_auth_query_messages) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
554
if(nsd->dt_collector_fd_send[nsd->this_child->child_num] == -1) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
558
if(!prep_send_data(nsd->dt_collector->send_buffer, 0, local_addr, addr, addrlen,
usr.sbin/nsd/dnstap/dnstap_collector.c
563
if(attempt_to_send(nsd->dt_collector_fd_send[nsd->this_child->child_num],
usr.sbin/nsd/dnstap/dnstap_collector.c
564
buffer_begin(nsd->dt_collector->send_buffer),
usr.sbin/nsd/dnstap/dnstap_collector.c
565
buffer_remaining(nsd->dt_collector->send_buffer))) {
usr.sbin/nsd/dnstap/dnstap_collector.c
568
close(nsd->dt_collector_fd_send[nsd->this_child->child_num]);
usr.sbin/nsd/dnstap/dnstap_collector.c
569
nsd->dt_collector_fd_send[nsd->this_child->child_num] = -1;
usr.sbin/nsd/dnstap/dnstap_collector.c
573
void dt_collector_submit_auth_response(struct nsd* nsd,
usr.sbin/nsd/dnstap/dnstap_collector.c
584
if(!nsd->dt_collector) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
585
if(!nsd->options->dnstap_log_auth_response_messages) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
586
if(nsd->dt_collector_fd_send[nsd->this_child->child_num] == -1) return;
usr.sbin/nsd/dnstap/dnstap_collector.c
59
nsd->dt_collector_fd_send = (int*)xalloc_array_zero(dt_col->count,
usr.sbin/nsd/dnstap/dnstap_collector.c
590
if(!prep_send_data(nsd->dt_collector->send_buffer, 1, local_addr, addr, addrlen,
usr.sbin/nsd/dnstap/dnstap_collector.c
595
if(attempt_to_send(nsd->dt_collector_fd_send[nsd->this_child->child_num],
usr.sbin/nsd/dnstap/dnstap_collector.c
596
buffer_begin(nsd->dt_collector->send_buffer),
usr.sbin/nsd/dnstap/dnstap_collector.c
597
buffer_remaining(nsd->dt_collector->send_buffer))) {
usr.sbin/nsd/dnstap/dnstap_collector.c
600
close(nsd->dt_collector_fd_send[nsd->this_child->child_num]);
usr.sbin/nsd/dnstap/dnstap_collector.c
601
nsd->dt_collector_fd_send[nsd->this_child->child_num] = -1;
usr.sbin/nsd/dnstap/dnstap_collector.c
61
nsd->dt_collector_fd_recv = (int*)xalloc_array_zero(dt_col->count,
usr.sbin/nsd/dnstap/dnstap_collector.c
94
nsd->dt_collector_fd_recv[i] = sv[0];
usr.sbin/nsd/dnstap/dnstap_collector.c
95
nsd->dt_collector_fd_send[i] = sv[1];
usr.sbin/nsd/dnstap/dnstap_collector.c
97
nsd->dt_collector_fd_swap = nsd->dt_collector_fd_send + nsd->child_count;
usr.sbin/nsd/dnstap/dnstap_collector.h
13
struct nsd;
usr.sbin/nsd/dnstap/dnstap_collector.h
59
struct dt_collector* dt_collector_create(struct nsd* nsd);
usr.sbin/nsd/dnstap/dnstap_collector.h
61
void dt_collector_destroy(struct dt_collector* dt_col, struct nsd* nsd);
usr.sbin/nsd/dnstap/dnstap_collector.h
63
void dt_collector_close(struct dt_collector* dt_col, struct nsd* nsd);
usr.sbin/nsd/dnstap/dnstap_collector.h
65
void dt_collector_start(struct dt_collector* dt_col, struct nsd* nsd);
usr.sbin/nsd/dnstap/dnstap_collector.h
71
void dt_collector_submit_auth_query(struct nsd* nsd,
usr.sbin/nsd/dnstap/dnstap_collector.h
85
void dt_collector_submit_auth_response(struct nsd* nsd,
usr.sbin/nsd/edns.c
104
if(nsd->do_answer_cookie) {
usr.sbin/nsd/edns.c
134
query_type* query, nsd_type* nsd)
usr.sbin/nsd/edns.c
183
edns, query, nsd))
usr.sbin/nsd/edns.c
245
void cookie_verify(query_type *q, struct nsd* nsd, uint32_t *now_p) {
usr.sbin/nsd/edns.c
293
nsd->cookie_secrets[0].cookie_secret, hash, 8);
usr.sbin/nsd/edns.c
303
i < (int)nsd->cookie_count && i < NSD_COOKIE_HISTORY_SIZE;
usr.sbin/nsd/edns.c
306
nsd->cookie_secrets[i].cookie_secret, hash, 8);
usr.sbin/nsd/edns.c
314
void cookie_create(query_type *q, struct nsd* nsd, uint32_t *now_p)
usr.sbin/nsd/edns.c
335
siphash(q->edns.cookie, 32, nsd->cookie_secrets[0].cookie_secret, hash, 8);
usr.sbin/nsd/edns.c
339
siphash(q->edns.cookie, 20, nsd->cookie_secrets[0].cookie_secret, hash, 8);
usr.sbin/nsd/edns.c
343
siphash(q->edns.cookie, 20, nsd->cookie_secrets[0].cookie_secret, hash, 8);
usr.sbin/nsd/edns.c
84
edns_record_type* edns, struct query* query, nsd_type* nsd)
usr.sbin/nsd/edns.c
91
if(nsd->nsid_len > 0) {
usr.sbin/nsd/edns.c
96
edns->opt_reserved_space += OPT_HDR + nsd->nsid_len;
usr.sbin/nsd/edns.h
108
void cookie_verify(struct query *q, struct nsd* nsd, uint32_t *now_p);
usr.sbin/nsd/edns.h
109
void cookie_create(struct query *q, struct nsd* nsd, uint32_t *now_p);
usr.sbin/nsd/edns.h
14
struct nsd;
usr.sbin/nsd/edns.h
98
struct query* q, struct nsd* nsd);
usr.sbin/nsd/ipc.c
129
data->nsd->mode = NSD_SHUTDOWN;
usr.sbin/nsd/ipc.c
136
data->nsd->signal_hint_reload = 1;
usr.sbin/nsd/ipc.c
140
data->nsd->mode = mode;
usr.sbin/nsd/ipc.c
143
data->nsd->signal_hint_stats = 1;
usr.sbin/nsd/ipc.c
146
data->nsd->signal_hint_child = 1;
usr.sbin/nsd/ipc.c
187
child_is_done(struct nsd* nsd, int fd)
usr.sbin/nsd/ipc.c
191
for(i=0; i<nsd->child_count; ++i)
usr.sbin/nsd/ipc.c
192
if(nsd->children[i].child_fd == fd) {
usr.sbin/nsd/ipc.c
193
nsd->children[i].child_fd = -1;
usr.sbin/nsd/ipc.c
194
nsd->children[i].handler->fd = -1;
usr.sbin/nsd/ipc.c
195
if(nsd->children[i].need_to_exit) {
usr.sbin/nsd/ipc.c
197
(int)nsd->children[i].pid));
usr.sbin/nsd/ipc.c
198
nsd->children[i].has_exited = 1;
usr.sbin/nsd/ipc.c
202
(int)nsd->children[i].pid);
usr.sbin/nsd/ipc.c
208
nsd->children[i].pid = -1;
usr.sbin/nsd/ipc.c
209
nsd->restart_children = 1;
usr.sbin/nsd/ipc.c
212
parent_check_all_children_exited(nsd);
usr.sbin/nsd/ipc.c
318
child_is_done(data->nsd, handler->fd);
usr.sbin/nsd/ipc.c
324
data->nsd->mode = mode;
usr.sbin/nsd/ipc.c
327
data->nsd->signal_hint_stats = 1;
usr.sbin/nsd/ipc.c
33
static void ipc_child_quit(struct nsd* nsd) ATTR_NORETURN;
usr.sbin/nsd/ipc.c
330
data->nsd->signal_hint_child = 1;
usr.sbin/nsd/ipc.c
340
parent_check_all_children_exited(struct nsd* nsd)
usr.sbin/nsd/ipc.c
343
for(i=0; i < nsd->child_count; i++) {
usr.sbin/nsd/ipc.c
344
if(!nsd->children[i].need_to_exit)
usr.sbin/nsd/ipc.c
346
if(!nsd->children[i].has_exited)
usr.sbin/nsd/ipc.c
349
nsd->mode = NSD_QUIT_SYNC;
usr.sbin/nsd/ipc.c
36
ipc_child_quit(struct nsd* nsd)
usr.sbin/nsd/ipc.c
361
struct nsd *nsd = (struct nsd*) handler->user_data;
usr.sbin/nsd/ipc.c
378
nsd->reload_failed = 1;
usr.sbin/nsd/ipc.c
385
for(i=0; i < nsd->child_count; i++) {
usr.sbin/nsd/ipc.c
386
nsd->children[i].need_to_exit = 1;
usr.sbin/nsd/ipc.c
387
if(nsd->children[i].pid > 0 &&
usr.sbin/nsd/ipc.c
388
nsd->children[i].child_fd != -1) {
usr.sbin/nsd/ipc.c
389
nsd->children[i].need_to_send_QUIT = 1;
usr.sbin/nsd/ipc.c
39
nsd->mode = NSD_QUIT;
usr.sbin/nsd/ipc.c
390
nsd->children[i].handler->event_types
usr.sbin/nsd/ipc.c
393
if(nsd->children[i].child_fd == -1)
usr.sbin/nsd/ipc.c
394
nsd->children[i].has_exited = 1;
usr.sbin/nsd/ipc.c
397
parent_check_all_children_exited(nsd);
usr.sbin/nsd/ipc.c
40
service_remaining_tcp(nsd);
usr.sbin/nsd/ipc.c
411
udb_ptr_unlink(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
412
task_process_sync(xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
415
udb_ptr_init(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
416
udb_ptr_set(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask], p);
usr.sbin/nsd/ipc.c
42
bind8_stats(nsd);
usr.sbin/nsd/ipc.c
425
xfrd->nsd->mytask = 1 - xfrd->nsd->mytask;
usr.sbin/nsd/ipc.c
426
task_remap(xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
427
udb_ptr_init(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
428
assert(udb_base_get_userdata(xfrd->nsd->task[xfrd->nsd->mytask])->data == 0);
usr.sbin/nsd/ipc.c
47
rrl_deinit(nsd->this_child->child_num);
usr.sbin/nsd/ipc.c
49
event_base_free(nsd->event_base);
usr.sbin/nsd/ipc.c
50
region_destroy(nsd->server_region);
usr.sbin/nsd/ipc.c
52
server_shutdown(nsd);
usr.sbin/nsd/ipc.c
567
xfrd->nsd->task[1-xfrd->nsd->mytask]);
usr.sbin/nsd/ipc.c
587
task_new_check_zonefiles(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/ipc.c
76
ipc_child_quit(data->nsd);
usr.sbin/nsd/ipc.c
82
data->nsd->mode = mode;
usr.sbin/nsd/ipc.c
85
ipc_child_quit(data->nsd);
usr.sbin/nsd/ipc.c
89
server_close_all_sockets(data->nsd->udp, data->nsd->ifs);
usr.sbin/nsd/ipc.c
90
server_close_all_sockets(data->nsd->tcp, data->nsd->ifs);
usr.sbin/nsd/ipc.c
96
ipc_child_quit(data->nsd);
usr.sbin/nsd/ipc.h
15
struct nsd;
usr.sbin/nsd/ipc.h
28
struct nsd *nsd;
usr.sbin/nsd/ipc.h
39
struct nsd *nsd;
usr.sbin/nsd/ipc.h
81
void parent_check_all_children_exited(struct nsd* nsd);
usr.sbin/nsd/ixfr.c
1050
void ixfr_store_finish(struct ixfr_store* ixfr_store, struct nsd* nsd,
usr.sbin/nsd/ixfr.c
1070
ixfr_store->zone->ixfr = zone_ixfr_create(nsd);
usr.sbin/nsd/ixfr.c
1472
struct zone_ixfr* zone_ixfr_create(struct nsd* nsd)
usr.sbin/nsd/ixfr.c
1475
ixfr->data = rbtree_create(nsd->region, &ixfrcompare);
usr.sbin/nsd/ixfr.c
2554
static int ixfr_data_read(struct nsd* nsd, struct zone* zone,
usr.sbin/nsd/ixfr.c
2628
zone->ixfr = zone_ixfr_create(nsd);
usr.sbin/nsd/ixfr.c
2645
static int ixfr_read_one_more_file(struct nsd* nsd, struct zone* zone,
usr.sbin/nsd/ixfr.c
2655
return ixfr_data_read(nsd, zone, ixfrfile, dest_serial, file_num);
usr.sbin/nsd/ixfr.c
2658
void ixfr_read_from_file(struct nsd* nsd, struct zone* zone, const char* zfile)
usr.sbin/nsd/ixfr.c
2671
while(ixfr_read_one_more_file(nsd, zone, zfile, num_files, &serial)) {
usr.sbin/nsd/ixfr.c
742
query_state_type query_ixfr(struct nsd *nsd, struct query *query)
usr.sbin/nsd/ixfr.c
771
STATUP(nsd, rixfr);
usr.sbin/nsd/ixfr.c
788
zone = namedb_find_zone(nsd->db, query->qname);
usr.sbin/nsd/ixfr.c
794
ZTATUP(nsd, zone, rixfr);
usr.sbin/nsd/ixfr.c
826
return query_axfr(nsd, query, 0);
usr.sbin/nsd/ixfr.c
835
return query_axfr(nsd, query, 0);
usr.sbin/nsd/ixfr.c
845
return query_axfr(nsd, query, 0);
usr.sbin/nsd/ixfr.h
12
struct nsd;
usr.sbin/nsd/ixfr.h
156
void ixfr_store_finish(struct ixfr_store* ixfr_store, struct nsd* nsd,
usr.sbin/nsd/ixfr.h
205
struct zone_ixfr* zone_ixfr_create(struct nsd* nsd);
usr.sbin/nsd/ixfr.h
231
void ixfr_read_from_file(struct nsd* nsd, struct zone* zone, const char* zfile);
usr.sbin/nsd/ixfr.h
93
query_state_type query_ixfr(struct nsd *nsd, struct query *query);
usr.sbin/nsd/ixfrcreate.c
1005
ixfr_read_from_file(nsd, zone, zfile);
usr.sbin/nsd/ixfrcreate.c
1009
int append_mem, struct nsd* nsd, const char* zfile,
usr.sbin/nsd/ixfrcreate.c
1039
ixfr_readup_exist(zone, nsd, zfile);
usr.sbin/nsd/ixfrcreate.c
1063
ixfr_create_finishup(ixfrcr, store, zone, append_mem, nsd, zfile,
usr.sbin/nsd/ixfrcreate.c
948
struct nsd* nsd, const char* zfile, uint32_t ixfr_number)
usr.sbin/nsd/ixfrcreate.c
986
ixfr_store_finish(store, nsd, log_buf);
usr.sbin/nsd/ixfrcreate.c
992
void ixfr_readup_exist(struct zone* zone, struct nsd* nsd,
usr.sbin/nsd/ixfrcreate.h
14
struct nsd;
usr.sbin/nsd/ixfrcreate.h
46
int append_mem, struct nsd* nsd, const char* zfile,
usr.sbin/nsd/ixfrcreate.h
59
void ixfr_readup_exist(struct zone* zone, struct nsd* nsd, const char* zfile);
usr.sbin/nsd/metrics.c
202
nsd.uid != (uid_t)-1) {
usr.sbin/nsd/metrics.c
203
if(chown(ip, nsd.uid, nsd.gid) == -1)
usr.sbin/nsd/metrics.c
205
(unsigned)nsd.uid, (unsigned)nsd.gid,
usr.sbin/nsd/metrics.c
308
metrics->xfrd->nsd->options->metrics_path,
usr.sbin/nsd/metrics.c
553
for(i=0; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/metrics.c
555
(int)i, (unsigned long)xfrd->nsd->children[i].query_count);
usr.sbin/nsd/metrics.c
561
timeval_subtract(&uptime, now, &xfrd->nsd->metrics->boot_time);
usr.sbin/nsd/metrics.c
573
timeval_subtract(&elapsed, now, &xfrd->nsd->metrics->stats_time);
usr.sbin/nsd/metrics.c
600
xfrd->nsd->options->zonelist_off);
usr.sbin/nsd/metrics.c
605
xfrd->nsd->options->region));
usr.sbin/nsd/namedb.h
23
struct nsd;
usr.sbin/nsd/namedb.h
388
void namedb_check_zonefiles(struct nsd* nsd, struct nsd_options* opt,
usr.sbin/nsd/namedb.h
390
void namedb_check_zonefile(struct nsd* nsd, struct udb_base* taskudb,
usr.sbin/nsd/namedb.h
393
void namedb_read_zonefile(struct nsd* nsd, struct zone* zone,
usr.sbin/nsd/namedb.h
404
void namedb_write_zonefile(struct nsd* nsd, struct zone_options* zopt);
usr.sbin/nsd/namedb.h
405
void namedb_write_zonefiles(struct nsd* nsd, struct nsd_options* options);
usr.sbin/nsd/nsd-checkzone.c
111
namedb_close(nsd->db);
usr.sbin/nsd/nsd-checkzone.c
115
int writepid(struct nsd * ATTR_UNUSED(nsd))
usr.sbin/nsd/nsd-checkzone.c
122
void bind8_stats(struct nsd * ATTR_UNUSED(nsd))
usr.sbin/nsd/nsd-checkzone.c
142
struct nsd nsd;
usr.sbin/nsd/nsd-checkzone.c
143
memset(&nsd, 0, sizeof(nsd));
usr.sbin/nsd/nsd-checkzone.c
181
nsd.options = nsd_options_create(region_create_custom(xalloc, free,
usr.sbin/nsd/nsd-checkzone.c
185
verbosity = nsd.options->verbosity;
usr.sbin/nsd/nsd-checkzone.c
187
check_zone(&nsd, argv[0], argv[1], print_zone ? stdout : NULL,
usr.sbin/nsd/nsd-checkzone.c
189
region_destroy(nsd.options->region);
usr.sbin/nsd/nsd-checkzone.c
28
struct nsd nsd;
usr.sbin/nsd/nsd-checkzone.c
47
check_zone(struct nsd* nsd, const char* name, const char* fname, FILE *out,
usr.sbin/nsd/nsd-checkzone.c
57
nsd->db = namedb_open(nsd->options);
usr.sbin/nsd/nsd-checkzone.c
58
dname = dname_parse(nsd->options->region, name);
usr.sbin/nsd/nsd-checkzone.c
63
zo = zone_options_create(nsd->options->region);
usr.sbin/nsd/nsd-checkzone.c
67
zone = namedb_zone_create(nsd->db, dname, zo);
usr.sbin/nsd/nsd-checkzone.c
70
errors = zonec_read(nsd->db, nsd->db->domains, name, oldzone, zone);
usr.sbin/nsd/nsd-checkzone.c
79
delete_zone_rrs(nsd->db, zone);
usr.sbin/nsd/nsd-checkzone.c
83
errors = zonec_read(nsd->db, nsd->db->domains, name, fname, zone);
usr.sbin/nsd/nsd-checkzone.c
88
namedb_close(nsd->db);
usr.sbin/nsd/nsd-checkzone.c
89
region_destroy(nsd->options->region);
usr.sbin/nsd/nsd-checkzone.c
94
if(!ixfr_create_perform(ixfrcr, zone, 0, nsd, fname,
usr.sbin/nsd/nsd-checkzone.c
97
namedb_close(nsd->db);
usr.sbin/nsd/nsd-checkzone.c
98
region_destroy(nsd->options->region);
usr.sbin/nsd/nsd-mem.c
195
struct nsd nsd;
usr.sbin/nsd/nsd-mem.c
207
memset(&nsd, 0, sizeof(nsd));
usr.sbin/nsd/nsd-mem.c
208
nsd.region = region_create(xalloc, free);
usr.sbin/nsd/nsd-mem.c
209
nsd.db = db = namedb_open(opt);
usr.sbin/nsd/nsd-mem.c
216
namedb_read_zonefile(&nsd, zone, taskudb, &last_task);
usr.sbin/nsd/nsd-mem.c
229
region_destroy(nsd.region);
usr.sbin/nsd/nsd-mem.c
258
struct nsd;
usr.sbin/nsd/nsd-mem.c
259
int writepid(struct nsd * ATTR_UNUSED(nsd))
usr.sbin/nsd/nsd-mem.c
266
void bind8_stats(struct nsd * ATTR_UNUSED(nsd))
usr.sbin/nsd/nsd-mem.c
282
struct nsd nsd;
usr.sbin/nsd/nsd-mem.c
284
memset(&nsd, 0, sizeof(nsd));
usr.sbin/nsd/nsd-mem.c
29
struct nsd nsd;
usr.sbin/nsd/nsd-mem.c
314
nsd.options = nsd_options_create(region_create_custom(xalloc, free,
usr.sbin/nsd/nsd-mem.c
317
tsig_init(nsd.options->region);
usr.sbin/nsd/nsd-mem.c
318
if(!parse_options_file(nsd.options, configfile, NULL, NULL, NULL)) {
usr.sbin/nsd/nsd-mem.c
321
if(!parse_zone_list_file(nsd.options)) {
usr.sbin/nsd/nsd-mem.c
323
nsd.options->zonelistfile);
usr.sbin/nsd/nsd-mem.c
326
verbosity = nsd.options->verbosity;
usr.sbin/nsd/nsd-mem.c
329
if(nsd.chrootdir == 0) nsd.chrootdir = nsd.options->chroot;
usr.sbin/nsd/nsd-mem.c
332
if(nsd.chrootdir == 0) nsd.chrootdir = CHROOTDIR;
usr.sbin/nsd/nsd-mem.c
335
if(nsd.options->zonesdir && nsd.options->zonesdir[0]) {
usr.sbin/nsd/nsd-mem.c
336
if(chdir(nsd.options->zonesdir)) {
usr.sbin/nsd/nsd-mem.c
338
nsd.options->zonesdir, strerror(errno));
usr.sbin/nsd/nsd-mem.c
341
nsd.options->zonesdir));
usr.sbin/nsd/nsd-mem.c
346
if (nsd.chrootdir && strlen(nsd.chrootdir)) {
usr.sbin/nsd/nsd-mem.c
347
if(chdir(nsd.chrootdir)) {
usr.sbin/nsd/nsd-mem.c
351
nsd.chrootdir));
usr.sbin/nsd/nsd-mem.c
355
check_mem(nsd.options);
usr.sbin/nsd/nsd.c
1010
nsd.st_period = atoi(optarg);
usr.sbin/nsd/nsd.c
1017
nsd.chrootdir = optarg;
usr.sbin/nsd/nsd.c
1023
nsd.username = optarg;
usr.sbin/nsd/nsd.c
1055
if (strlen(nsd.identity) > UCHAR_MAX) {
usr.sbin/nsd/nsd.c
1057
(unsigned) strlen(nsd.identity));
usr.sbin/nsd/nsd.c
1059
if(!tsig_init(nsd.region))
usr.sbin/nsd/nsd.c
1064
if(!parse_options_file(nsd.options, configfile, NULL, NULL, NULL)) {
usr.sbin/nsd/nsd.c
1067
if(!parse_zone_list_file(nsd.options)) {
usr.sbin/nsd/nsd.c
1069
nsd.options->zonelistfile);
usr.sbin/nsd/nsd.c
1071
if(nsd.options->do_ip4 && !nsd.options->do_ip6) {
usr.sbin/nsd/nsd.c
1075
if(nsd.options->do_ip6 && !nsd.options->do_ip4) {
usr.sbin/nsd/nsd.c
1080
verbosity = nsd.options->verbosity;
usr.sbin/nsd/nsd.c
1085
if(nsd.options->debug_mode) nsd.debug=1;
usr.sbin/nsd/nsd.c
1086
if(!nsd.pidfile)
usr.sbin/nsd/nsd.c
1088
if(nsd.options->pidfile)
usr.sbin/nsd/nsd.c
1089
nsd.pidfile = nsd.options->pidfile;
usr.sbin/nsd/nsd.c
1091
nsd.pidfile = PIDFILE;
usr.sbin/nsd/nsd.c
1093
if(strcmp(nsd.identity, hostname)==0 || strcmp(nsd.identity,IDENTITY)==0)
usr.sbin/nsd/nsd.c
1095
if(nsd.options->identity)
usr.sbin/nsd/nsd.c
1096
nsd.identity = nsd.options->identity;
usr.sbin/nsd/nsd.c
1098
if(nsd.options->version) {
usr.sbin/nsd/nsd.c
1099
nsd.version = nsd.options->version;
usr.sbin/nsd/nsd.c
1101
if (nsd.options->logfile && !nsd.log_filename) {
usr.sbin/nsd/nsd.c
1102
nsd.log_filename = nsd.options->logfile;
usr.sbin/nsd/nsd.c
1104
if(nsd.child_count == 0) {
usr.sbin/nsd/nsd.c
1105
nsd.child_count = nsd.options->server_count;
usr.sbin/nsd/nsd.c
1112
if (nsd.options->xdp_interface) {
usr.sbin/nsd/nsd.c
1113
int res = ethtool_channels_get(nsd.options->xdp_interface);
usr.sbin/nsd/nsd.c
1119
nsd.xdp.xdp_server.queue_count = 1;
usr.sbin/nsd/nsd.c
1121
nsd.xdp.xdp_server.queue_count = res;
usr.sbin/nsd/nsd.c
1124
if (nsd.child_count < nsd.xdp.xdp_server.queue_count) {
usr.sbin/nsd/nsd.c
1128
nsd.xdp.xdp_server.queue_count);
usr.sbin/nsd/nsd.c
1129
nsd.child_count = nsd.xdp.xdp_server.queue_count;
usr.sbin/nsd/nsd.c
1135
if(nsd.options->reuseport && nsd.child_count > 1) {
usr.sbin/nsd/nsd.c
1136
nsd.reuseport = nsd.child_count;
usr.sbin/nsd/nsd.c
1139
if(nsd.maximum_tcp_count == 0) {
usr.sbin/nsd/nsd.c
1140
nsd.maximum_tcp_count = nsd.options->tcp_count;
usr.sbin/nsd/nsd.c
1142
nsd.tcp_timeout = nsd.options->tcp_timeout;
usr.sbin/nsd/nsd.c
1143
nsd.tcp_query_count = nsd.options->tcp_query_count;
usr.sbin/nsd/nsd.c
1144
nsd.tcp_mss = nsd.options->tcp_mss;
usr.sbin/nsd/nsd.c
1145
nsd.outgoing_tcp_mss = nsd.options->outgoing_tcp_mss;
usr.sbin/nsd/nsd.c
1146
nsd.ipv4_edns_size = nsd.options->ipv4_edns_size;
usr.sbin/nsd/nsd.c
1147
nsd.ipv6_edns_size = nsd.options->ipv6_edns_size;
usr.sbin/nsd/nsd.c
1149
nsd.tls_ctx = NULL;
usr.sbin/nsd/nsd.c
1150
nsd.tls_auth_ctx = NULL;
usr.sbin/nsd/nsd.c
1155
if(nsd.options->port != 0) {
usr.sbin/nsd/nsd.c
1156
udp_port = nsd.options->port;
usr.sbin/nsd/nsd.c
1157
tcp_port = nsd.options->port;
usr.sbin/nsd/nsd.c
1163
if(nsd.options->verify_port != 0) {
usr.sbin/nsd/nsd.c
1164
verify_port = nsd.options->verify_port;
usr.sbin/nsd/nsd.c
1169
if(nsd.st_period == 0) {
usr.sbin/nsd/nsd.c
1170
nsd.st_period = nsd.options->statistics;
usr.sbin/nsd/nsd.c
1174
if(nsd.chrootdir == 0) nsd.chrootdir = nsd.options->chroot;
usr.sbin/nsd/nsd.c
1177
if(nsd.chrootdir == 0) nsd.chrootdir = CHROOTDIR;
usr.sbin/nsd/nsd.c
1180
if(nsd.username == 0) {
usr.sbin/nsd/nsd.c
1181
if(nsd.options->username) nsd.username = nsd.options->username;
usr.sbin/nsd/nsd.c
1182
else nsd.username = USER;
usr.sbin/nsd/nsd.c
1184
if(nsd.options->zonesdir && nsd.options->zonesdir[0]) {
usr.sbin/nsd/nsd.c
1185
if(chdir(nsd.options->zonesdir)) {
usr.sbin/nsd/nsd.c
1187
nsd.options->zonesdir, strerror(errno));
usr.sbin/nsd/nsd.c
1190
nsd.options->zonesdir));
usr.sbin/nsd/nsd.c
1194
edns_init_data(&nsd.edns_ipv4, nsd.options->ipv4_edns_size);
usr.sbin/nsd/nsd.c
1197
edns_init_data(&nsd.edns_ipv6, nsd.options->ipv6_edns_size);
usr.sbin/nsd/nsd.c
1199
if (nsd.options->ipv6_edns_size < IPV6_MIN_MTU)
usr.sbin/nsd/nsd.c
1200
edns_init_data(&nsd.edns_ipv6, nsd.options->ipv6_edns_size);
usr.sbin/nsd/nsd.c
1202
edns_init_data(&nsd.edns_ipv6, IPV6_MIN_MTU);
usr.sbin/nsd/nsd.c
1206
reconfig_cookies(&nsd, nsd.options);
usr.sbin/nsd/nsd.c
1208
if (nsd.nsid_len == 0 && nsd.options->nsid) {
usr.sbin/nsd/nsd.c
1209
if (strlen(nsd.options->nsid) % 2 != 0) {
usr.sbin/nsd/nsd.c
1212
nsd.nsid = xalloc(strlen(nsd.options->nsid) / 2);
usr.sbin/nsd/nsd.c
1213
nsd.nsid_len = strlen(nsd.options->nsid) / 2;
usr.sbin/nsd/nsd.c
1214
if (hex_pton(nsd.options->nsid, nsd.nsid, nsd.nsid_len) == -1) {
usr.sbin/nsd/nsd.c
1215
error("hex string cannot be parsed '%s' in NSID.", nsd.options->nsid);
usr.sbin/nsd/nsd.c
1218
edns_init_nsid(&nsd.edns_ipv4, nsd.nsid_len);
usr.sbin/nsd/nsd.c
1220
edns_init_nsid(&nsd.edns_ipv6, nsd.nsid_len);
usr.sbin/nsd/nsd.c
1224
nsd.use_cpu_affinity = (nsd.options->cpu_affinity != NULL);
usr.sbin/nsd/nsd.c
1225
if(nsd.use_cpu_affinity) {
usr.sbin/nsd/nsd.c
1227
struct cpu_option* opt = nsd.options->cpu_affinity;
usr.sbin/nsd/nsd.c
1233
nsd.cpuset = cpuset_create();
usr.sbin/nsd/nsd.c
1234
region_add_cleanup(nsd.region, free_cpuset, nsd.cpuset);
usr.sbin/nsd/nsd.c
1241
cpuset_set((cpuid_t)opt->cpu, nsd.cpuset);
usr.sbin/nsd/nsd.c
1244
if(nsd.use_cpu_affinity) {
usr.sbin/nsd/nsd.c
1247
= nsd.options->service_cpu_affinity;
usr.sbin/nsd/nsd.c
1256
nsd.xfrd_cpuset = cpuset_create();
usr.sbin/nsd/nsd.c
1257
region_add_cleanup(nsd.region, free_cpuset, nsd.xfrd_cpuset);
usr.sbin/nsd/nsd.c
1259
cpuset_or(nsd.xfrd_cpuset,
usr.sbin/nsd/nsd.c
1260
nsd.cpuset);
usr.sbin/nsd/nsd.c
1262
if(!cpuset_isset(cpu, nsd.cpuset)) {
usr.sbin/nsd/nsd.c
1266
cpuset_set((cpuid_t)cpu, nsd.xfrd_cpuset);
usr.sbin/nsd/nsd.c
1272
nsd.children = (struct nsd_child *) region_alloc_array(
usr.sbin/nsd/nsd.c
1273
nsd.region, nsd.child_count, sizeof(struct nsd_child));
usr.sbin/nsd/nsd.c
1274
for (i = 0; i < nsd.child_count; ++i) {
usr.sbin/nsd/nsd.c
1275
nsd.children[i].kind = NSD_SERVER_BOTH;
usr.sbin/nsd/nsd.c
1276
nsd.children[i].pid = -1;
usr.sbin/nsd/nsd.c
1277
nsd.children[i].child_fd = -1;
usr.sbin/nsd/nsd.c
1278
nsd.children[i].parent_fd = -1;
usr.sbin/nsd/nsd.c
1279
nsd.children[i].handler = NULL;
usr.sbin/nsd/nsd.c
1280
nsd.children[i].need_to_send_STATS = 0;
usr.sbin/nsd/nsd.c
1281
nsd.children[i].need_to_send_QUIT = 0;
usr.sbin/nsd/nsd.c
1282
nsd.children[i].need_to_exit = 0;
usr.sbin/nsd/nsd.c
1283
nsd.children[i].has_exited = 0;
usr.sbin/nsd/nsd.c
1285
nsd.children[i].query_count = 0;
usr.sbin/nsd/nsd.c
1289
if(nsd.use_cpu_affinity) {
usr.sbin/nsd/nsd.c
1292
= nsd.options->service_cpu_affinity;
usr.sbin/nsd/nsd.c
1302
nsd.children[i].cpuset = cpuset_create();
usr.sbin/nsd/nsd.c
1303
region_add_cleanup(nsd.region,
usr.sbin/nsd/nsd.c
1305
nsd.children[i].cpuset);
usr.sbin/nsd/nsd.c
1307
cpuset_or(nsd.children[i].cpuset,
usr.sbin/nsd/nsd.c
1308
nsd.cpuset);
usr.sbin/nsd/nsd.c
1310
if(!cpuset_isset((cpuid_t)cpu, nsd.cpuset)) {
usr.sbin/nsd/nsd.c
1317
(cpuid_t)cpu, nsd.children[i].cpuset);
usr.sbin/nsd/nsd.c
1323
nsd.this_child = NULL;
usr.sbin/nsd/nsd.c
1325
resolve_interface_names(nsd.options);
usr.sbin/nsd/nsd.c
1326
figure_sockets(&nsd.udp, &nsd.tcp, &nsd.ifs,
usr.sbin/nsd/nsd.c
1327
nsd.options->ip_addresses, NULL, udp_port, tcp_port, &hints);
usr.sbin/nsd/nsd.c
1329
if(nsd.options->verify_enable) {
usr.sbin/nsd/nsd.c
1330
figure_sockets(&nsd.verify_udp, &nsd.verify_tcp, &nsd.verify_ifs,
usr.sbin/nsd/nsd.c
1331
nsd.options->verify_ip_addresses, "localhost", verify_port, verify_port, &hints);
usr.sbin/nsd/nsd.c
1336
nsd.gid = getgid();
usr.sbin/nsd/nsd.c
1337
nsd.uid = getuid();
usr.sbin/nsd/nsd.c
1340
if (*nsd.username) {
usr.sbin/nsd/nsd.c
1341
if (isdigit((unsigned char)*nsd.username)) {
usr.sbin/nsd/nsd.c
1343
nsd.uid = strtol(nsd.username, &t, 10);
usr.sbin/nsd/nsd.c
1348
nsd.gid = strtol(t, &t, 10);
usr.sbin/nsd/nsd.c
1351
if ((pwd = getpwuid(nsd.uid)) == NULL) {
usr.sbin/nsd/nsd.c
1352
error("user id %u does not exist.", (unsigned) nsd.uid);
usr.sbin/nsd/nsd.c
1354
nsd.gid = pwd->pw_gid;
usr.sbin/nsd/nsd.c
1359
if ((pwd = getpwnam(nsd.username)) == NULL) {
usr.sbin/nsd/nsd.c
1360
error("user '%s' does not exist.", nsd.username);
usr.sbin/nsd/nsd.c
1362
nsd.uid = pwd->pw_uid;
usr.sbin/nsd/nsd.c
1363
nsd.gid = pwd->pw_gid;
usr.sbin/nsd/nsd.c
1371
key_options_tsig_add(nsd.options);
usr.sbin/nsd/nsd.c
1374
append_trailing_slash(&nsd.options->xfrdir, nsd.options->region);
usr.sbin/nsd/nsd.c
1376
if (nsd.chrootdir && nsd.chrootdir[0]) {
usr.sbin/nsd/nsd.c
1378
append_trailing_slash(&nsd.chrootdir, nsd.region);
usr.sbin/nsd/nsd.c
1379
append_trailing_slash(&nsd.options->zonesdir, nsd.options->region);
usr.sbin/nsd/nsd.c
1383
if (strncmp(nsd.options->zonesdir, nsd.chrootdir, strlen(nsd.chrootdir)) != 0) {
usr.sbin/nsd/nsd.c
1385
nsd.options->zonesdir, nsd.chrootdir);
usr.sbin/nsd/nsd.c
1386
} else if (!file_inside_chroot(nsd.pidfile, nsd.chrootdir)) {
usr.sbin/nsd/nsd.c
1388
nsd.pidfile, nsd.chrootdir);
usr.sbin/nsd/nsd.c
1389
} else if (!file_inside_chroot(nsd.options->xfrdfile, nsd.chrootdir)) {
usr.sbin/nsd/nsd.c
1391
nsd.options->xfrdfile, nsd.chrootdir);
usr.sbin/nsd/nsd.c
1392
} else if (!file_inside_chroot(nsd.options->zonelistfile, nsd.chrootdir)) {
usr.sbin/nsd/nsd.c
1394
nsd.options->zonelistfile, nsd.chrootdir);
usr.sbin/nsd/nsd.c
1395
} else if (!file_inside_chroot(nsd.options->xfrdir, nsd.chrootdir)) {
usr.sbin/nsd/nsd.c
1397
nsd.options->xfrdir, nsd.chrootdir);
usr.sbin/nsd/nsd.c
1402
log_open(LOG_PID, FACILITY, nsd.log_filename);
usr.sbin/nsd/nsd.c
1403
if(nsd.options->log_only_syslog)
usr.sbin/nsd/nsd.c
1405
else if (!nsd.log_filename)
usr.sbin/nsd/nsd.c
1407
else if (nsd.uid && nsd.gid) {
usr.sbin/nsd/nsd.c
1408
if(chown(nsd.log_filename, nsd.uid, nsd.gid) != 0)
usr.sbin/nsd/nsd.c
1410
nsd.log_filename, strerror(errno)));
usr.sbin/nsd/nsd.c
1421
if(nsd.pidfile && nsd.pidfile[0] &&
usr.sbin/nsd/nsd.c
1422
!(nsd.username && nsd.username[0])) {
usr.sbin/nsd/nsd.c
1423
if ((oldpid = readpid(nsd.pidfile)) == -1) {
usr.sbin/nsd/nsd.c
1426
nsd.pidfile, strerror(errno));
usr.sbin/nsd/nsd.c
1445
if(nsd.use_cpu_affinity) {
usr.sbin/nsd/nsd.c
1446
set_cpu_affinity(nsd.cpuset);
usr.sbin/nsd/nsd.c
1452
nsd.xdp.xdp_server.region = nsd.region;
usr.sbin/nsd/nsd.c
1453
nsd.xdp.xdp_server.interface_name = nsd.options->xdp_interface;
usr.sbin/nsd/nsd.c
1454
nsd.xdp.xdp_server.bpf_prog_filename = nsd.options->xdp_program_path;
usr.sbin/nsd/nsd.c
1455
nsd.xdp.xdp_server.bpf_prog_should_load = nsd.options->xdp_program_load;
usr.sbin/nsd/nsd.c
1456
nsd.xdp.xdp_server.bpf_bpffs_path = nsd.options->xdp_bpffs_path;
usr.sbin/nsd/nsd.c
1457
nsd.xdp.xdp_server.force_copy = nsd.options->xdp_force_copy;
usr.sbin/nsd/nsd.c
1458
nsd.xdp.xdp_server.nsd = &nsd;
usr.sbin/nsd/nsd.c
1460
if (!nsd.options->xdp_interface)
usr.sbin/nsd/nsd.c
1467
print_sockets(nsd.udp, nsd.tcp, nsd.ifs);
usr.sbin/nsd/nsd.c
1484
nsd.mode = NSD_RUN;
usr.sbin/nsd/nsd.c
1485
nsd.signal_hint_child = 0;
usr.sbin/nsd/nsd.c
1486
nsd.signal_hint_reload = 0;
usr.sbin/nsd/nsd.c
1487
nsd.signal_hint_reload_hup = 0;
usr.sbin/nsd/nsd.c
1488
nsd.signal_hint_quit = 0;
usr.sbin/nsd/nsd.c
1489
nsd.signal_hint_shutdown = 0;
usr.sbin/nsd/nsd.c
1490
nsd.signal_hint_stats = 0;
usr.sbin/nsd/nsd.c
1491
nsd.signal_hint_statsusr = 0;
usr.sbin/nsd/nsd.c
1492
nsd.quit_sync_done = 0;
usr.sbin/nsd/nsd.c
1495
if (server_init(&nsd) != 0) {
usr.sbin/nsd/nsd.c
1500
if(nsd.options->control_enable || (nsd.options->tls_service_key && nsd.options->tls_service_key[0])) {
usr.sbin/nsd/nsd.c
1504
if(nsd.options->control_enable) {
usr.sbin/nsd/nsd.c
1506
if(!(nsd.rc = daemon_remote_create(nsd.options)))
usr.sbin/nsd/nsd.c
1510
if(nsd.options->metrics_enable) {
usr.sbin/nsd/nsd.c
1511
if(!(nsd.metrics = daemon_metrics_create(nsd.options)))
usr.sbin/nsd/nsd.c
1516
if(nsd.options->tls_service_key && nsd.options->tls_service_key[0]
usr.sbin/nsd/nsd.c
1517
&& nsd.options->tls_service_pem && nsd.options->tls_service_pem[0]) {
usr.sbin/nsd/nsd.c
1519
if(!(nsd.tls_ctx = server_tls_ctx_create(&nsd, NULL,
usr.sbin/nsd/nsd.c
1520
nsd.options->tls_service_ocsp)))
usr.sbin/nsd/nsd.c
1523
if(nsd.options->tls_auth_port) {
usr.sbin/nsd/nsd.c
1524
if(!(nsd.tls_auth_ctx = server_tls_ctx_create(&nsd,
usr.sbin/nsd/nsd.c
1525
(char*)nsd.options->tls_cert_bundle,
usr.sbin/nsd/nsd.c
1526
nsd.options->tls_service_ocsp)))
usr.sbin/nsd/nsd.c
1533
if (!nsd.debug) {
usr.sbin/nsd/nsd.c
1546
server_close_all_sockets(nsd.udp, nsd.ifs);
usr.sbin/nsd/nsd.c
1547
server_close_all_sockets(nsd.tcp, nsd.ifs);
usr.sbin/nsd/nsd.c
1566
nsd.pid = getpid();
usr.sbin/nsd/nsd.c
1570
if (*nsd.username) {
usr.sbin/nsd/nsd.c
1575
if (setusercontext(NULL, pwd, nsd.uid,
usr.sbin/nsd/nsd.c
1578
nsd.username, strerror(errno));
usr.sbin/nsd/nsd.c
1585
if (nsd.chrootdir && nsd.chrootdir[0]) {
usr.sbin/nsd/nsd.c
1586
int l = strlen(nsd.chrootdir)-1; /* ends in trailing slash */
usr.sbin/nsd/nsd.c
1588
if (file_inside_chroot(nsd.log_filename, nsd.chrootdir))
usr.sbin/nsd/nsd.c
1589
nsd.file_rotation_ok = 1;
usr.sbin/nsd/nsd.c
1592
nsd.options->zonesdir += l;
usr.sbin/nsd/nsd.c
1593
if (nsd.log_filename){
usr.sbin/nsd/nsd.c
1594
if (nsd.log_filename[0] == '/')
usr.sbin/nsd/nsd.c
1595
nsd.log_filename += l;
usr.sbin/nsd/nsd.c
1597
if (nsd.pidfile && nsd.pidfile[0] == '/')
usr.sbin/nsd/nsd.c
1598
nsd.pidfile += l;
usr.sbin/nsd/nsd.c
1599
if (nsd.options->xfrdfile[0] == '/')
usr.sbin/nsd/nsd.c
1600
nsd.options->xfrdfile += l;
usr.sbin/nsd/nsd.c
1601
if (nsd.options->zonelistfile[0] == '/')
usr.sbin/nsd/nsd.c
1602
nsd.options->zonelistfile += l;
usr.sbin/nsd/nsd.c
1603
if (nsd.options->xfrdir[0] == '/')
usr.sbin/nsd/nsd.c
1604
nsd.options->xfrdir += l;
usr.sbin/nsd/nsd.c
1608
cfg_parser->chroot = nsd.chrootdir;
usr.sbin/nsd/nsd.c
1614
if (chroot(nsd.chrootdir)) {
usr.sbin/nsd/nsd.c
1621
nsd.chrootdir));
usr.sbin/nsd/nsd.c
1623
if(nsd.options->zonesdir && nsd.options->zonesdir[0]) {
usr.sbin/nsd/nsd.c
1624
if(chdir(nsd.options->zonesdir)) {
usr.sbin/nsd/nsd.c
1626
nsd.options->zonesdir, strerror(errno));
usr.sbin/nsd/nsd.c
1629
nsd.options->zonesdir));
usr.sbin/nsd/nsd.c
1634
nsd.file_rotation_ok = 1;
usr.sbin/nsd/nsd.c
1637
nsd.log_filename, nsd.file_rotation_ok?"en":"dis"));
usr.sbin/nsd/nsd.c
1640
if (writepid(&nsd) == -1) {
usr.sbin/nsd/nsd.c
1642
nsd.pidfile, strerror(errno));
usr.sbin/nsd/nsd.c
1646
if (nsd.options->xdp_interface) {
usr.sbin/nsd/nsd.c
1649
if (xdp_server_init(&nsd.xdp.xdp_server)) {
usr.sbin/nsd/nsd.c
1651
nsd.options->xdp_interface = NULL;
usr.sbin/nsd/nsd.c
1658
if (*nsd.username) {
usr.sbin/nsd/nsd.c
1660
if (nsd.options->xdp_interface) {
usr.sbin/nsd/nsd.c
1669
nsd.options->xdp_interface = NULL;
usr.sbin/nsd/nsd.c
1675
if(initgroups(nsd.username, nsd.gid) != 0)
usr.sbin/nsd/nsd.c
1677
nsd.username, strerror(errno));
usr.sbin/nsd/nsd.c
1682
if(setresgid(nsd.gid,nsd.gid,nsd.gid) != 0)
usr.sbin/nsd/nsd.c
1684
if(setregid(nsd.gid,nsd.gid) != 0)
usr.sbin/nsd/nsd.c
1686
if(setgid(nsd.gid) != 0)
usr.sbin/nsd/nsd.c
1689
nsd.username, strerror(errno));
usr.sbin/nsd/nsd.c
1692
if(setresuid(nsd.uid,nsd.uid,nsd.uid) != 0)
usr.sbin/nsd/nsd.c
1694
if(setreuid(nsd.uid,nsd.uid) != 0)
usr.sbin/nsd/nsd.c
1696
if(setuid(nsd.uid) != 0)
usr.sbin/nsd/nsd.c
1699
nsd.username, strerror(errno));
usr.sbin/nsd/nsd.c
1702
nsd.username));
usr.sbin/nsd/nsd.c
1706
if (nsd.options->xdp_interface) {
usr.sbin/nsd/nsd.c
1717
xfrd_make_tempdir(&nsd);
usr.sbin/nsd/nsd.c
1719
options_zonestatnames_create(nsd.options);
usr.sbin/nsd/nsd.c
1720
server_zonestat_alloc(&nsd);
usr.sbin/nsd/nsd.c
1723
server_stat_alloc(&nsd);
usr.sbin/nsd/nsd.c
1725
if(nsd.server_kind == NSD_SERVER_MAIN) {
usr.sbin/nsd/nsd.c
1726
server_prepare_xfrd(&nsd);
usr.sbin/nsd/nsd.c
1729
server_start_xfrd(&nsd, 0, 0);
usr.sbin/nsd/nsd.c
173
size = ((INET6_ADDRSTRLEN + 1 + 5 + 1) * nsd.verify_ifs) + 1;
usr.sbin/nsd/nsd.c
1731
zone_list_close(nsd.options);
usr.sbin/nsd/nsd.c
1733
if(nsd.options->dnstap_enable) {
usr.sbin/nsd/nsd.c
1734
nsd.dt_collector = dt_collector_create(&nsd);
usr.sbin/nsd/nsd.c
1735
dt_collector_start(nsd.dt_collector, &nsd);
usr.sbin/nsd/nsd.c
1739
if (server_prepare(&nsd) != 0) {
usr.sbin/nsd/nsd.c
1740
unlinkpid(nsd.pidfile, nsd.username);
usr.sbin/nsd/nsd.c
1744
if(nsd.server_kind == NSD_SERVER_MAIN) {
usr.sbin/nsd/nsd.c
1745
server_send_soa_xfrd(&nsd, 0);
usr.sbin/nsd/nsd.c
1750
argv0, PACKAGE_STRING, (int) nsd.pid);
usr.sbin/nsd/nsd.c
1752
if (nsd.server_kind == NSD_SERVER_MAIN) {
usr.sbin/nsd/nsd.c
1753
server_main(&nsd);
usr.sbin/nsd/nsd.c
1755
server_child(&nsd);
usr.sbin/nsd/nsd.c
177
for(i = 0; i < nsd.verify_ifs; i++) {
usr.sbin/nsd/nsd.c
179
(struct sockaddr *)&nsd.verify_udp[i].addr.ai_addr,
usr.sbin/nsd/nsd.c
180
nsd.verify_udp[i].addr.ai_addrlen,
usr.sbin/nsd/nsd.c
195
if (nsd.verify_udp[i].addr.ai_family == AF_INET6 && !ip6) {
usr.sbin/nsd/nsd.c
204
assert(nsd.verify_udp[i].addr.ai_family == AF_INET);
usr.sbin/nsd/nsd.c
280
sock->servers = xalloc_zero(nsd_bitset_size(nsd.child_count));
usr.sbin/nsd/nsd.c
281
region_add_cleanup(nsd.region, free, sock->servers);
usr.sbin/nsd/nsd.c
282
nsd_bitset_init(sock->servers, nsd.child_count);
usr.sbin/nsd/nsd.c
286
for(i = 0; i < (int)nsd.child_count; i++) {
usr.sbin/nsd/nsd.c
299
} else if(server->last > (int)nsd.child_count) {
usr.sbin/nsd/nsd.c
313
} else if(server->last > (int)nsd.child_count) {
usr.sbin/nsd/nsd.c
354
region_add_cleanup(nsd.region, free, *udp);
usr.sbin/nsd/nsd.c
355
region_add_cleanup(nsd.region, free, *tcp);
usr.sbin/nsd/nsd.c
495
region_add_cleanup(nsd.region, free, *udp);
usr.sbin/nsd/nsd.c
496
region_add_cleanup(nsd.region, free, *tcp);
usr.sbin/nsd/nsd.c
635
writepid(struct nsd *nsd)
usr.sbin/nsd/nsd.c
640
if(!nsd->pidfile || !nsd->pidfile[0])
usr.sbin/nsd/nsd.c
643
snprintf(pidbuf, sizeof(pidbuf), "%lu\n", (unsigned long) nsd->pid);
usr.sbin/nsd/nsd.c
645
if((fd = open(nsd->pidfile, O_WRONLY | O_CREAT | O_TRUNC
usr.sbin/nsd/nsd.c
651
nsd->pidfile, strerror(errno));
usr.sbin/nsd/nsd.c
661
nsd->pidfile, strerror(errno));
usr.sbin/nsd/nsd.c
667
nsd->pidfile);
usr.sbin/nsd/nsd.c
72
struct nsd nsd;
usr.sbin/nsd/nsd.c
733
if (nsd.server_kind != NSD_SERVER_MAIN) {
usr.sbin/nsd/nsd.c
736
nsd.signal_hint_child = 1;
usr.sbin/nsd/nsd.c
742
nsd.signal_hint_quit = 1;
usr.sbin/nsd/nsd.c
746
nsd.signal_hint_statsusr = 1;
usr.sbin/nsd/nsd.c
757
nsd.signal_hint_child = 1;
usr.sbin/nsd/nsd.c
760
nsd.signal_hint_reload_hup = 1;
usr.sbin/nsd/nsd.c
763
nsd.signal_hint_stats = 1;
usr.sbin/nsd/nsd.c
770
nsd.signal_hint_statsusr = 1;
usr.sbin/nsd/nsd.c
774
nsd.signal_hint_statsusr = 1;
usr.sbin/nsd/nsd.c
779
nsd.signal_hint_shutdown = 1;
usr.sbin/nsd/nsd.c
790
bind8_stats (struct nsd *nsd)
usr.sbin/nsd/nsd.c
799
if(!nsd->st_period)
usr.sbin/nsd/nsd.c
803
memcpy(&st, nsd->st, sizeof(st));
usr.sbin/nsd/nsd.c
804
stats_subtract(&st, &nsd->stat_proc);
usr.sbin/nsd/nsd.c
826
if (nsd->server_kind == NSD_SERVER_MAIN
usr.sbin/nsd/nsd.c
881
memset(&nsd, 0, sizeof(struct nsd));
usr.sbin/nsd/nsd.c
882
nsd.region = region_create(xalloc, free);
usr.sbin/nsd/nsd.c
883
nsd.pidfile = 0;
usr.sbin/nsd/nsd.c
884
nsd.server_kind = NSD_SERVER_MAIN;
usr.sbin/nsd/nsd.c
888
nsd.identity = 0;
usr.sbin/nsd/nsd.c
889
nsd.version = VERSION;
usr.sbin/nsd/nsd.c
890
nsd.username = 0;
usr.sbin/nsd/nsd.c
891
nsd.chrootdir = 0;
usr.sbin/nsd/nsd.c
892
nsd.nsid = NULL;
usr.sbin/nsd/nsd.c
893
nsd.nsid_len = 0;
usr.sbin/nsd/nsd.c
894
nsd.do_answer_cookie = 0;
usr.sbin/nsd/nsd.c
895
nsd.cookie_count = 0;
usr.sbin/nsd/nsd.c
896
nsd.cookie_secrets_source = COOKIE_SECRETS_NONE;
usr.sbin/nsd/nsd.c
897
nsd.cookie_secrets_filename = NULL;
usr.sbin/nsd/nsd.c
899
nsd.child_count = 0;
usr.sbin/nsd/nsd.c
900
nsd.maximum_tcp_count = 0;
usr.sbin/nsd/nsd.c
901
nsd.current_tcp_count = 0;
usr.sbin/nsd/nsd.c
902
nsd.file_rotation_ok = 0;
usr.sbin/nsd/nsd.c
907
nsd.identity = hostname;
usr.sbin/nsd/nsd.c
912
nsd.identity = IDENTITY;
usr.sbin/nsd/nsd.c
916
nsd.options = nsd_options_create(region_create_custom(xalloc, free,
usr.sbin/nsd/nsd.c
939
nsd.options->region, sizeof(*ip));
usr.sbin/nsd/nsd.c
941
nsd.options->region, optarg);
usr.sbin/nsd/nsd.c
942
ip->next = nsd.options->ip_addresses;
usr.sbin/nsd/nsd.c
943
nsd.options->ip_addresses = ip;
usr.sbin/nsd/nsd.c
949
nsd.debug = 1;
usr.sbin/nsd/nsd.c
957
nsd.identity = optarg;
usr.sbin/nsd/nsd.c
960
if (nsd.nsid_len != 0) {
usr.sbin/nsd/nsd.c
965
nsd.nsid = xalloc(strlen(optarg+6));
usr.sbin/nsd/nsd.c
966
nsd.nsid_len = strlen(optarg+6);
usr.sbin/nsd/nsd.c
967
memmove(nsd.nsid, optarg+6, nsd.nsid_len);
usr.sbin/nsd/nsd.c
972
nsd.nsid = xalloc(strlen(optarg) / 2);
usr.sbin/nsd/nsd.c
973
nsd.nsid_len = strlen(optarg) / 2;
usr.sbin/nsd/nsd.c
974
if (hex_pton(optarg, nsd.nsid, nsd.nsid_len) == -1) {
usr.sbin/nsd/nsd.c
980
nsd.log_filename = optarg;
usr.sbin/nsd/nsd.c
987
nsd.child_count = i;
usr.sbin/nsd/nsd.c
995
nsd.maximum_tcp_count = i;
usr.sbin/nsd/nsd.c
999
nsd.pidfile = optarg;
usr.sbin/nsd/nsd.h
102
#define STATUP(nsd, stc) /* Nothing */
usr.sbin/nsd/nsd.h
103
#define STATUP2(nsd, stc, i) /* Nothing */
usr.sbin/nsd/nsd.h
109
#define ZTATUP(nsd, zone, stc) ( \
usr.sbin/nsd/nsd.h
110
(zone && zone->zonestatid < nsd->zonestatsizenow) ? \
usr.sbin/nsd/nsd.h
111
nsd->zonestatnow[zone->zonestatid].stc++ \
usr.sbin/nsd/nsd.h
113
#define ZTATUP2(nsd, zone, stc, i) ( \
usr.sbin/nsd/nsd.h
114
(zone && zone->zonestatid < nsd->zonestatsizenow) ? \
usr.sbin/nsd/nsd.h
115
(nsd->zonestatnow[zone->zonestatid].stc[(i) <= (LASTELEM(nsd->zonestatnow[zone->zonestatid].stc) - 1) ? i : LASTELEM(nsd->zonestatnow[zone->zonestatid].stc)]++ ) \
usr.sbin/nsd/nsd.h
118
#define ZTATUP(nsd, zone, stc) /* Nothing */
usr.sbin/nsd/nsd.h
119
#define ZTATUP2(nsd, zone, stc, i) /* Nothing */
usr.sbin/nsd/nsd.h
225
typedef struct nsd nsd_type;
usr.sbin/nsd/nsd.h
416
extern struct nsd nsd;
usr.sbin/nsd/nsd.h
420
int writepid(struct nsd *nsd);
usr.sbin/nsd/nsd.h
423
void bind8_stats(struct nsd *nsd);
usr.sbin/nsd/nsd.h
426
int server_init(struct nsd *nsd);
usr.sbin/nsd/nsd.h
427
int server_prepare(struct nsd *nsd);
usr.sbin/nsd/nsd.h
428
void server_main(struct nsd *nsd);
usr.sbin/nsd/nsd.h
429
void server_child(struct nsd *nsd);
usr.sbin/nsd/nsd.h
430
void server_shutdown(struct nsd *nsd) ATTR_NORETURN;
usr.sbin/nsd/nsd.h
435
void service_remaining_tcp(struct nsd* nsd);
usr.sbin/nsd/nsd.h
442
void server_zonestat_alloc(struct nsd* nsd);
usr.sbin/nsd/nsd.h
445
void zonestat_remap(struct nsd* nsd, int idx, size_t sz);
usr.sbin/nsd/nsd.h
447
void server_stat_alloc(struct nsd* nsd);
usr.sbin/nsd/nsd.h
449
void server_stat_free(struct nsd* nsd);
usr.sbin/nsd/nsd.h
451
void server_prepare_xfrd(struct nsd *nsd);
usr.sbin/nsd/nsd.h
453
void server_start_xfrd(struct nsd *nsd, int del_db, int reload_active);
usr.sbin/nsd/nsd.h
455
void server_send_soa_xfrd(struct nsd *nsd, int shortsoa);
usr.sbin/nsd/nsd.h
458
SSL_CTX* server_tls_ctx_create(struct nsd *nsd, char* verifypem, char* ocspfile);
usr.sbin/nsd/nsd.h
461
ssize_t block_read(struct nsd* nsd, int s, void* p, ssize_t sz, int timeout);
usr.sbin/nsd/nsd.h
95
#define STATUP(nsd, stc) nsd->st->stc++
usr.sbin/nsd/nsd.h
99
#define STATUP2(nsd, stc, i) nsd->st->stc[(i) <= (LASTELEM(nsd->st->stc) - 1) ? i : LASTELEM(nsd->st->stc)]++
usr.sbin/nsd/options.c
2572
config_make_zonefile(struct zone_options* zone, struct nsd* nsd)
usr.sbin/nsd/options.c
2577
if (nsd->chrootdir && nsd->chrootdir[0] &&
usr.sbin/nsd/options.c
2580
strncmp(zone->pattern->zonefile, nsd->chrootdir,
usr.sbin/nsd/options.c
2581
strlen(nsd->chrootdir)) == 0)
usr.sbin/nsd/options.c
2583
return zone->pattern->zonefile + strlen(nsd->chrootdir) - 1;
usr.sbin/nsd/options.c
2602
if (nsd->chrootdir && nsd->chrootdir[0] && f[0] == '/' &&
usr.sbin/nsd/options.c
2603
strncmp(f, nsd->chrootdir, strlen(nsd->chrootdir)) == 0)
usr.sbin/nsd/options.c
2605
return f + strlen(nsd->chrootdir) - 1;
usr.sbin/nsd/options.h
23
struct nsd;
usr.sbin/nsd/options.h
637
const char* config_make_zonefile(struct zone_options* zone, struct nsd* nsd);
usr.sbin/nsd/query.c
1058
answer_domain(struct nsd* nsd, struct query *q, answer_type *answer,
usr.sbin/nsd/query.c
1141
answer_lookup_zone(nsd, q, answer, closest_match->number,
usr.sbin/nsd/query.c
1171
answer_authoritative(struct nsd *nsd,
usr.sbin/nsd/query.c
1236
(void)namedb_lookup(nsd->db, newname, &closest_match, &closest_encloser);
usr.sbin/nsd/query.c
1252
answer_lookup_zone(nsd, q, answer, newnum,
usr.sbin/nsd/query.c
1349
answer_domain(nsd, q, answer, match, original);
usr.sbin/nsd/query.c
1359
answer_lookup_zone(struct nsd *nsd, struct query *q, answer_type *answer,
usr.sbin/nsd/query.c
1364
q->zone = domain_find_zone(nsd->db, closest_encloser);
usr.sbin/nsd/query.c
1468
if (nsd->options->confine_to_zone &&
usr.sbin/nsd/query.c
1492
zone_type *zone = domain_find_parent_zone(nsd->db, q->zone);
usr.sbin/nsd/query.c
152
query_ratelimit_err(nsd_type* nsd)
usr.sbin/nsd/query.c
155
if(nsd->err_limit_time == now) {
usr.sbin/nsd/query.c
1550
answer_authoritative(nsd, q, answer, domain_number, exact,
usr.sbin/nsd/query.c
1560
answer_query(struct nsd *nsd, struct query *q)
usr.sbin/nsd/query.c
157
if(nsd->err_limit_count++ > ERROR_RATELIMIT)
usr.sbin/nsd/query.c
1570
exact = namedb_lookup(nsd->db, q->qname, &closest_match, &closest_encloser);
usr.sbin/nsd/query.c
1572
answer_lookup_zone(nsd, q, &answer, 0, exact, closest_match,
usr.sbin/nsd/query.c
1574
ZTATUP2(nsd, q->zone, opcode, q->opcode);
usr.sbin/nsd/query.c
1575
ZTATUP2(nsd, q->zone, qtype, q->qtype);
usr.sbin/nsd/query.c
1576
ZTATUP2(nsd, q->zone, qclass, q->qclass);
usr.sbin/nsd/query.c
161
nsd->err_limit_time = now;
usr.sbin/nsd/query.c
1614
query_process(query_type *q, nsd_type *nsd, uint32_t *now_p)
usr.sbin/nsd/query.c
162
nsd->err_limit_count = 1;
usr.sbin/nsd/query.c
1636
if(query_ratelimit_err(nsd))
usr.sbin/nsd/query.c
1638
if(nsd->options->drop_updates && q->opcode == OPCODE_UPDATE)
usr.sbin/nsd/query.c
1644
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1648
STATUP2(nsd, opcode, q->opcode);
usr.sbin/nsd/query.c
1649
STATUP2(nsd, qtype, q->qtype);
usr.sbin/nsd/query.c
1650
STATUP2(nsd, qclass, q->qclass);
usr.sbin/nsd/query.c
1654
return answer_notify(nsd, q);
usr.sbin/nsd/query.c
1656
if(query_ratelimit_err(nsd))
usr.sbin/nsd/query.c
1670
if (edns_parse_record(&q->edns, q->packet, q, nsd)) {
usr.sbin/nsd/query.c
1671
if(process_edns(nsd, q) == NSD_RC_OK) {
usr.sbin/nsd/query.c
1674
query_add_optional(q, nsd, now_p);
usr.sbin/nsd/query.c
168
query_formerr (struct query *query, nsd_type* nsd)
usr.sbin/nsd/query.c
1684
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1692
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1702
if(nscount > 64) return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1705
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
171
if(query_ratelimit_err(nsd))
usr.sbin/nsd/query.c
1722
if (edns_parse_record(&q->edns, q->packet, q, nsd))
usr.sbin/nsd/query.c
1729
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1735
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1742
return query_formerr(q, nsd);
usr.sbin/nsd/query.c
1752
rc = process_edns(nsd, q);
usr.sbin/nsd/query.c
1772
cookie_verify(q, nsd, now_p);
usr.sbin/nsd/query.c
1778
return answer_chaos(nsd, q);
usr.sbin/nsd/query.c
1786
query_state = answer_axfr_ixfr(nsd, q);
usr.sbin/nsd/query.c
1791
if(q->qtype == TYPE_ANY && nsd->options->refuse_any && !q->tcp) {
usr.sbin/nsd/query.c
1796
answer_query(nsd, q);
usr.sbin/nsd/query.c
1802
query_add_optional(query_type *q, nsd_type *nsd, uint32_t *now_p)
usr.sbin/nsd/query.c
1804
struct edns_data *edns = &nsd->edns_ipv4;
usr.sbin/nsd/query.c
1807
edns = &nsd->edns_ipv6;
usr.sbin/nsd/query.c
1851
buffer_write(q->packet, nsd->nsid, nsd->nsid_len);
usr.sbin/nsd/query.c
1875
cookie_create(q, nsd, now_p);
usr.sbin/nsd/query.c
1896
STATUP(nsd, edns);
usr.sbin/nsd/query.c
1897
ZTATUP(nsd, q->zone, edns);
usr.sbin/nsd/query.c
1905
STATUP(nsd, ednserr);
usr.sbin/nsd/query.c
1906
ZTATUP(nsd, q->zone, ednserr);
usr.sbin/nsd/query.c
364
process_edns(nsd_type* nsd, struct query *q)
usr.sbin/nsd/query.c
377
edns_size = nsd->ipv6_edns_size;
usr.sbin/nsd/query.c
380
edns_size = nsd->ipv4_edns_size;
usr.sbin/nsd/query.c
450
answer_notify(struct nsd* nsd, struct query *query)
usr.sbin/nsd/query.c
460
zone_opt = zone_options_find(nsd->options, query->qname);
usr.sbin/nsd/query.c
464
if(!nsd->this_child) /* we are in debug mode or something */
usr.sbin/nsd/query.c
498
int s = nsd->serve2xfrd_fd_send[nsd->this_child->child_num];
usr.sbin/nsd/query.c
55
static void answer_authoritative(struct nsd *nsd,
usr.sbin/nsd/query.c
582
answer_chaos(struct nsd *nsd, query_type *q)
usr.sbin/nsd/query.c
593
if(!nsd->options->hide_identity) {
usr.sbin/nsd/query.c
599
nsd->identity);
usr.sbin/nsd/query.c
612
if(!nsd->options->hide_version) {
usr.sbin/nsd/query.c
618
nsd->version);
usr.sbin/nsd/query.c
64
static void answer_lookup_zone(struct nsd *nsd, struct query *q,
usr.sbin/nsd/query.h
241
query_state_type query_process(query_type *q, nsd_type *nsd, uint32_t *now_p);
usr.sbin/nsd/query.h
254
void query_add_optional(query_type *q, nsd_type *nsd, uint32_t *now_p);
usr.sbin/nsd/remote.c
1047
zone_type* zone = namedb_find_zone(xfrd->nsd->db,
usr.sbin/nsd/remote.c
1185
xfrd->nsd->options->zone_options) {
usr.sbin/nsd/remote.c
1206
task_new_set_verbosity(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1264
(int)xfrd->nsd->options->rrl_ratelimit))
usr.sbin/nsd/remote.c
1288
if(xfrd->nsd->options->zonestatnames->count != xfrd->zonestat_safe)
usr.sbin/nsd/remote.c
1289
task_new_zonestat_inc(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1291
xfrd->nsd->options->zonestatnames->count);
usr.sbin/nsd/remote.c
1316
if(!rbtree_search(xfrd->nsd->options->patterns, arg2)) {
usr.sbin/nsd/remote.c
1329
if( (zopt=zone_options_find(xfrd->nsd->options, dname)) ) {
usr.sbin/nsd/remote.c
1353
task_new_del_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1366
zone_list_del(xfrd->nsd->options, zopt);
usr.sbin/nsd/remote.c
1374
zopt = zone_list_add_or_cat(xfrd->nsd->options, arg, arg2,
usr.sbin/nsd/remote.c
1382
task_new_add_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1384
getzonestatid(xfrd->nsd->options, zopt));
usr.sbin/nsd/remote.c
1419
if(!rbtree_search(xfrd->nsd->options->patterns, arg2)) {
usr.sbin/nsd/remote.c
1432
if( zone_options_find(xfrd->nsd->options, dname) ) {
usr.sbin/nsd/remote.c
1442
zopt = zone_list_add_or_cat(xfrd->nsd->options, arg, arg2,
usr.sbin/nsd/remote.c
1450
task_new_add_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1452
getzonestatid(xfrd->nsd->options, zopt));
usr.sbin/nsd/remote.c
1484
zopt = zone_options_find(xfrd->nsd->options, dname);
usr.sbin/nsd/remote.c
1514
task_new_del_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1529
zone_list_del(xfrd->nsd->options, zopt);
usr.sbin/nsd/remote.c
1613
task_new_del_key(xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task,
usr.sbin/nsd/remote.c
1615
key_options_remove(xfrd->nsd->options, kname);
usr.sbin/nsd/remote.c
1623
key_options_add_modify(xfrd->nsd->options, k);
usr.sbin/nsd/remote.c
1624
task_new_add_key(xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task,
usr.sbin/nsd/remote.c
1632
struct nsd_options* oldopt = xfrd->nsd->options;
usr.sbin/nsd/remote.c
1677
zopt = zone_options_find(xfrd->nsd->options, dname);
usr.sbin/nsd/remote.c
1686
task_new_del_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1700
zone_options_delete(xfrd->nsd->options, zopt);
usr.sbin/nsd/remote.c
1712
xfrd->nsd->options->region);
usr.sbin/nsd/remote.c
1716
zopt->name = region_strdup(xfrd->nsd->options->region,
usr.sbin/nsd/remote.c
1718
zopt->pattern = pattern_options_find(xfrd->nsd->options, pname);
usr.sbin/nsd/remote.c
1721
if(!nsd_options_insert_zone(xfrd->nsd->options, zopt)) {
usr.sbin/nsd/remote.c
1727
task_new_add_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1729
getzonestatid(xfrd->nsd->options, zopt));
usr.sbin/nsd/remote.c
1749
task_new_del_pattern(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1751
pattern_options_remove(xfrd->nsd->options, name);
usr.sbin/nsd/remote.c
1759
pattern_options_add_modify(xfrd->nsd->options, p);
usr.sbin/nsd/remote.c
1760
task_new_add_pattern(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
1946
struct nsd_options* oldopt = xfrd->nsd->options;
usr.sbin/nsd/remote.c
2067
if(xfrd->nsd->options->rrl_ratelimit != newopt->rrl_ratelimit)
usr.sbin/nsd/remote.c
2069
if(xfrd->nsd->options->rrl_whitelist_ratelimit != newopt->rrl_whitelist_ratelimit)
usr.sbin/nsd/remote.c
2071
if(xfrd->nsd->options->rrl_slip != newopt->rrl_slip)
usr.sbin/nsd/remote.c
2101
struct nsd_options* oldopt = xfrd->nsd->options;
usr.sbin/nsd/remote.c
2110
task_new_opt_change(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
2129
xfrd->nsd->cookie_count = 0;
usr.sbin/nsd/remote.c
2130
xfrd->nsd->cookie_secrets_source = COOKIE_SECRETS_NONE;
usr.sbin/nsd/remote.c
2131
reconfig_cookies(xfrd->nsd, newopt);
usr.sbin/nsd/remote.c
2132
task_new_cookies( xfrd->nsd->task[xfrd->nsd->mytask]
usr.sbin/nsd/remote.c
2134
, xfrd->nsd->do_answer_cookie
usr.sbin/nsd/remote.c
2135
, xfrd->nsd->cookie_count
usr.sbin/nsd/remote.c
2136
, xfrd->nsd->cookie_secrets);
usr.sbin/nsd/remote.c
2158
const char* cfgfile = xfrd->nsd->options->configfile;
usr.sbin/nsd/remote.c
2162
if(xfrd->nsd->chrootdir) {
usr.sbin/nsd/remote.c
2163
size_t l = strlen(xfrd->nsd->chrootdir);
usr.sbin/nsd/remote.c
2164
while(l>0 && xfrd->nsd->chrootdir[l-1] == '/')
usr.sbin/nsd/remote.c
2166
if(strncmp(xfrd->nsd->chrootdir, cfgfile, l) != 0) {
usr.sbin/nsd/remote.c
2169
cfgfile, xfrd->nsd->chrootdir);
usr.sbin/nsd/remote.c
2179
xfrd->nsd->options)) {
usr.sbin/nsd/remote.c
2210
const char *chrootdir = xfrd->nsd->chrootdir;
usr.sbin/nsd/remote.c
2211
const char *file = xfrd->nsd->options->configfile;
usr.sbin/nsd/remote.c
2218
xfrd->nsd->options->configfile, xfrd->nsd->chrootdir,
usr.sbin/nsd/remote.c
2227
options, file, print_cfg_err, NULL, xfrd->nsd->options))
usr.sbin/nsd/remote.c
2256
RBTREE_FOR(key, struct key_options*, xfrd->nsd->options->keys) {
usr.sbin/nsd/remote.c
2262
struct key_options* key_opts = key_options_find(xfrd->nsd->options, arg);
usr.sbin/nsd/remote.c
2276
struct region* region = xfrd->nsd->options->region;
usr.sbin/nsd/remote.c
2289
key_opt = key_options_find(xfrd->nsd->options, arg);
usr.sbin/nsd/remote.c
2316
task_new_add_key(xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task,
usr.sbin/nsd/remote.c
2332
region_type* region = xfrd->nsd->options->region;
usr.sbin/nsd/remote.c
2348
if(key_options_find(xfrd->nsd->options, arg)) {
usr.sbin/nsd/remote.c
2406
region_type* region = xfrd->nsd->options->region;
usr.sbin/nsd/remote.c
2426
key_opt = key_options_find(xfrd->nsd->options, arg2);
usr.sbin/nsd/remote.c
2442
task_new_add_pattern(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
2472
key_opt = key_options_find(xfrd->nsd->options, arg);
usr.sbin/nsd/remote.c
2477
RBTREE_FOR(zone, struct zone_options*, xfrd->nsd->options->zone_options)
usr.sbin/nsd/remote.c
2505
can_dump_cookie_secrets(RES* ssl, nsd_type* const nsd)
usr.sbin/nsd/remote.c
2507
if(!nsd->options->cookie_secret_file)
usr.sbin/nsd/remote.c
2510
else if(nsd->cookie_secrets_source == COOKIE_SECRETS_FROM_CONFIG)
usr.sbin/nsd/remote.c
2524
cookie_secret_file_dump_and_reload(RES* ssl, nsd_type* const nsd) {
usr.sbin/nsd/remote.c
2530
if(!nsd->options->cookie_secret_file) {
usr.sbin/nsd/remote.c
2534
else if((f = fopen(nsd->options->cookie_secret_file, "w")) == NULL ) {
usr.sbin/nsd/remote.c
2537
, nsd->options->cookie_secret_file
usr.sbin/nsd/remote.c
2541
for(i = 0; i < nsd->cookie_count; i++) {
usr.sbin/nsd/remote.c
2542
struct cookie_secret const* cs = &nsd->cookie_secrets[i];
usr.sbin/nsd/remote.c
2552
nsd->cookie_secrets_source = COOKIE_SECRETS_FROM_FILE;
usr.sbin/nsd/remote.c
2553
region_str_replace(nsd->region, &nsd->cookie_secrets_filename
usr.sbin/nsd/remote.c
2554
, nsd->options->cookie_secret_file);
usr.sbin/nsd/remote.c
2555
task_new_cookies(xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task,
usr.sbin/nsd/remote.c
2556
nsd->do_answer_cookie, nsd->cookie_count, nsd->cookie_secrets);
usr.sbin/nsd/remote.c
2564
nsd_type* nsd = xrfd->nsd;
usr.sbin/nsd/remote.c
2569
if(!can_dump_cookie_secrets(ssl, xfrd->nsd))
usr.sbin/nsd/remote.c
2572
if(nsd->cookie_count <= 1 ) {
usr.sbin/nsd/remote.c
2576
backup_cookie_count = nsd->cookie_count;
usr.sbin/nsd/remote.c
2577
memcpy( backup_cookie_secrets, nsd->cookie_secrets
usr.sbin/nsd/remote.c
2579
activate_cookie_secret(nsd);
usr.sbin/nsd/remote.c
2580
if(!cookie_secret_file_dump_and_reload(ssl, nsd)) {
usr.sbin/nsd/remote.c
2581
memcpy( nsd->cookie_secrets, backup_cookie_secrets
usr.sbin/nsd/remote.c
2583
nsd->cookie_count = backup_cookie_count;
usr.sbin/nsd/remote.c
2590
nsd_type* nsd = xrfd->nsd;
usr.sbin/nsd/remote.c
2595
if(!can_dump_cookie_secrets(ssl, xfrd->nsd))
usr.sbin/nsd/remote.c
2598
if(nsd->cookie_count <= 1 ) {
usr.sbin/nsd/remote.c
2602
backup_cookie_count = nsd->cookie_count;
usr.sbin/nsd/remote.c
2603
memcpy( backup_cookie_secrets, nsd->cookie_secrets
usr.sbin/nsd/remote.c
2605
drop_cookie_secret(nsd);
usr.sbin/nsd/remote.c
2606
if(!cookie_secret_file_dump_and_reload(ssl, nsd)) {
usr.sbin/nsd/remote.c
2607
memcpy( nsd->cookie_secrets, backup_cookie_secrets
usr.sbin/nsd/remote.c
2609
nsd->cookie_count = backup_cookie_count;
usr.sbin/nsd/remote.c
2616
nsd_type* nsd = xrfd->nsd;
usr.sbin/nsd/remote.c
2621
if(!can_dump_cookie_secrets(ssl, xfrd->nsd))
usr.sbin/nsd/remote.c
2643
backup_cookie_count = nsd->cookie_count;
usr.sbin/nsd/remote.c
2644
memcpy( backup_cookie_secrets, nsd->cookie_secrets
usr.sbin/nsd/remote.c
2646
if(nsd->cookie_secrets_source != COOKIE_SECRETS_FROM_FILE
usr.sbin/nsd/remote.c
2647
&& nsd->cookie_secrets_source != COOKIE_SECRETS_FROM_CONFIG) {
usr.sbin/nsd/remote.c
2648
nsd->cookie_count = 0;
usr.sbin/nsd/remote.c
2650
add_cookie_secret(nsd, secret);
usr.sbin/nsd/remote.c
2652
if(!cookie_secret_file_dump_and_reload(ssl, nsd)) {
usr.sbin/nsd/remote.c
2655
, nsd->options->cookie_secret_file);
usr.sbin/nsd/remote.c
2656
memcpy( nsd->cookie_secrets, backup_cookie_secrets
usr.sbin/nsd/remote.c
2658
nsd->cookie_count = backup_cookie_count;
usr.sbin/nsd/remote.c
2665
nsd_type* nsd = xrfd->nsd;
usr.sbin/nsd/remote.c
2670
switch(nsd->cookie_secrets_source){
usr.sbin/nsd/remote.c
2679
, nsd->cookie_secrets_filename))
usr.sbin/nsd/remote.c
2691
for(i = 0; (size_t)i < nsd->cookie_count; i++) {
usr.sbin/nsd/remote.c
2692
struct cookie_secret const* cs = &nsd->cookie_secrets[i];
usr.sbin/nsd/remote.c
2700
else if (nsd->cookie_count == 2)
usr.sbin/nsd/remote.c
3115
RBTREE_FOR(n, struct zonestatname*, xfrd->nsd->options->zonestatnames){
usr.sbin/nsd/remote.c
3139
if(n->id+1 < xfrd->nsd->options->zonestatnames->count)
usr.sbin/nsd/remote.c
3140
resize_zonestat(xfrd, xfrd->nsd->options->zonestatnames->count);
usr.sbin/nsd/remote.c
3181
for(i=0; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/remote.c
3183
(unsigned long)xfrd->nsd->children[i].query_count))
usr.sbin/nsd/remote.c
3185
total += xfrd->nsd->children[i].query_count;
usr.sbin/nsd/remote.c
3191
timeval_subtract(&uptime, now, &xfrd->nsd->rc->boot_time);
usr.sbin/nsd/remote.c
3192
timeval_subtract(&elapsed, now, &xfrd->nsd->rc->stats_time);
usr.sbin/nsd/remote.c
3208
xfrd->nsd->options->zonelist_off))
usr.sbin/nsd/remote.c
3211
xfrd->nsd->options->region)))
usr.sbin/nsd/remote.c
3237
*stats = xmallocarray(xfrd->nsd->child_count*2, sizeof(struct nsdst));
usr.sbin/nsd/remote.c
3252
memcpy(stats, xfrd->nsd->stat_map,
usr.sbin/nsd/remote.c
3253
xfrd->nsd->child_count*2*sizeof(struct nsdst));
usr.sbin/nsd/remote.c
3255
memcpy(zonestats[0], xfrd->nsd->zonestat[0],
usr.sbin/nsd/remote.c
3257
memcpy(zonestats[1], xfrd->nsd->zonestat[1],
usr.sbin/nsd/remote.c
3274
count2 = stats[xfrd->nsd->child_count+0].reloadcount;
usr.sbin/nsd/remote.c
3278
dbd = stats[xfrd->nsd->child_count+0].db_disk;
usr.sbin/nsd/remote.c
3279
dbm = stats[xfrd->nsd->child_count+0].db_mem;
usr.sbin/nsd/remote.c
3286
for(i=0; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/remote.c
3287
stats_add(&stats[i], &stats[xfrd->nsd->child_count+i]);
usr.sbin/nsd/remote.c
3304
for(i=0; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/remote.c
3312
sizeof(struct nsdst)*xfrd->nsd->child_count);
usr.sbin/nsd/remote.c
3313
for(i=0; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/remote.c
3330
xfrd->nsd->children[0].query_count = stats[0].qudp + stats[0].qudp6
usr.sbin/nsd/remote.c
3333
for(i=1; i<xfrd->nsd->child_count; i++) {
usr.sbin/nsd/remote.c
3335
xfrd->nsd->children[i].query_count = stats[i].qudp
usr.sbin/nsd/remote.c
3361
if (xfrd->nsd->options->control_enable) {
usr.sbin/nsd/remote.c
3365
&xfrd->nsd->rc->stats_time);
usr.sbin/nsd/remote.c
3375
xfrd->nsd->rc->stats_time = stattime;
usr.sbin/nsd/remote.c
3429
if (listen(s, nsd.options->tcp_listen_queue) == -1) {
usr.sbin/nsd/remote.c
466
nsd.uid != (uid_t)-1) {
usr.sbin/nsd/remote.c
467
if(chown(ip, nsd.uid, nsd.gid) == -1)
usr.sbin/nsd/remote.c
469
(unsigned)nsd.uid, (unsigned)nsd.gid,
usr.sbin/nsd/remote.c
870
*zo = zone_options_find(xfrd->nsd->options, dname);
usr.sbin/nsd/remote.c
907
task_new_check_zonefiles(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/remote.c
920
task_new_write_zonefiles(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/server.c
1294
open_udp_socket(struct nsd *nsd, struct nsd_socket *sock, int *reuseport_works)
usr.sbin/nsd/server.c
1296
int rcv = nsd->options->receive_buffer_size;
usr.sbin/nsd/server.c
1297
int snd = nsd->options->send_buffer_size;
usr.sbin/nsd/server.c
1318
if(nsd->reuseport && reuseport_works && *reuseport_works)
usr.sbin/nsd/server.c
1344
if(nsd->options->ip_freebind)
usr.sbin/nsd/server.c
1346
if(nsd->options->ip_transparent)
usr.sbin/nsd/server.c
1365
open_tcp_socket(struct nsd *nsd, struct nsd_socket *sock, int *reuseport_works)
usr.sbin/nsd/server.c
1392
if(nsd->reuseport && reuseport_works && *reuseport_works)
usr.sbin/nsd/server.c
1405
if(nsd->tcp_mss > 0)
usr.sbin/nsd/server.c
1406
set_tcp_maxseg(sock, nsd->tcp_mss);
usr.sbin/nsd/server.c
1410
if(nsd->options->ip_freebind)
usr.sbin/nsd/server.c
1412
if(nsd->options->ip_transparent)
usr.sbin/nsd/server.c
1431
if(listen(sock->s, nsd->options->tcp_listen_queue) == -1) {
usr.sbin/nsd/server.c
1443
server_init(struct nsd *nsd)
usr.sbin/nsd/server.c
1449
for(i = 0; i < nsd->ifs; i++) {
usr.sbin/nsd/server.c
1450
if(open_udp_socket(nsd, &nsd->udp[i], &reuseport) == -1 ||
usr.sbin/nsd/server.c
1451
open_tcp_socket(nsd, &nsd->tcp[i], &reuseport) == -1)
usr.sbin/nsd/server.c
1457
if(nsd->reuseport && reuseport) {
usr.sbin/nsd/server.c
1458
size_t ifs = nsd->ifs * nsd->reuseport;
usr.sbin/nsd/server.c
1463
region_remove_cleanup(nsd->region, free, nsd->udp);
usr.sbin/nsd/server.c
1464
region_remove_cleanup(nsd->region, free, nsd->tcp);
usr.sbin/nsd/server.c
1466
nsd->udp = xrealloc(nsd->udp, ifs * sizeof(*nsd->udp));
usr.sbin/nsd/server.c
1467
nsd->tcp = xrealloc(nsd->tcp, ifs * sizeof(*nsd->tcp));
usr.sbin/nsd/server.c
1468
region_add_cleanup(nsd->region, free, nsd->udp);
usr.sbin/nsd/server.c
1469
region_add_cleanup(nsd->region, free, nsd->tcp);
usr.sbin/nsd/server.c
1470
if(ifs > nsd->ifs) {
usr.sbin/nsd/server.c
1471
memset(&nsd->udp[nsd->ifs], 0,
usr.sbin/nsd/server.c
1472
(ifs-nsd->ifs)*sizeof(*nsd->udp));
usr.sbin/nsd/server.c
1473
memset(&nsd->tcp[nsd->ifs], 0,
usr.sbin/nsd/server.c
1474
(ifs-nsd->ifs)*sizeof(*nsd->tcp));
usr.sbin/nsd/server.c
1477
for(i = nsd->ifs; i < ifs; i++) {
usr.sbin/nsd/server.c
1478
nsd->udp[i] = nsd->udp[i%nsd->ifs];
usr.sbin/nsd/server.c
1479
nsd->udp[i].s = -1;
usr.sbin/nsd/server.c
1480
if(open_udp_socket(nsd, &nsd->udp[i], &reuseport) == -1) {
usr.sbin/nsd/server.c
1483
nsd->tcp[i] = nsd->tcp[i%nsd->ifs];
usr.sbin/nsd/server.c
1484
nsd->tcp[i].s = -1;
usr.sbin/nsd/server.c
1485
if(open_tcp_socket(nsd, &nsd->tcp[i], &reuseport) == -1) {
usr.sbin/nsd/server.c
1490
nsd->ifs = ifs;
usr.sbin/nsd/server.c
1492
nsd->reuseport = 0;
usr.sbin/nsd/server.c
1496
for(i = 0; i < nsd->verify_ifs; i++) {
usr.sbin/nsd/server.c
1497
if(open_udp_socket(nsd, &nsd->verify_udp[i], NULL) == -1 ||
usr.sbin/nsd/server.c
1498
open_tcp_socket(nsd, &nsd->verify_tcp[i], NULL) == -1)
usr.sbin/nsd/server.c
1512
server_prepare(struct nsd *nsd)
usr.sbin/nsd/server.c
1535
rrl_mmap_init(nsd->child_count, nsd->options->rrl_size,
usr.sbin/nsd/server.c
1536
nsd->options->rrl_ratelimit,
usr.sbin/nsd/server.c
1537
nsd->options->rrl_whitelist_ratelimit,
usr.sbin/nsd/server.c
1538
nsd->options->rrl_slip,
usr.sbin/nsd/server.c
1539
nsd->options->rrl_ipv4_prefix_length,
usr.sbin/nsd/server.c
1540
nsd->options->rrl_ipv6_prefix_length);
usr.sbin/nsd/server.c
1544
if ((nsd->db = namedb_open(nsd->options)) == NULL) {
usr.sbin/nsd/server.c
1546
unlink(nsd->task[0]->fname);
usr.sbin/nsd/server.c
1547
unlink(nsd->task[1]->fname);
usr.sbin/nsd/server.c
1549
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
1550
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
1553
server_stat_free(nsd);
usr.sbin/nsd/server.c
1555
xfrd_del_tempdir(nsd);
usr.sbin/nsd/server.c
156
struct nsd *nsd;
usr.sbin/nsd/server.c
1561
namedb_check_zonefiles(nsd, nsd->options, NULL, NULL);
usr.sbin/nsd/server.c
1562
zonestatid_tree_set(nsd);
usr.sbin/nsd/server.c
1565
initialize_dname_compression_tables(nsd);
usr.sbin/nsd/server.c
1569
time(&nsd->st->boot);
usr.sbin/nsd/server.c
1570
nsd->st->reloadcount = 0;
usr.sbin/nsd/server.c
1571
set_bind8_alarm(nsd);
usr.sbin/nsd/server.c
1581
server_start_children(struct nsd *nsd, region_type* region, netio_type* netio,
usr.sbin/nsd/server.c
1587
for (i = 0; i < nsd->child_count; ++i) {
usr.sbin/nsd/server.c
1588
nsd->children[i].pid = 0;
usr.sbin/nsd/server.c
1591
return restart_child_servers(nsd, region, netio, xfrd_sock_p);
usr.sbin/nsd/server.c
1619
server_shutdown(struct nsd *nsd)
usr.sbin/nsd/server.c
1623
server_close_all_sockets(nsd->udp, nsd->ifs);
usr.sbin/nsd/server.c
1624
server_close_all_sockets(nsd->tcp, nsd->ifs);
usr.sbin/nsd/server.c
1626
if(nsd->this_child && nsd->this_child->parent_fd != -1)
usr.sbin/nsd/server.c
1628
close(nsd->this_child->parent_fd);
usr.sbin/nsd/server.c
1629
nsd->this_child->parent_fd = -1;
usr.sbin/nsd/server.c
1632
if(!nsd->this_child)
usr.sbin/nsd/server.c
1634
for(i=0; i < nsd->child_count; ++i)
usr.sbin/nsd/server.c
1635
if(nsd->children[i].child_fd != -1)
usr.sbin/nsd/server.c
1637
close(nsd->children[i].child_fd);
usr.sbin/nsd/server.c
1638
nsd->children[i].child_fd = -1;
usr.sbin/nsd/server.c
164
struct nsd *nsd;
usr.sbin/nsd/server.c
1643
daemon_remote_delete(nsd->rc); /* ssl-delete secret keys */
usr.sbin/nsd/server.c
1645
daemon_metrics_delete(nsd->metrics);
usr.sbin/nsd/server.c
1648
if (nsd->tls_ctx)
usr.sbin/nsd/server.c
1649
SSL_CTX_free(nsd->tls_ctx);
usr.sbin/nsd/server.c
1650
if (nsd->tls_auth_ctx)
usr.sbin/nsd/server.c
1651
SSL_CTX_free(nsd->tls_auth_ctx);
usr.sbin/nsd/server.c
1659
dt_collector_destroy(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
1661
udb_base_free_keep_mmap(nsd->task[0]);
usr.sbin/nsd/server.c
1662
udb_base_free_keep_mmap(nsd->task[1]);
usr.sbin/nsd/server.c
1663
namedb_free_ixfr(nsd->db);
usr.sbin/nsd/server.c
1664
namedb_close(nsd->db);
usr.sbin/nsd/server.c
1665
nsd_options_destroy(nsd->options);
usr.sbin/nsd/server.c
1666
region_destroy(nsd->region);
usr.sbin/nsd/server.c
1673
server_prepare_xfrd(struct nsd* nsd)
usr.sbin/nsd/server.c
1678
nsd->mytask = 0;
usr.sbin/nsd/server.c
1680
nsd->options->xfrdir, (int)getpid(), (unsigned)getpid());
usr.sbin/nsd/server.c
1681
nsd->task[0] = task_file_create(tmpfile);
usr.sbin/nsd/server.c
1682
if(!nsd->task[0]) {
usr.sbin/nsd/server.c
1684
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
1685
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
1688
server_stat_free(nsd);
usr.sbin/nsd/server.c
1690
xfrd_del_tempdir(nsd);
usr.sbin/nsd/server.c
1694
nsd->options->xfrdir, (int)getpid(), (unsigned)getpid());
usr.sbin/nsd/server.c
1695
nsd->task[1] = task_file_create(tmpfile);
usr.sbin/nsd/server.c
1696
if(!nsd->task[1]) {
usr.sbin/nsd/server.c
1697
unlink(nsd->task[0]->fname);
usr.sbin/nsd/server.c
1699
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
1700
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
1703
server_stat_free(nsd);
usr.sbin/nsd/server.c
1705
xfrd_del_tempdir(nsd);
usr.sbin/nsd/server.c
1708
assert(udb_base_get_userdata(nsd->task[0])->data == 0);
usr.sbin/nsd/server.c
1709
assert(udb_base_get_userdata(nsd->task[1])->data == 0);
usr.sbin/nsd/server.c
1711
nsd->xfrd_listener = region_alloc(nsd->region,
usr.sbin/nsd/server.c
1713
nsd->xfrd_listener->user_data = (struct ipc_handler_conn_data*)
usr.sbin/nsd/server.c
1714
region_alloc(nsd->region, sizeof(struct ipc_handler_conn_data));
usr.sbin/nsd/server.c
1715
nsd->xfrd_listener->fd = -1;
usr.sbin/nsd/server.c
1716
((struct ipc_handler_conn_data*)nsd->xfrd_listener->user_data)->nsd =
usr.sbin/nsd/server.c
1717
nsd;
usr.sbin/nsd/server.c
1718
((struct ipc_handler_conn_data*)nsd->xfrd_listener->user_data)->conn =
usr.sbin/nsd/server.c
1719
xfrd_tcp_create(nsd->region, QIOBUFSZ);
usr.sbin/nsd/server.c
1721
nsd->serve2xfrd_fd_send = region_alloc_array(
usr.sbin/nsd/server.c
1722
nsd->region, 2 * nsd->child_count, sizeof(int));
usr.sbin/nsd/server.c
1723
nsd->serve2xfrd_fd_recv= region_alloc_array(
usr.sbin/nsd/server.c
1724
nsd->region, 2 * nsd->child_count, sizeof(int));
usr.sbin/nsd/server.c
1725
for(i=0; i < 2 * nsd->child_count; i++) {
usr.sbin/nsd/server.c
1734
nsd->serve2xfrd_fd_recv[i] = pipefd[0];
usr.sbin/nsd/server.c
1735
nsd->serve2xfrd_fd_send[i] = pipefd[1];
usr.sbin/nsd/server.c
1737
nsd->serve2xfrd_fd_swap = nsd->serve2xfrd_fd_send + nsd->child_count;
usr.sbin/nsd/server.c
1742
server_start_xfrd(struct nsd *nsd, int del_db, int reload_active)
usr.sbin/nsd/server.c
1749
if(nsd->xfrd_listener->fd != -1)
usr.sbin/nsd/server.c
1750
close(nsd->xfrd_listener->fd);
usr.sbin/nsd/server.c
1754
char* tmpfile = nsd->task[1-nsd->mytask]->fname;
usr.sbin/nsd/server.c
1755
nsd->task[1-nsd->mytask]->fname = NULL;
usr.sbin/nsd/server.c
1757
udb_alloc_delete(nsd->task[1-nsd->mytask]->alloc);
usr.sbin/nsd/server.c
1758
nsd->task[1-nsd->mytask]->alloc = NULL;
usr.sbin/nsd/server.c
1759
udb_base_free(nsd->task[1-nsd->mytask]);
usr.sbin/nsd/server.c
1761
nsd->task[1-nsd->mytask] = task_file_create(tmpfile);
usr.sbin/nsd/server.c
1779
if(del_db) xfrd_free_namedb(nsd);
usr.sbin/nsd/server.c
1782
nsd->mytask = 1 - nsd->mytask;
usr.sbin/nsd/server.c
1785
assert(nsd->serve2xfrd_fd_send < nsd->serve2xfrd_fd_swap);
usr.sbin/nsd/server.c
1786
for(i = 0; i < 2 * nsd->child_count; i++) {
usr.sbin/nsd/server.c
1787
if(nsd->serve2xfrd_fd_send[i] != -1) {
usr.sbin/nsd/server.c
1788
close(nsd->serve2xfrd_fd_send[i]);
usr.sbin/nsd/server.c
1789
nsd->serve2xfrd_fd_send[i] = -1;
usr.sbin/nsd/server.c
179
struct nsd *nsd;
usr.sbin/nsd/server.c
1799
if(nsd->use_cpu_affinity) {
usr.sbin/nsd/server.c
1800
set_cpu_affinity(nsd->xfrd_cpuset);
usr.sbin/nsd/server.c
1804
xfrd_init(sockets[1], nsd, del_db, reload_active, pid);
usr.sbin/nsd/server.c
1813
nsd->xfrd_listener->fd = sockets[0];
usr.sbin/nsd/server.c
1815
for(i = 0; i < 2 * nsd->child_count; i++) {
usr.sbin/nsd/server.c
1816
if(nsd->serve2xfrd_fd_recv[i] != -1) {
usr.sbin/nsd/server.c
1817
close(nsd->serve2xfrd_fd_recv[i]);
usr.sbin/nsd/server.c
1818
nsd->serve2xfrd_fd_recv[i] = -1;
usr.sbin/nsd/server.c
1830
nsd->xfrd_listener->timeout = NULL;
usr.sbin/nsd/server.c
1831
nsd->xfrd_listener->event_types = NETIO_EVENT_READ;
usr.sbin/nsd/server.c
1832
nsd->xfrd_listener->event_handler = parent_handle_xfrd_command;
usr.sbin/nsd/server.c
1834
data = (struct ipc_handler_conn_data *) nsd->xfrd_listener->user_data;
usr.sbin/nsd/server.c
1840
add_all_soa_to_task(struct nsd* nsd, struct udb_base* taskudb)
usr.sbin/nsd/server.c
1846
for(n=radix_first(nsd->db->zonetree); n; n=radix_next(n)) {
usr.sbin/nsd/server.c
1853
server_send_soa_xfrd(struct nsd* nsd, int shortsoa)
usr.sbin/nsd/server.c
1865
int xfrd_sock = nsd->xfrd_listener->fd;
usr.sbin/nsd/server.c
1866
struct udb_base* taskudb = nsd->task[nsd->mytask];
usr.sbin/nsd/server.c
1869
if(nsd->signal_hint_shutdown) {
usr.sbin/nsd/server.c
1872
server_close_all_sockets(nsd->udp, nsd->ifs);
usr.sbin/nsd/server.c
1873
server_close_all_sockets(nsd->tcp, nsd->ifs);
usr.sbin/nsd/server.c
1874
daemon_remote_close(nsd->rc);
usr.sbin/nsd/server.c
1876
unlinkpid(nsd->pidfile, nsd->username);
usr.sbin/nsd/server.c
1877
unlink(nsd->task[0]->fname);
usr.sbin/nsd/server.c
1878
unlink(nsd->task[1]->fname);
usr.sbin/nsd/server.c
1880
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
1881
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
1884
server_stat_free(nsd);
usr.sbin/nsd/server.c
1886
server_shutdown(nsd);
usr.sbin/nsd/server.c
1893
taskudb = nsd->task[1-nsd->mytask];
usr.sbin/nsd/server.c
1896
add_all_soa_to_task(nsd, taskudb);
usr.sbin/nsd/server.c
1899
if(block_read(nsd, xfrd_sock, &cmd, sizeof(cmd), -1) != sizeof(cmd) ||
usr.sbin/nsd/server.c
1904
if(nsd->signal_hint_shutdown) {
usr.sbin/nsd/server.c
1913
(int)nsd->pid, strerror(errno));
usr.sbin/nsd/server.c
1916
if(!write_socket(nsd->xfrd_listener->fd, &mypid, sizeof(mypid))) {
usr.sbin/nsd/server.c
1923
nsd->mytask = 1 - nsd->mytask;
usr.sbin/nsd/server.c
1924
taskudb = nsd->task[nsd->mytask];
usr.sbin/nsd/server.c
1928
task_process_expire(nsd->db, TASKLIST(&t));
usr.sbin/nsd/server.c
1938
(int)nsd->pid, strerror(errno));
usr.sbin/nsd/server.c
2262
server_tls_ctx_create(struct nsd* nsd, char* verifypem, char* ocspfile)
usr.sbin/nsd/server.c
2267
key = nsd->options->tls_service_key;
usr.sbin/nsd/server.c
2268
pem = nsd->options->tls_service_pem;
usr.sbin/nsd/server.c
2323
block_read(struct nsd* nsd, int s, void* p, ssize_t sz, int timeout)
usr.sbin/nsd/server.c
2340
if(nsd && (nsd->signal_hint_quit || nsd->signal_hint_shutdown))
usr.sbin/nsd/server.c
2358
if(nsd && (nsd->signal_hint_quit || nsd->signal_hint_shutdown))
usr.sbin/nsd/server.c
2376
reload_process_non_xfr_tasks(struct nsd* nsd, udb_ptr* xfrs2process,
usr.sbin/nsd/server.c
2380
udb_base* u = nsd->task[nsd->mytask];
usr.sbin/nsd/server.c
2394
task_process_in_reload(nsd, u, last_task, &t);
usr.sbin/nsd/server.c
2411
reload_process_xfr_tasks(struct nsd* nsd, int cmdsocket, udb_ptr* xfrs2process)
usr.sbin/nsd/server.c
2415
udb_base* u = nsd->task[nsd->mytask];
usr.sbin/nsd/server.c
2426
task_process_apply_xfr(nsd, u, xfrs2process);
usr.sbin/nsd/server.c
2433
if(block_read(nsd, cmdsocket, &cmd, sizeof(cmd), 0) != sizeof(cmd))
usr.sbin/nsd/server.c
2443
xfrd_unlink_xfrfile(nsd, TASKLIST(xfrs2process)->yesno);
usr.sbin/nsd/server.c
2453
static void server_verify(struct nsd *nsd, int cmdsocket,
usr.sbin/nsd/server.c
248
struct nsd* nsd;
usr.sbin/nsd/server.c
2534
server_reload(struct nsd *nsd, region_type* server_region, netio_type* netio,
usr.sbin/nsd/server.c
2557
if(nsd->use_cpu_affinity) {
usr.sbin/nsd/server.c
2558
set_cpu_affinity(nsd->cpuset);
usr.sbin/nsd/server.c
2563
xfrs_processed = reload_process_xfr_tasks(nsd, cmdsocket, xfrs2process);
usr.sbin/nsd/server.c
2567
region_log_stats(nsd->db->region);
usr.sbin/nsd/server.c
2569
initialize_dname_compression_tables(nsd);
usr.sbin/nsd/server.c
2573
time(&nsd->st->boot);
usr.sbin/nsd/server.c
2574
set_bind8_alarm(nsd);
usr.sbin/nsd/server.c
2578
nsd->stat_current = (nsd->stat_current==0?1:0);
usr.sbin/nsd/server.c
2581
server_zonestat_realloc(nsd); /* realloc for new children */
usr.sbin/nsd/server.c
2582
server_zonestat_switch(nsd);
usr.sbin/nsd/server.c
2585
if(nsd->options->verify_enable) {
usr.sbin/nsd/server.c
2589
rrl_init(nsd->child_count + 1);
usr.sbin/nsd/server.c
2593
server_verify(nsd, cmdsocket, &old_sigchld);
usr.sbin/nsd/server.c
2596
rrl_deinit(nsd->child_count + 1);
usr.sbin/nsd/server.c
2600
if(xfrs_processed) for( node = radix_first(nsd->db->zonetree)
usr.sbin/nsd/server.c
2606
nsd->mode = NSD_RELOAD_FAILED;
usr.sbin/nsd/server.c
2614
task_new_soainfo(nsd->task[nsd->mytask], last_task,
usr.sbin/nsd/server.c
2619
task_new_soainfo(nsd->task[nsd->mytask], last_task,
usr.sbin/nsd/server.c
2626
if(nsd->mode == NSD_RELOAD_FAILED) {
usr.sbin/nsd/server.c
2630
nsd->stats_per_child[nsd->stat_current][0].reloadcount =
usr.sbin/nsd/server.c
2631
nsd->stats_per_child[(nsd->stat_current==0?1:0)][0].reloadcount+1;
usr.sbin/nsd/server.c
2632
nsd->stats_per_child[nsd->stat_current][0].db_mem =
usr.sbin/nsd/server.c
2633
region_get_mem(nsd->db->region);
usr.sbin/nsd/server.c
2639
if (nsd->dt_collector) {
usr.sbin/nsd/server.c
2643
swap_fd_send = nsd->dt_collector_fd_send;
usr.sbin/nsd/server.c
2644
nsd->dt_collector_fd_send = nsd->dt_collector_fd_swap;
usr.sbin/nsd/server.c
2645
nsd->dt_collector_fd_swap = swap_fd_send;
usr.sbin/nsd/server.c
2649
swap_fd_send = nsd->serve2xfrd_fd_send;
usr.sbin/nsd/server.c
2650
nsd->serve2xfrd_fd_send = nsd->serve2xfrd_fd_swap;
usr.sbin/nsd/server.c
2651
nsd->serve2xfrd_fd_swap = swap_fd_send;
usr.sbin/nsd/server.c
2653
if (server_start_children(nsd, server_region, netio, &nsd->
usr.sbin/nsd/server.c
2655
send_children_quit(nsd);
usr.sbin/nsd/server.c
2660
if(block_read(nsd, cmdsocket, &cmd, sizeof(cmd), 0) == sizeof(cmd)) {
usr.sbin/nsd/server.c
2664
send_children_quit(nsd);
usr.sbin/nsd/server.c
2716
send_children_quit(nsd);
usr.sbin/nsd/server.c
2720
udb_ptr_set(last_task, nsd->task[nsd->mytask], 0);
usr.sbin/nsd/server.c
2721
task_process_sync(nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
2723
server_zonestat_realloc(nsd); /* realloc for next children */
usr.sbin/nsd/server.c
2729
if(!write_socket(nsd->xfrd_listener->fd, &cmd, sizeof(cmd))) {
usr.sbin/nsd/server.c
2734
if(!write_socket(nsd->xfrd_listener->fd, &mypid, sizeof(mypid))) {
usr.sbin/nsd/server.c
2740
if (nsd->file_rotation_ok)
usr.sbin/nsd/server.c
2741
log_reopen(nsd->log_filename, 1);
usr.sbin/nsd/server.c
2750
server_signal_mode(struct nsd *nsd)
usr.sbin/nsd/server.c
2752
if(nsd->signal_hint_quit) {
usr.sbin/nsd/server.c
2753
nsd->signal_hint_quit = 0;
usr.sbin/nsd/server.c
2756
else if(nsd->signal_hint_shutdown) {
usr.sbin/nsd/server.c
2757
nsd->signal_hint_shutdown = 0;
usr.sbin/nsd/server.c
2760
else if(nsd->signal_hint_child) {
usr.sbin/nsd/server.c
2761
nsd->signal_hint_child = 0;
usr.sbin/nsd/server.c
2764
else if(nsd->signal_hint_reload) {
usr.sbin/nsd/server.c
2765
nsd->signal_hint_reload = 0;
usr.sbin/nsd/server.c
2768
else if(nsd->signal_hint_reload_hup) {
usr.sbin/nsd/server.c
2769
nsd->signal_hint_reload_hup = 0;
usr.sbin/nsd/server.c
2772
else if(nsd->signal_hint_stats) {
usr.sbin/nsd/server.c
2773
nsd->signal_hint_stats = 0;
usr.sbin/nsd/server.c
2775
set_bind8_alarm(nsd);
usr.sbin/nsd/server.c
2779
else if(nsd->signal_hint_statsusr) {
usr.sbin/nsd/server.c
2780
nsd->signal_hint_statsusr = 0;
usr.sbin/nsd/server.c
2791
server_main(struct nsd *nsd)
usr.sbin/nsd/server.c
2808
assert(nsd->server_kind == NSD_SERVER_MAIN);
usr.sbin/nsd/server.c
2811
netio_add_handler(netio, nsd->xfrd_listener);
usr.sbin/nsd/server.c
2814
nsd->st = &nsd->stat_map[0];
usr.sbin/nsd/server.c
2815
nsd->st->db_disk = 0;
usr.sbin/nsd/server.c
2816
nsd->st->db_mem = region_get_mem(nsd->db->region);
usr.sbin/nsd/server.c
2822
if (server_start_children(nsd, server_region, netio,
usr.sbin/nsd/server.c
2823
&nsd->xfrd_listener->fd) != 0) {
usr.sbin/nsd/server.c
2824
send_children_quit(nsd);
usr.sbin/nsd/server.c
2830
assert(nsd->this_child == 0);
usr.sbin/nsd/server.c
2833
while ((mode = nsd->mode) != NSD_SHUTDOWN) {
usr.sbin/nsd/server.c
2836
nsd->mode = mode = server_signal_mode(nsd);
usr.sbin/nsd/server.c
2843
int is_child = delete_child_pid(nsd, child_pid);
usr.sbin/nsd/server.c
2844
if (is_child != -1 && nsd->children[is_child].need_to_exit) {
usr.sbin/nsd/server.c
2845
if(nsd->children[is_child].child_fd == -1)
usr.sbin/nsd/server.c
2846
nsd->children[is_child].has_exited = 1;
usr.sbin/nsd/server.c
2847
parent_check_all_children_exited(nsd);
usr.sbin/nsd/server.c
2852
restart_child_servers(nsd, server_region, netio,
usr.sbin/nsd/server.c
2853
&nsd->xfrd_listener->fd);
usr.sbin/nsd/server.c
2871
task_process_sync(nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
2873
if(!write_socket(nsd->xfrd_listener->fd,
usr.sbin/nsd/server.c
2880
if(!write_socket(nsd->xfrd_listener->fd, &mypid, sizeof(mypid))) {
usr.sbin/nsd/server.c
2885
} else if(nsd->dt_collector && child_pid == nsd->dt_collector->dt_pid) {
usr.sbin/nsd/server.c
2889
if(nsd->dt_collector) {
usr.sbin/nsd/server.c
2890
dt_collector_close(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
2891
dt_collector_destroy(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
2892
nsd->dt_collector = NULL;
usr.sbin/nsd/server.c
2915
if(reload_pid == -1 && nsd->options->dnstap_enable) {
usr.sbin/nsd/server.c
2916
nsd->dt_collector = dt_collector_create(nsd);
usr.sbin/nsd/server.c
2917
dt_collector_start(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
2918
nsd->mode = NSD_RELOAD_REQ;
usr.sbin/nsd/server.c
2939
if (nsd->mode != NSD_RUN)
usr.sbin/nsd/server.c
2952
if(nsd->restart_children) {
usr.sbin/nsd/server.c
2953
restart_child_servers(nsd, server_region, netio,
usr.sbin/nsd/server.c
2954
&nsd->xfrd_listener->fd);
usr.sbin/nsd/server.c
2955
nsd->restart_children = 0;
usr.sbin/nsd/server.c
2957
if(nsd->reload_failed) {
usr.sbin/nsd/server.c
2960
nsd->reload_failed = 0;
usr.sbin/nsd/server.c
2975
task_process_sync(nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
2977
if(!write_socket(nsd->xfrd_listener->fd,
usr.sbin/nsd/server.c
2984
if(!write_socket(nsd->xfrd_listener->fd, &mypid, sizeof(mypid))) {
usr.sbin/nsd/server.c
2996
if(!write_socket(nsd->xfrd_listener->fd,
usr.sbin/nsd/server.c
3001
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3005
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3014
nsd->mytask = 1 - nsd->mytask;
usr.sbin/nsd/server.c
3031
task_remap(nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
3032
udb_ptr_init(&xfrs2process, nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
3033
udb_ptr_init(&last_task , nsd->task[nsd->mytask]);
usr.sbin/nsd/server.c
3043
reload_process_non_xfr_tasks(nsd, &xfrs2process
usr.sbin/nsd/server.c
3050
udb_ptr_set(&last_task, nsd->task[nsd->mytask], 0);
usr.sbin/nsd/server.c
3051
udb_ptr_set(&xfrs2process, nsd->task[nsd->mytask], 0);
usr.sbin/nsd/server.c
3056
server_reload(nsd, server_region, netio
usr.sbin/nsd/server.c
3064
((struct ipc_handler_conn_data*)nsd->
usr.sbin/nsd/server.c
3083
udb_ptr_set(&last_task, nsd->task[nsd->mytask], 0);
usr.sbin/nsd/server.c
3084
udb_ptr_set(&xfrs2process, nsd->task[nsd->mytask], 0);
usr.sbin/nsd/server.c
3087
reload_listener.user_data = nsd;
usr.sbin/nsd/server.c
3108
if(!nsd->quit_sync_done && reload_listener.fd != -1) {
usr.sbin/nsd/server.c
3113
if(!write_socket(nsd->xfrd_listener->fd,
usr.sbin/nsd/server.c
3120
nsd->quit_sync_done = 1;
usr.sbin/nsd/server.c
3122
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3138
send_children_quit(nsd);
usr.sbin/nsd/server.c
3143
server_shutdown(nsd);
usr.sbin/nsd/server.c
3151
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3155
set_children_stats(nsd);
usr.sbin/nsd/server.c
3157
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3160
log_msg(LOG_WARNING, "NSD main server mode invalid: %d", (int)nsd->mode);
usr.sbin/nsd/server.c
3161
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3168
server_close_all_sockets(nsd->udp, nsd->ifs);
usr.sbin/nsd/server.c
3169
server_close_all_sockets(nsd->tcp, nsd->ifs);
usr.sbin/nsd/server.c
3170
daemon_remote_close(nsd->rc);
usr.sbin/nsd/server.c
3171
send_children_quit_and_wait(nsd);
usr.sbin/nsd/server.c
3174
unlinkpid(nsd->pidfile, nsd->username);
usr.sbin/nsd/server.c
3175
unlink(nsd->task[0]->fname);
usr.sbin/nsd/server.c
3176
unlink(nsd->task[1]->fname);
usr.sbin/nsd/server.c
3178
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
3179
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
3182
server_stat_free(nsd);
usr.sbin/nsd/server.c
3185
dt_collector_close(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
3209
if(nsd->xfrd_listener->fd != -1) {
usr.sbin/nsd/server.c
3214
if(!write_socket(nsd->xfrd_listener->fd, &cmd, sizeof(cmd))) {
usr.sbin/nsd/server.c
3218
fsync(nsd->xfrd_listener->fd);
usr.sbin/nsd/server.c
3219
close(nsd->xfrd_listener->fd);
usr.sbin/nsd/server.c
3220
(void)kill(nsd->pid, SIGTERM);
usr.sbin/nsd/server.c
3224
xdp_server_cleanup(&nsd->xdp.xdp_server);
usr.sbin/nsd/server.c
3230
server_shutdown(nsd);
usr.sbin/nsd/server.c
3234
server_process_query(struct nsd *nsd, struct query *query, uint32_t *now_p)
usr.sbin/nsd/server.c
3236
return query_process(query, nsd, now_p);
usr.sbin/nsd/server.c
3240
server_process_query_udp(struct nsd *nsd, struct query *query, uint32_t *now_p)
usr.sbin/nsd/server.c
3243
if(query_process(query, nsd, now_p) != QUERY_DISCARDED) {
usr.sbin/nsd/server.c
3252
return query_process(query, nsd, now_p);
usr.sbin/nsd/server.c
3329
struct nsd *nsd,
usr.sbin/nsd/server.c
3335
data->nsd = nsd;
usr.sbin/nsd/server.c
3338
if(nsd->options->proxy_protocol_port &&
usr.sbin/nsd/server.c
3339
sockaddr_uses_proxy_protocol_port(nsd->options,
usr.sbin/nsd/server.c
3346
if(event_base_set(nsd->event_base, handler) != 0)
usr.sbin/nsd/server.c
3354
struct nsd *nsd,
usr.sbin/nsd/server.c
3360
data->nsd = nsd;
usr.sbin/nsd/server.c
3363
if(nsd->options->proxy_protocol_port &&
usr.sbin/nsd/server.c
3364
sockaddr_uses_proxy_protocol_port(nsd->options,
usr.sbin/nsd/server.c
3370
if (nsd->tls_ctx &&
usr.sbin/nsd/server.c
3371
nsd->options->tls_port &&
usr.sbin/nsd/server.c
3372
using_tls_port((struct sockaddr *)&sock->addr.ai_addr, nsd->options->tls_port))
usr.sbin/nsd/server.c
3383
if (nsd->tls_auth_ctx &&
usr.sbin/nsd/server.c
3384
nsd->options->tls_auth_port &&
usr.sbin/nsd/server.c
3385
using_tls_port((struct sockaddr *)&sock->addr.ai_addr, nsd->options->tls_auth_port))
usr.sbin/nsd/server.c
3401
if(event_base_set(nsd->event_base, handler) != 0)
usr.sbin/nsd/server.c
3410
add_xdp_handler(struct nsd *nsd,
usr.sbin/nsd/server.c
3417
data->nsd = nsd;
usr.sbin/nsd/server.c
3429
if (event_base_set(nsd->event_base, handler) != 0)
usr.sbin/nsd/server.c
3439
static void server_verify(struct nsd *nsd, int cmdsocket,
usr.sbin/nsd/server.c
3446
assert(nsd != NULL);
usr.sbin/nsd/server.c
3448
zone = verify_next_zone(nsd, NULL);
usr.sbin/nsd/server.c
3452
nsd->server_region = region_create(xalloc, free);
usr.sbin/nsd/server.c
3453
nsd->event_base = nsd_child_event_base();
usr.sbin/nsd/server.c
3455
nsd->next_zone_to_verify = zone;
usr.sbin/nsd/server.c
3456
nsd->verifier_count = 0;
usr.sbin/nsd/server.c
3457
nsd->verifier_limit = nsd->options->verifier_count;
usr.sbin/nsd/server.c
3458
size = sizeof(struct verifier) * nsd->verifier_limit;
usr.sbin/nsd/server.c
3459
if(pipe(nsd->verifier_pipe) == -1) {
usr.sbin/nsd/server.c
3464
fcntl(nsd->verifier_pipe[0], F_SETFD, FD_CLOEXEC);
usr.sbin/nsd/server.c
3465
fcntl(nsd->verifier_pipe[1], F_SETFD, FD_CLOEXEC);
usr.sbin/nsd/server.c
3466
nsd->verifiers = region_alloc_zero(nsd->server_region, size);
usr.sbin/nsd/server.c
3468
for(size_t i = 0; i < nsd->verifier_limit; i++) {
usr.sbin/nsd/server.c
3469
nsd->verifiers[i].nsd = nsd;
usr.sbin/nsd/server.c
3470
nsd->verifiers[i].zone = NULL;
usr.sbin/nsd/server.c
3471
nsd->verifiers[i].pid = -1;
usr.sbin/nsd/server.c
3472
nsd->verifiers[i].output_stream.fd = -1;
usr.sbin/nsd/server.c
3473
nsd->verifiers[i].output_stream.priority = LOG_INFO;
usr.sbin/nsd/server.c
3474
nsd->verifiers[i].error_stream.fd = -1;
usr.sbin/nsd/server.c
3475
nsd->verifiers[i].error_stream.priority = LOG_ERR;
usr.sbin/nsd/server.c
3478
event_set(&cmd_event, cmdsocket, EV_READ|EV_PERSIST, verify_handle_command, nsd);
usr.sbin/nsd/server.c
3479
if(event_base_set(nsd->event_base, &cmd_event) != 0 ||
usr.sbin/nsd/server.c
3486
event_set(&signal_event, SIGCHLD, EV_SIGNAL|EV_PERSIST, verify_handle_signal, nsd);
usr.sbin/nsd/server.c
3487
if(event_base_set(nsd->event_base, &signal_event) != 0 ||
usr.sbin/nsd/server.c
3494
event_set(&exit_event, nsd->verifier_pipe[0], EV_READ|EV_PERSIST, verify_handle_exit, nsd);
usr.sbin/nsd/server.c
3495
if(event_base_set(nsd->event_base, &exit_event) != 0 ||
usr.sbin/nsd/server.c
3504
queries[i] = query_create(nsd->server_region,
usr.sbin/nsd/server.c
3516
for (size_t i = 0; i < nsd->verify_ifs; i++) {
usr.sbin/nsd/server.c
3519
nsd->server_region, sizeof(*data));
usr.sbin/nsd/server.c
3520
add_udp_handler(nsd, &nsd->verify_udp[i], data);
usr.sbin/nsd/server.c
3523
tcp_accept_handler_count = nsd->verify_ifs;
usr.sbin/nsd/server.c
3524
tcp_accept_handlers = region_alloc_array(nsd->server_region,
usr.sbin/nsd/server.c
3525
nsd->verify_ifs, sizeof(*tcp_accept_handlers));
usr.sbin/nsd/server.c
3527
for (size_t i = 0; i < nsd->verify_ifs; i++) {
usr.sbin/nsd/server.c
3531
add_tcp_handler(nsd, &nsd->verify_tcp[i], data);
usr.sbin/nsd/server.c
3534
while(nsd->next_zone_to_verify != NULL &&
usr.sbin/nsd/server.c
3535
nsd->verifier_count < nsd->verifier_limit)
usr.sbin/nsd/server.c
3537
verify_zone(nsd, nsd->next_zone_to_verify);
usr.sbin/nsd/server.c
3538
nsd->next_zone_to_verify
usr.sbin/nsd/server.c
3539
= verify_next_zone(nsd, nsd->next_zone_to_verify);
usr.sbin/nsd/server.c
3543
event_base_dispatch(nsd->event_base);
usr.sbin/nsd/server.c
3549
assert(nsd->next_zone_to_verify == NULL || nsd->mode == NSD_QUIT);
usr.sbin/nsd/server.c
3550
assert(nsd->verifier_count == 0 || nsd->mode == NSD_QUIT);
usr.sbin/nsd/server.c
3554
close(nsd->verifier_pipe[0]);
usr.sbin/nsd/server.c
3555
close(nsd->verifier_pipe[1]);
usr.sbin/nsd/server.c
3557
event_base_free(nsd->event_base);
usr.sbin/nsd/server.c
3558
region_destroy(nsd->server_region);
usr.sbin/nsd/server.c
3560
nsd->event_base = NULL;
usr.sbin/nsd/server.c
3561
nsd->server_region = NULL;
usr.sbin/nsd/server.c
3562
nsd->verifier_limit = 0;
usr.sbin/nsd/server.c
3563
nsd->verifier_pipe[0] = -1;
usr.sbin/nsd/server.c
3564
nsd->verifier_pipe[1] = -1;
usr.sbin/nsd/server.c
3565
nsd->verifiers = NULL;
usr.sbin/nsd/server.c
3572
server_child(struct nsd *nsd)
usr.sbin/nsd/server.c
3586
nsd->event_base = event_base;
usr.sbin/nsd/server.c
3587
nsd->server_region = server_region;
usr.sbin/nsd/server.c
3590
rrl_init(nsd->this_child->child_num);
usr.sbin/nsd/server.c
3593
assert(nsd->server_kind != NSD_SERVER_MAIN);
usr.sbin/nsd/server.c
3596
setproctitle("server %d", nsd->this_child->child_num + 1);
usr.sbin/nsd/server.c
3600
nsd->this_child->child_num + 1);
usr.sbin/nsd/server.c
3606
if(nsd->use_cpu_affinity) {
usr.sbin/nsd/server.c
3607
set_cpu_affinity(nsd->this_child->cpuset);
usr.sbin/nsd/server.c
3611
nsd->st = &nsd->stats_per_child[nsd->stat_current]
usr.sbin/nsd/server.c
3612
[nsd->this_child->child_num];
usr.sbin/nsd/server.c
3613
nsd->st->boot = nsd->stat_map[0].boot;
usr.sbin/nsd/server.c
3614
memcpy(&nsd->stat_proc, nsd->st, sizeof(nsd->stat_proc));
usr.sbin/nsd/server.c
3617
if (!(nsd->server_kind & NSD_SERVER_TCP)) {
usr.sbin/nsd/server.c
3618
server_close_all_sockets(nsd->tcp, nsd->ifs);
usr.sbin/nsd/server.c
3620
if (!(nsd->server_kind & NSD_SERVER_UDP)) {
usr.sbin/nsd/server.c
3621
server_close_all_sockets(nsd->udp, nsd->ifs);
usr.sbin/nsd/server.c
3624
if (nsd->this_child->parent_fd != -1) {
usr.sbin/nsd/server.c
3629
user_data->nsd = nsd;
usr.sbin/nsd/server.c
3635
event_set(handler, nsd->this_child->parent_fd, EV_PERSIST|
usr.sbin/nsd/server.c
3643
if(nsd->reuseport) {
usr.sbin/nsd/server.c
3644
numifs = nsd->ifs / nsd->reuseport;
usr.sbin/nsd/server.c
3645
from = numifs * nsd->this_child->child_num;
usr.sbin/nsd/server.c
3646
if(from+numifs > nsd->ifs) { /* should not happen */
usr.sbin/nsd/server.c
3648
numifs = nsd->ifs;
usr.sbin/nsd/server.c
3652
numifs = nsd->ifs;
usr.sbin/nsd/server.c
3655
if ((nsd->server_kind & NSD_SERVER_UDP)) {
usr.sbin/nsd/server.c
3656
int child = nsd->this_child->child_num;
usr.sbin/nsd/server.c
3671
for (i = 0; i < nsd->ifs; i++) {
usr.sbin/nsd/server.c
3675
listen = nsd_bitset_isset(nsd->udp[i].servers, child);
usr.sbin/nsd/server.c
3679
nsd->server_region, sizeof(*data));
usr.sbin/nsd/server.c
3680
add_udp_handler(nsd, &nsd->udp[i], data);
usr.sbin/nsd/server.c
3683
server_close_socket(&nsd->udp[i]);
usr.sbin/nsd/server.c
3693
if ((nsd->server_kind & NSD_SERVER_TCP)) {
usr.sbin/nsd/server.c
3694
int child = nsd->this_child->child_num;
usr.sbin/nsd/server.c
3699
for (i = 0; i < nsd->ifs; i++) {
usr.sbin/nsd/server.c
3703
listen = nsd_bitset_isset(nsd->tcp[i].servers, child);
usr.sbin/nsd/server.c
3708
add_tcp_handler(nsd, &nsd->tcp[i], data);
usr.sbin/nsd/server.c
3711
server_close_socket(&nsd->tcp[i]);
usr.sbin/nsd/server.c
3719
if (nsd->options->xdp_interface) {
usr.sbin/nsd/server.c
3721
if ((int)nsd->xdp.xdp_server.queue_count <= nsd->this_child->child_num) {
usr.sbin/nsd/server.c
3725
nsd->xdp.xdp_server.queue_count,
usr.sbin/nsd/server.c
3726
nsd->xdp.xdp_server.interface_name);
usr.sbin/nsd/server.c
3730
void *scratch_data = region_alloc_zero(nsd->server_region,
usr.sbin/nsd/server.c
3733
nsd->xdp.xdp_server.queue_index = nsd->this_child->child_num;
usr.sbin/nsd/server.c
3734
nsd->xdp.xdp_server.queries = xdp_queries;
usr.sbin/nsd/server.c
3738
nsd->xdp.xdp_server.queue_index,
usr.sbin/nsd/server.c
3739
nsd->xdp.xdp_server.interface_name);
usr.sbin/nsd/server.c
3741
data = region_alloc_zero(nsd->server_region, sizeof(*data));
usr.sbin/nsd/server.c
3742
add_xdp_handler(nsd, &nsd->xdp.xdp_server, data);
usr.sbin/nsd/server.c
3751
nsd->server_region,
usr.sbin/nsd/server.c
3767
while ((mode = nsd->mode) != NSD_QUIT) {
usr.sbin/nsd/server.c
3768
if(mode == NSD_RUN) nsd->mode = mode = server_signal_mode(nsd);
usr.sbin/nsd/server.c
3773
int p = nsd->st_period;
usr.sbin/nsd/server.c
3774
nsd->st_period = 1; /* force stats printout */
usr.sbin/nsd/server.c
3776
bind8_stats(nsd);
usr.sbin/nsd/server.c
3777
nsd->st_period = p;
usr.sbin/nsd/server.c
3782
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3786
if (nsd->this_child->parent_fd != -1) {
usr.sbin/nsd/server.c
3788
if (write(nsd->this_child->parent_fd,
usr.sbin/nsd/server.c
3793
(int) nsd->this_child->pid, strerror(errno));
usr.sbin/nsd/server.c
3797
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3812
nsd->mode = NSD_RUN;
usr.sbin/nsd/server.c
3820
service_remaining_tcp(nsd);
usr.sbin/nsd/server.c
3822
bind8_stats(nsd);
usr.sbin/nsd/server.c
3827
rrl_deinit(nsd->this_child->child_num);
usr.sbin/nsd/server.c
383
static void send_children_quit(struct nsd* nsd);
usr.sbin/nsd/server.c
3832
server_shutdown(nsd);
usr.sbin/nsd/server.c
3845
service_remaining_tcp(struct nsd* nsd)
usr.sbin/nsd/server.c
385
static void send_children_quit_and_wait(struct nsd* nsd);
usr.sbin/nsd/server.c
3850
if(nsd->current_tcp_count == 0 || tcp_active_list == NULL)
usr.sbin/nsd/server.c
3857
dt_collector_destroy(nsd->dt_collector, nsd);
usr.sbin/nsd/server.c
3858
nsd->dt_collector = NULL;
usr.sbin/nsd/server.c
389
static void set_children_stats(struct nsd* nsd);
usr.sbin/nsd/server.c
3911
while(nsd->current_tcp_count > 0) {
usr.sbin/nsd/server.c
3912
mode_t m = server_signal_mode(nsd);
usr.sbin/nsd/server.c
4160
STATUP(data->nsd, rxerr);
usr.sbin/nsd/server.c
4181
STATUP(data->nsd, rxerr);
usr.sbin/nsd/server.c
4192
STATUP(data->nsd, qudp);
usr.sbin/nsd/server.c
4194
STATUP(data->nsd, qudp6);
usr.sbin/nsd/server.c
4218
dt_collector_submit_auth_query(data->nsd, (void*)&data->socket->addr.ai_addr, &q->client_addr, q->client_addrlen,
usr.sbin/nsd/server.c
4223
if (server_process_query_udp(data->nsd, q, &now) != QUERY_DISCARDED) {
usr.sbin/nsd/server.c
4225
STATUP(data->nsd, nona);
usr.sbin/nsd/server.c
4226
ZTATUP(data->nsd, q->zone, nona);
usr.sbin/nsd/server.c
4231
ZTATUP(data->nsd, q->zone, qudp);
usr.sbin/nsd/server.c
4233
ZTATUP(data->nsd, q->zone, qudp6);
usr.sbin/nsd/server.c
4238
query_add_optional(q, data->nsd, &now);
usr.sbin/nsd/server.c
4244
STATUP2(data->nsd, rcode, RCODE(q->packet));
usr.sbin/nsd/server.c
4245
ZTATUP2(data->nsd, q->zone, rcode, RCODE(q->packet));
usr.sbin/nsd/server.c
4247
STATUP(data->nsd, truncated);
usr.sbin/nsd/server.c
4248
ZTATUP(data->nsd, q->zone, truncated);
usr.sbin/nsd/server.c
4259
dt_collector_submit_auth_response(data->nsd, (void*)&data->socket->addr.ai_addr,
usr.sbin/nsd/server.c
4268
STATUP(data->nsd, dropped);
usr.sbin/nsd/server.c
4269
ZTATUP(data->nsd, q->zone, dropped);
usr.sbin/nsd/server.c
4344
data->nsd->st->txerr += recvcount-i;
usr.sbin/nsd/server.c
435
delete_child_pid(struct nsd *nsd, pid_t pid)
usr.sbin/nsd/server.c
4368
timeout.tv_sec = data->nsd->tcp_timeout;
usr.sbin/nsd/server.c
438
for (i = 0; i < nsd->child_count; ++i) {
usr.sbin/nsd/server.c
439
if (nsd->children[i].pid == pid) {
usr.sbin/nsd/server.c
440
nsd->children[i].pid = 0;
usr.sbin/nsd/server.c
441
if(!nsd->children[i].need_to_exit) {
usr.sbin/nsd/server.c
4411
if (slowaccept || data->nsd->current_tcp_count == data->nsd->maximum_tcp_count) {
usr.sbin/nsd/server.c
4418
--data->nsd->current_tcp_count;
usr.sbin/nsd/server.c
4419
assert(data->nsd->current_tcp_count >= 0);
usr.sbin/nsd/server.c
442
if(nsd->children[i].child_fd != -1)
usr.sbin/nsd/server.c
443
close(nsd->children[i].child_fd);
usr.sbin/nsd/server.c
444
nsd->children[i].child_fd = -1;
usr.sbin/nsd/server.c
445
if(nsd->children[i].handler)
usr.sbin/nsd/server.c
446
nsd->children[i].handler->fd = -1;
usr.sbin/nsd/server.c
4476
if ((data->nsd->tcp_query_count > 0 &&
usr.sbin/nsd/server.c
4477
data->query_count >= data->nsd->tcp_query_count) ||
usr.sbin/nsd/server.c
458
restart_child_servers(struct nsd *nsd, region_type* region, netio_type* netio,
usr.sbin/nsd/server.c
4639
STATUP(data->nsd, ctcp);
usr.sbin/nsd/server.c
4642
STATUP(data->nsd, ctcp);
usr.sbin/nsd/server.c
4644
STATUP(data->nsd, ctcp6);
usr.sbin/nsd/server.c
465
for (i = 0; i < nsd->child_count; ++i) {
usr.sbin/nsd/server.c
466
if (nsd->children[i].pid <= 0) {
usr.sbin/nsd/server.c
4663
dt_collector_submit_auth_query(data->nsd, (void*)&data->socket->addr.ai_addr, &data->query->client_addr,
usr.sbin/nsd/server.c
4666
data->query_state = server_process_query(data->nsd, data->query, &now);
usr.sbin/nsd/server.c
4669
STATUP(data->nsd, dropped);
usr.sbin/nsd/server.c
467
if (nsd->children[i].child_fd != -1)
usr.sbin/nsd/server.c
4670
ZTATUP(data->nsd, data->query->zone, dropped);
usr.sbin/nsd/server.c
4679
STATUP(data->nsd, nona);
usr.sbin/nsd/server.c
468
close(nsd->children[i].child_fd);
usr.sbin/nsd/server.c
4680
ZTATUP(data->nsd, data->query->zone, nona);
usr.sbin/nsd/server.c
4686
ZTATUP(data->nsd, data->query->zone, ctcp);
usr.sbin/nsd/server.c
4689
ZTATUP(data->nsd, data->query->zone, ctcp);
usr.sbin/nsd/server.c
4691
ZTATUP(data->nsd, data->query->zone, ctcp6);
usr.sbin/nsd/server.c
4696
query_add_optional(data->query, data->nsd, &now);
usr.sbin/nsd/server.c
4703
STATUP2(data->nsd, rcode, RCODE(data->query->packet));
usr.sbin/nsd/server.c
4704
ZTATUP2(data->nsd, data->query->zone, rcode, RCODE(data->query->packet));
usr.sbin/nsd/server.c
4706
STATUP(data->nsd, truncated);
usr.sbin/nsd/server.c
4707
ZTATUP(data->nsd, data->query->zone, truncated);
usr.sbin/nsd/server.c
4718
dt_collector_submit_auth_response(data->nsd, (void*)&data->socket->addr.ai_addr, &data->query->client_addr,
usr.sbin/nsd/server.c
474
nsd->children[i].child_fd = sv[0];
usr.sbin/nsd/server.c
475
nsd->children[i].parent_fd = sv[1];
usr.sbin/nsd/server.c
476
nsd->children[i].pid = fork();
usr.sbin/nsd/server.c
477
switch (nsd->children[i].pid) {
usr.sbin/nsd/server.c
479
close(nsd->children[i].parent_fd);
usr.sbin/nsd/server.c
480
nsd->children[i].parent_fd = -1;
usr.sbin/nsd/server.c
481
if (fcntl(nsd->children[i].child_fd, F_SETFL, O_NONBLOCK) == -1) {
usr.sbin/nsd/server.c
484
if(!nsd->children[i].handler)
usr.sbin/nsd/server.c
4869
data->query_state = query_axfr(data->nsd, q, 0);
usr.sbin/nsd/server.c
4870
else data->query_state = query_ixfr(data->nsd, q);
usr.sbin/nsd/server.c
4872
query_add_optional(data->query, data->nsd, &now);
usr.sbin/nsd/server.c
489
ipc_data->nsd = nsd;
usr.sbin/nsd/server.c
490
ipc_data->child = &nsd->children[i];
usr.sbin/nsd/server.c
4903
if ((data->nsd->tcp_query_count > 0 &&
usr.sbin/nsd/server.c
4904
data->query_count >= data->nsd->tcp_query_count) ||
usr.sbin/nsd/server.c
491
nsd->children[i].handler = (struct netio_handler*) region_alloc(
usr.sbin/nsd/server.c
493
nsd->children[i].handler->fd = nsd->children[i].child_fd;
usr.sbin/nsd/server.c
494
nsd->children[i].handler->timeout = NULL;
usr.sbin/nsd/server.c
495
nsd->children[i].handler->user_data = ipc_data;
usr.sbin/nsd/server.c
496
nsd->children[i].handler->event_types = NETIO_EVENT_READ;
usr.sbin/nsd/server.c
497
nsd->children[i].handler->event_handler = parent_handle_child_command;
usr.sbin/nsd/server.c
498
netio_add_handler(netio, nsd->children[i].handler);
usr.sbin/nsd/server.c
501
nsd->children[i].handler->fd = nsd->children[i].child_fd;
usr.sbin/nsd/server.c
5084
if ((data->nsd->tcp_query_count > 0 &&
usr.sbin/nsd/server.c
5085
data->query_count >= data->nsd->tcp_query_count) ||
usr.sbin/nsd/server.c
513
nsd->pid = 0;
usr.sbin/nsd/server.c
514
nsd->child_count = 0;
usr.sbin/nsd/server.c
515
nsd->server_kind = nsd->children[i].kind;
usr.sbin/nsd/server.c
516
nsd->this_child = &nsd->children[i];
usr.sbin/nsd/server.c
517
nsd->this_child->child_num = i;
usr.sbin/nsd/server.c
520
nsd->signal_hint_reload_hup = 0;
usr.sbin/nsd/server.c
521
nsd->signal_hint_reload = 0;
usr.sbin/nsd/server.c
522
nsd->signal_hint_child = 0;
usr.sbin/nsd/server.c
523
nsd->signal_hint_quit = 0;
usr.sbin/nsd/server.c
524
nsd->signal_hint_shutdown = 0;
usr.sbin/nsd/server.c
525
nsd->signal_hint_stats = 0;
usr.sbin/nsd/server.c
5251
STATUP(data->nsd, ctls);
usr.sbin/nsd/server.c
5254
STATUP(data->nsd, ctls);
usr.sbin/nsd/server.c
5256
STATUP(data->nsd, ctls6);
usr.sbin/nsd/server.c
526
nsd->signal_hint_statsusr = 0;
usr.sbin/nsd/server.c
5274
dt_collector_submit_auth_query(data->nsd, (void*)&data->socket->addr.ai_addr, &data->query->client_addr,
usr.sbin/nsd/server.c
5277
data->query_state = server_process_query(data->nsd, data->query, &now);
usr.sbin/nsd/server.c
528
close(nsd->this_child->child_fd);
usr.sbin/nsd/server.c
5280
STATUP(data->nsd, dropped);
usr.sbin/nsd/server.c
5281
ZTATUP(data->nsd, data->query->zone, dropped);
usr.sbin/nsd/server.c
529
nsd->this_child->child_fd = -1;
usr.sbin/nsd/server.c
5290
STATUP(data->nsd, nona);
usr.sbin/nsd/server.c
5291
ZTATUP(data->nsd, data->query->zone, nona);
usr.sbin/nsd/server.c
5297
ZTATUP(data->nsd, data->query->zone, ctls);
usr.sbin/nsd/server.c
530
if (fcntl(nsd->this_child->parent_fd, F_SETFL, O_NONBLOCK) == -1) {
usr.sbin/nsd/server.c
5300
ZTATUP(data->nsd, data->query->zone, ctls);
usr.sbin/nsd/server.c
5302
ZTATUP(data->nsd, data->query->zone, ctls6);
usr.sbin/nsd/server.c
5307
query_add_optional(data->query, data->nsd, &now);
usr.sbin/nsd/server.c
5314
STATUP2(data->nsd, rcode, RCODE(data->query->packet));
usr.sbin/nsd/server.c
5315
ZTATUP2(data->nsd, data->query->zone, rcode, RCODE(data->query->packet));
usr.sbin/nsd/server.c
5317
STATUP(data->nsd, truncated);
usr.sbin/nsd/server.c
5318
ZTATUP(data->nsd, data->query->zone, truncated);
usr.sbin/nsd/server.c
5329
dt_collector_submit_auth_response(data->nsd, (void*)&data->socket->addr.ai_addr, &data->query->client_addr,
usr.sbin/nsd/server.c
533
server_child(nsd);
usr.sbin/nsd/server.c
5382
global_tls_temp_buffer = buffer_create(nsd.region,
usr.sbin/nsd/server.c
5458
data->query_state = query_axfr(data->nsd, q, 0);
usr.sbin/nsd/server.c
5459
else data->query_state = query_ixfr(data->nsd, q);
usr.sbin/nsd/server.c
5461
query_add_optional(data->query, data->nsd, &now);
usr.sbin/nsd/server.c
547
static void set_bind8_alarm(struct nsd* nsd)
usr.sbin/nsd/server.c
5482
if ((data->nsd->tcp_query_count > 0 &&
usr.sbin/nsd/server.c
5483
data->query_count >= data->nsd->tcp_query_count) ||
usr.sbin/nsd/server.c
550
if(nsd->st_period > 0) /* % by 0 gives divbyzero error */
usr.sbin/nsd/server.c
551
alarm(nsd->st_period - (time(NULL) % nsd->st_period));
usr.sbin/nsd/server.c
5552
if (data->nsd->current_tcp_count >= data->nsd->maximum_tcp_count) {
usr.sbin/nsd/server.c
5553
reject = data->nsd->options->tcp_reject_overflow;
usr.sbin/nsd/server.c
557
zonestatid_tree_set(struct nsd* nsd)
usr.sbin/nsd/server.c
560
for(n=radix_first(nsd->db->zonetree); n; n=radix_next(n)) {
usr.sbin/nsd/server.c
5616
tcp_data->nsd = data->nsd;
usr.sbin/nsd/server.c
562
zone->zonestatid = getzonestatid(nsd->options, zone->opts);
usr.sbin/nsd/server.c
5641
tcp_data->tcp_timeout = data->nsd->tcp_timeout * 1000;
usr.sbin/nsd/server.c
5642
if (data->nsd->current_tcp_count > data->nsd->maximum_tcp_count/2) {
usr.sbin/nsd/server.c
5657
tcp_data->tls = incoming_ssl_fd(tcp_data->nsd->tls_ctx, s);
usr.sbin/nsd/server.c
5668
tcp_data->tls_auth = incoming_ssl_fd(tcp_data->nsd->tls_auth_ctx, s);
usr.sbin/nsd/server.c
568
server_zonestat_alloc(struct nsd* nsd)
usr.sbin/nsd/server.c
570
size_t num = (nsd->options->zonestatnames->count==0?1:
usr.sbin/nsd/server.c
571
nsd->options->zonestatnames->count);
usr.sbin/nsd/server.c
5714
++data->nsd->current_tcp_count;
usr.sbin/nsd/server.c
5715
if (!data->nsd->options->tcp_reject_overflow &&
usr.sbin/nsd/server.c
5716
data->nsd->current_tcp_count == data->nsd->maximum_tcp_count)
usr.sbin/nsd/server.c
5733
send_children_command(struct nsd* nsd, sig_atomic_t command, int timeout)
usr.sbin/nsd/server.c
5736
assert(nsd->server_kind == NSD_SERVER_MAIN && nsd->this_child == 0);
usr.sbin/nsd/server.c
5737
for (i = 0; i < nsd->child_count; ++i) {
usr.sbin/nsd/server.c
5738
if (nsd->children[i].pid > 0 && nsd->children[i].child_fd != -1) {
usr.sbin/nsd/server.c
5739
if (write(nsd->children[i].child_fd,
usr.sbin/nsd/server.c
5746
(int) nsd->children[i].pid,
usr.sbin/nsd/server.c
5750
nsd->children[i].child_fd,
usr.sbin/nsd/server.c
5753
fsync(nsd->children[i].child_fd);
usr.sbin/nsd/server.c
5754
close(nsd->children[i].child_fd);
usr.sbin/nsd/server.c
5755
nsd->children[i].child_fd = -1;
usr.sbin/nsd/server.c
5761
send_children_quit(struct nsd* nsd)
usr.sbin/nsd/server.c
5764
send_children_command(nsd, NSD_QUIT, 0);
usr.sbin/nsd/server.c
5768
send_children_quit_and_wait(struct nsd* nsd)
usr.sbin/nsd/server.c
577
nsd->zonestatfname[0] = 0;
usr.sbin/nsd/server.c
5771
send_children_command(nsd, NSD_QUIT_CHILD, 3);
usr.sbin/nsd/server.c
5776
set_children_stats(struct nsd* nsd)
usr.sbin/nsd/server.c
5779
assert(nsd->server_kind == NSD_SERVER_MAIN && nsd->this_child == 0);
usr.sbin/nsd/server.c
578
nsd->zonestatfname[1] = 0;
usr.sbin/nsd/server.c
5781
for (i = 0; i < nsd->child_count; ++i) {
usr.sbin/nsd/server.c
5782
nsd->children[i].need_to_send_STATS = 1;
usr.sbin/nsd/server.c
5783
nsd->children[i].handler->event_types |= NETIO_EVENT_WRITE;
usr.sbin/nsd/server.c
580
nsd->options->xfrdir, (int)getpid(), (unsigned)getpid());
usr.sbin/nsd/server.c
581
nsd->zonestatfname[0] = region_strdup(nsd->region, tmpfile);
usr.sbin/nsd/server.c
583
nsd->options->xfrdir, (int)getpid(), (unsigned)getpid());
usr.sbin/nsd/server.c
584
nsd->zonestatfname[1] = region_strdup(nsd->region, tmpfile);
usr.sbin/nsd/server.c
587
nsd->zonestatfd[0] = open(nsd->zonestatfname[0], O_CREAT|O_RDWR, 0600);
usr.sbin/nsd/server.c
588
if(nsd->zonestatfd[0] == -1) {
usr.sbin/nsd/server.c
589
log_msg(LOG_ERR, "cannot create %s: %s", nsd->zonestatfname[0],
usr.sbin/nsd/server.c
593
nsd->zonestatfd[1] = open(nsd->zonestatfname[1], O_CREAT|O_RDWR, 0600);
usr.sbin/nsd/server.c
594
if(nsd->zonestatfd[1] == -1) {
usr.sbin/nsd/server.c
595
log_msg(LOG_ERR, "cannot create %s: %s", nsd->zonestatfname[1],
usr.sbin/nsd/server.c
597
close(nsd->zonestatfd[0]);
usr.sbin/nsd/server.c
598
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
603
if(lseek(nsd->zonestatfd[0], (off_t)sz-1, SEEK_SET) == -1) {
usr.sbin/nsd/server.c
604
log_msg(LOG_ERR, "lseek %s: %s", nsd->zonestatfname[0],
usr.sbin/nsd/server.c
608
if(write(nsd->zonestatfd[0], &z, 1) == -1) {
usr.sbin/nsd/server.c
610
nsd->zonestatfname[0], strerror(errno));
usr.sbin/nsd/server.c
613
if(lseek(nsd->zonestatfd[1], (off_t)sz-1, SEEK_SET) == -1) {
usr.sbin/nsd/server.c
614
log_msg(LOG_ERR, "lseek %s: %s", nsd->zonestatfname[1],
usr.sbin/nsd/server.c
618
if(write(nsd->zonestatfd[1], &z, 1) == -1) {
usr.sbin/nsd/server.c
620
nsd->zonestatfname[1], strerror(errno));
usr.sbin/nsd/server.c
623
nsd->zonestat[0] = (struct nsdst*)mmap(NULL, sz, PROT_READ|PROT_WRITE,
usr.sbin/nsd/server.c
624
MAP_SHARED, nsd->zonestatfd[0], 0);
usr.sbin/nsd/server.c
625
if(nsd->zonestat[0] == MAP_FAILED) {
usr.sbin/nsd/server.c
627
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
628
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
631
nsd->zonestat[1] = (struct nsdst*)mmap(NULL, sz, PROT_READ|PROT_WRITE,
usr.sbin/nsd/server.c
632
MAP_SHARED, nsd->zonestatfd[1], 0);
usr.sbin/nsd/server.c
633
if(nsd->zonestat[1] == MAP_FAILED) {
usr.sbin/nsd/server.c
635
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
636
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
639
memset(nsd->zonestat[0], 0, sz);
usr.sbin/nsd/server.c
640
memset(nsd->zonestat[1], 0, sz);
usr.sbin/nsd/server.c
641
nsd->zonestatsize[0] = num;
usr.sbin/nsd/server.c
642
nsd->zonestatsize[1] = num;
usr.sbin/nsd/server.c
643
nsd->zonestatdesired = num;
usr.sbin/nsd/server.c
644
nsd->zonestatsizenow = num;
usr.sbin/nsd/server.c
645
nsd->zonestatnow = nsd->zonestat[0];
usr.sbin/nsd/server.c
650
zonestat_remap(struct nsd* nsd, int idx, size_t sz)
usr.sbin/nsd/server.c
654
nsd->zonestat[idx] = (struct nsdst*)mremap(nsd->zonestat[idx],
usr.sbin/nsd/server.c
655
sizeof(struct nsdst)*nsd->zonestatsize[idx], sz,
usr.sbin/nsd/server.c
657
if(nsd->zonestat[idx] == MAP_FAILED) {
usr.sbin/nsd/server.c
662
if(msync(nsd->zonestat[idx],
usr.sbin/nsd/server.c
663
sizeof(struct nsdst)*nsd->zonestatsize[idx], MS_ASYNC) != 0)
usr.sbin/nsd/server.c
665
if(munmap(nsd->zonestat[idx],
usr.sbin/nsd/server.c
666
sizeof(struct nsdst)*nsd->zonestatsize[idx]) != 0)
usr.sbin/nsd/server.c
668
nsd->zonestat[idx] = (struct nsdst*)mmap(NULL, sz,
usr.sbin/nsd/server.c
669
PROT_READ|PROT_WRITE, MAP_SHARED, nsd->zonestatfd[idx], 0);
usr.sbin/nsd/server.c
670
if(nsd->zonestat[idx] == MAP_FAILED) {
usr.sbin/nsd/server.c
681
server_zonestat_realloc(struct nsd* nsd)
usr.sbin/nsd/server.c
687
if(nsd->zonestatnow == nsd->zonestat[0])
usr.sbin/nsd/server.c
689
if(nsd->zonestatsize[idx] == nsd->zonestatdesired)
usr.sbin/nsd/server.c
691
sz = sizeof(struct nsdst)*nsd->zonestatdesired;
usr.sbin/nsd/server.c
692
if(lseek(nsd->zonestatfd[idx], (off_t)sz-1, SEEK_SET) == -1) {
usr.sbin/nsd/server.c
693
log_msg(LOG_ERR, "lseek %s: %s", nsd->zonestatfname[idx],
usr.sbin/nsd/server.c
697
if(write(nsd->zonestatfd[idx], &z, 1) == -1) {
usr.sbin/nsd/server.c
699
nsd->zonestatfname[idx], strerror(errno));
usr.sbin/nsd/server.c
702
zonestat_remap(nsd, idx, sz);
usr.sbin/nsd/server.c
704
if(nsd->zonestatdesired > nsd->zonestatsize[idx]) {
usr.sbin/nsd/server.c
705
memset(((char*)nsd->zonestat[idx])+sizeof(struct nsdst) *
usr.sbin/nsd/server.c
706
nsd->zonestatsize[idx], 0, sizeof(struct nsdst) *
usr.sbin/nsd/server.c
707
(nsd->zonestatdesired - nsd->zonestatsize[idx]));
usr.sbin/nsd/server.c
709
nsd->zonestatsize[idx] = nsd->zonestatdesired;
usr.sbin/nsd/server.c
717
server_zonestat_switch(struct nsd* nsd)
usr.sbin/nsd/server.c
719
if(nsd->zonestatnow == nsd->zonestat[0]) {
usr.sbin/nsd/server.c
720
nsd->zonestatnow = nsd->zonestat[1];
usr.sbin/nsd/server.c
721
nsd->zonestatsizenow = nsd->zonestatsize[1];
usr.sbin/nsd/server.c
723
nsd->zonestatnow = nsd->zonestat[0];
usr.sbin/nsd/server.c
724
nsd->zonestatsizenow = nsd->zonestatsize[0];
usr.sbin/nsd/server.c
731
server_stat_alloc(struct nsd* nsd)
usr.sbin/nsd/server.c
734
size_t sz = sizeof(struct nsdst) * nsd->child_count * 2;
usr.sbin/nsd/server.c
738
nsd->statfname = 0;
usr.sbin/nsd/server.c
740
nsd->options->xfrdir, (int)getpid(), (unsigned)getpid());
usr.sbin/nsd/server.c
741
nsd->statfname = region_strdup(nsd->region, tmpfile);
usr.sbin/nsd/server.c
744
nsd->statfd = open(nsd->statfname, O_CREAT|O_RDWR, 0600);
usr.sbin/nsd/server.c
745
if(nsd->statfd == -1) {
usr.sbin/nsd/server.c
746
log_msg(LOG_ERR, "cannot create %s: %s", nsd->statfname,
usr.sbin/nsd/server.c
748
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
749
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
754
if(lseek(nsd->statfd, (off_t)sz-1, SEEK_SET) == -1) {
usr.sbin/nsd/server.c
755
log_msg(LOG_ERR, "lseek %s: %s", nsd->statfname,
usr.sbin/nsd/server.c
759
if(write(nsd->statfd, &z, 1) == -1) {
usr.sbin/nsd/server.c
761
nsd->statfname, strerror(errno));
usr.sbin/nsd/server.c
764
nsd->stat_map = (struct nsdst*)mmap(NULL, sz, PROT_READ|PROT_WRITE,
usr.sbin/nsd/server.c
765
MAP_SHARED, nsd->statfd, 0);
usr.sbin/nsd/server.c
766
if(nsd->stat_map == MAP_FAILED) {
usr.sbin/nsd/server.c
769
close(nsd->statfd);
usr.sbin/nsd/server.c
770
unlink(nsd->statfname);
usr.sbin/nsd/server.c
771
unlink(nsd->zonestatfname[0]);
usr.sbin/nsd/server.c
772
unlink(nsd->zonestatfname[1]);
usr.sbin/nsd/server.c
775
memset(nsd->stat_map, 0, sz);
usr.sbin/nsd/server.c
776
nsd->stats_per_child[0] = nsd->stat_map;
usr.sbin/nsd/server.c
777
nsd->stats_per_child[1] = &nsd->stat_map[nsd->child_count];
usr.sbin/nsd/server.c
778
nsd->stat_current = 0;
usr.sbin/nsd/server.c
779
nsd->st = &nsd->stats_per_child[nsd->stat_current][0];
usr.sbin/nsd/server.c
786
server_stat_free(struct nsd* nsd)
usr.sbin/nsd/server.c
788
unlink(nsd->statfname);
usr.sbin/nsd/server.c
801
initialize_dname_compression_tables(struct nsd *nsd)
usr.sbin/nsd/server.c
803
size_t needed = domain_table_count(nsd->db->domains) + 1;
usr.sbin/nsd/server.c
807
region_remove_cleanup(nsd->db->region,
usr.sbin/nsd/server.c
814
region_add_cleanup(nsd->db->region, cleanup_dname_compression_tables,
usr.sbin/nsd/server.c
817
compression_table_size=domain_table_count(nsd->db->domains)+1;
usr.sbin/nsd/util.c
1126
void add_cookie_secret(struct nsd* nsd, uint8_t* secret)
usr.sbin/nsd/util.c
1133
if(nsd->cookie_count == 0) {
usr.sbin/nsd/util.c
1134
memcpy( nsd->cookie_secrets->cookie_secret
usr.sbin/nsd/util.c
1136
nsd->cookie_count = 1;
usr.sbin/nsd/util.c
1141
memmove( &nsd->cookie_secrets[2], &nsd->cookie_secrets[1]
usr.sbin/nsd/util.c
1144
memcpy( nsd->cookie_secrets[1].cookie_secret
usr.sbin/nsd/util.c
1146
nsd->cookie_count = nsd->cookie_count < NSD_COOKIE_HISTORY_SIZE
usr.sbin/nsd/util.c
1147
? nsd->cookie_count + 1 : NSD_COOKIE_HISTORY_SIZE;
usr.sbin/nsd/util.c
1151
void activate_cookie_secret(struct nsd* nsd)
usr.sbin/nsd/util.c
1160
if(nsd->cookie_count < 2)
usr.sbin/nsd/util.c
1162
memcpy( active_secret, nsd->cookie_secrets[0].cookie_secret
usr.sbin/nsd/util.c
1164
memmove( &nsd->cookie_secrets[0], &nsd->cookie_secrets[1]
usr.sbin/nsd/util.c
1166
memcpy( nsd->cookie_secrets[nsd->cookie_count - 1].cookie_secret
usr.sbin/nsd/util.c
1171
void drop_cookie_secret(struct nsd* nsd)
usr.sbin/nsd/util.c
1175
if(nsd->cookie_count < 2)
usr.sbin/nsd/util.c
1177
explicit_bzero( nsd->cookie_secrets[nsd->cookie_count - 1].cookie_secret
usr.sbin/nsd/util.c
1179
nsd->cookie_count -= 1;
usr.sbin/nsd/util.c
1182
void reconfig_cookies(struct nsd* nsd, struct nsd_options* options)
usr.sbin/nsd/util.c
1191
nsd->do_answer_cookie = options->answer_cookie;
usr.sbin/nsd/util.c
1199
nsd->cookie_secrets[0].cookie_secret,
usr.sbin/nsd/util.c
1203
nsd->cookie_count = 1;
usr.sbin/nsd/util.c
1209
nsd->cookie_secrets[1].cookie_secret,
usr.sbin/nsd/util.c
1213
nsd->cookie_count = 2;
usr.sbin/nsd/util.c
1216
nsd->cookie_secrets_source = COOKIE_SECRETS_FROM_CONFIG;
usr.sbin/nsd/util.c
1221
if(!(fn = nsd->options->cookie_secret_file))
usr.sbin/nsd/util.c
1238
} else if(nsd->cookie_secrets_source == COOKIE_SECRETS_NONE
usr.sbin/nsd/util.c
1239
&& nsd->options->cookie_secret_file_is_default
usr.sbin/nsd/util.c
1286
nsd->cookie_count = count;
usr.sbin/nsd/util.c
1287
memcpy(nsd->cookie_secrets, cookie_secrets, sizeof(cookie_secrets));
usr.sbin/nsd/util.c
1288
region_str_replace( nsd->region
usr.sbin/nsd/util.c
1289
, &nsd->cookie_secrets_filename, fn );
usr.sbin/nsd/util.c
1292
nsd->cookie_secrets_source = COOKIE_SECRETS_FROM_FILE;
usr.sbin/nsd/util.c
1305
|| !RAND_bytes(nsd->cookie_secrets[j].cookie_secret, NSD_COOKIE_SECRET_SIZE))
usr.sbin/nsd/util.c
1308
nsd->cookie_secrets[j].cookie_secret[i] = random_generate(256);
usr.sbin/nsd/util.c
1310
nsd->cookie_count = 1;
usr.sbin/nsd/util.c
1312
nsd->cookie_secrets_source = COOKIE_SECRETS_GENERATED;
usr.sbin/nsd/util.h
21
struct nsd;
usr.sbin/nsd/util.h
437
void add_cookie_secret(struct nsd* nsd, uint8_t* secret);
usr.sbin/nsd/util.h
439
void activate_cookie_secret(struct nsd* nsd);
usr.sbin/nsd/util.h
442
void drop_cookie_secret(struct nsd* nsd);
usr.sbin/nsd/util.h
444
void reconfig_cookies(struct nsd* nsd, struct nsd_options* options);
usr.sbin/nsd/verify.c
270
struct nsd *nsd;
usr.sbin/nsd/verify.c
276
nsd = (struct nsd *)arg;
usr.sbin/nsd/verify.c
277
if(write(nsd->verifier_pipe[1], buf, sizeof(buf)) == -1) {
usr.sbin/nsd/verify.c
294
struct nsd *nsd;
usr.sbin/nsd/verify.c
300
nsd = (struct nsd *)arg;
usr.sbin/nsd/verify.c
313
for(size_t i = 0; !verifier && i < nsd->verifier_limit; i++) {
usr.sbin/nsd/verify.c
314
if(nsd->verifiers[i].zone != NULL &&
usr.sbin/nsd/verify.c
315
nsd->verifiers[i].pid == pid)
usr.sbin/nsd/verify.c
317
verifier = &nsd->verifiers[i];
usr.sbin/nsd/verify.c
34
struct zone *verify_next_zone(struct nsd *nsd, struct zone *zone)
usr.sbin/nsd/verify.c
342
nsd->verifier_count--;
usr.sbin/nsd/verify.c
345
while(nsd->mode == NSD_RUN &&
usr.sbin/nsd/verify.c
346
nsd->verifier_count < nsd->verifier_limit &&
usr.sbin/nsd/verify.c
347
nsd->next_zone_to_verify != NULL)
usr.sbin/nsd/verify.c
349
verify_zone(nsd, nsd->next_zone_to_verify);
usr.sbin/nsd/verify.c
350
nsd->next_zone_to_verify
usr.sbin/nsd/verify.c
351
= verify_next_zone(nsd, nsd->next_zone_to_verify);
usr.sbin/nsd/verify.c
354
if(nsd->next_zone_to_verify == NULL && nsd->verifier_count == 0) {
usr.sbin/nsd/verify.c
355
event_base_loopexit(nsd->event_base, NULL);
usr.sbin/nsd/verify.c
369
struct nsd *nsd = (struct nsd *)arg;
usr.sbin/nsd/verify.c
373
assert(nsd != NULL);
usr.sbin/nsd/verify.c
392
nsd->mode = mode;
usr.sbin/nsd/verify.c
394
if(nsd->verifier_count == 0) {
usr.sbin/nsd/verify.c
395
event_base_loopexit(nsd->event_base, NULL);
usr.sbin/nsd/verify.c
400
for(size_t i = 0; i < nsd->verifier_limit; i++) {
usr.sbin/nsd/verify.c
401
if(nsd->verifiers[i].zone != NULL) {
usr.sbin/nsd/verify.c
402
kill_verifier(&nsd->verifiers[i]);
usr.sbin/nsd/verify.c
413
void verify_zone(struct nsd *nsd, struct zone *zone)
usr.sbin/nsd/verify.c
42
node = radix_first(nsd->db->zonetree);
usr.sbin/nsd/verify.c
421
assert(nsd != NULL);
usr.sbin/nsd/verify.c
422
assert(nsd->verifier_count < nsd->verifier_limit);
usr.sbin/nsd/verify.c
429
for(size_t i = 0; i < nsd->verifier_limit && !verifier; i++) {
usr.sbin/nsd/verify.c
430
if(nsd->verifiers[i].zone == NULL) {
usr.sbin/nsd/verify.c
431
verifier = &nsd->verifiers[i];
usr.sbin/nsd/verify.c
439
} else if (nsd->options->verifier != NULL) {
usr.sbin/nsd/verify.c
440
command = nsd->options->verifier;
usr.sbin/nsd/verify.c
452
timeout = nsd->options->verifier_timeout;
usr.sbin/nsd/verify.c
460
fdin = nsd->options->verifier_feed_zone ? -2 : -1;
usr.sbin/nsd/verify.c
49
verify = nsd->options->verify_zones;
usr.sbin/nsd/verify.c
515
event_base_set(nsd->event_base, &verifier->error_stream.event);
usr.sbin/nsd/verify.c
531
event_base_set(nsd->event_base, &verifier->output_stream.event);
usr.sbin/nsd/verify.c
544
= create_pretty_rr(nsd->server_region);
usr.sbin/nsd/verify.c
548
= buffer_create(nsd->server_region, MAX_RDLENGTH);
usr.sbin/nsd/verify.c
555
event_base_set(nsd->event_base, &verifier->zone_feed.event);
usr.sbin/nsd/verify.c
571
event_base_set(nsd->event_base, &verifier->timeout_event);
usr.sbin/nsd/verify.c
587
nsd->verifier_count++;
usr.sbin/nsd/verify.h
59
struct nsd *nsd;
usr.sbin/nsd/verify.h
70
struct zone *verify_next_zone(struct nsd *nsd, struct zone *zone);
usr.sbin/nsd/verify.h
72
void verify_zone(struct nsd *nsd, struct zone *zone);
usr.sbin/nsd/xdp-server.c
188
static uint32_t parse_dns(struct nsd* nsd,
usr.sbin/nsd/xdp-server.c
691
static uint32_t parse_dns(struct nsd* nsd, uint32_t dnslen,
usr.sbin/nsd/xdp-server.c
700
if (query_process(q, nsd, &now) != QUERY_DISCARDED) {
usr.sbin/nsd/xdp-server.c
702
STATUP(nsd, nona);
usr.sbin/nsd/xdp-server.c
703
ZTATUP(nsd, q->zone, nona);
usr.sbin/nsd/xdp-server.c
708
ZTATUP(nsd, q->zone, qudp);
usr.sbin/nsd/xdp-server.c
710
ZTATUP(nsd, q->zone, qudp6);
usr.sbin/nsd/xdp-server.c
714
query_add_optional(q, nsd, &now);
usr.sbin/nsd/xdp-server.c
720
STATUP2(nsd, rcode, RCODE(q->packet));
usr.sbin/nsd/xdp-server.c
721
ZTATUP2(nsd, q->zone, rcode, RCODE(q->packet));
usr.sbin/nsd/xdp-server.c
723
STATUP(nsd, truncated);
usr.sbin/nsd/xdp-server.c
724
ZTATUP(nsd, q->zone, truncated);
usr.sbin/nsd/xdp-server.c
732
STATUP(nsd, dropped);
usr.sbin/nsd/xdp-server.c
733
ZTATUP(nsd, q->zone, dropped);
usr.sbin/nsd/xdp-server.c
818
STATUP(xdp->nsd, qudp6);
usr.sbin/nsd/xdp-server.c
827
STATUP(xdp->nsd, qudp);
usr.sbin/nsd/xdp-server.c
835
dnslen = parse_dns(xdp->nsd, dnslen, query, query->remote_addr.ss_family);
usr.sbin/nsd/xdp-server.c
927
xdp->nsd->st->txerr += to_send;
usr.sbin/nsd/xdp-server.h
30
struct nsd; /* avoid recursive header include */
usr.sbin/nsd/xdp-server.h
79
struct nsd *nsd;
usr.sbin/nsd/xfrd-catalog-zones.c
1013
if(!(cmz = as_catalog_member_zone(zone_options_find(xfrd->nsd->options,
usr.sbin/nsd/xfrd-catalog-zones.c
1144
, xfrd->nsd, xw->xfrfilenumber);
usr.sbin/nsd/xfrd-catalog-zones.c
1169
, 1, msg, xfrd->nsd, xw->xfrfilenumber);
usr.sbin/nsd/xfrd-catalog-zones.c
1170
task_new_apply_xfr( xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task
usr.sbin/nsd/xfrd-catalog-zones.c
1221
region_recycle( xfrd->nsd->options->region
usr.sbin/nsd/xfrd-catalog-zones.c
252
if ((zone = namedb_find_zone(xfrd->nsd->db, dname))) {
usr.sbin/nsd/xfrd-catalog-zones.c
253
namedb_zone_delete(xfrd->nsd->db, zone);
usr.sbin/nsd/xfrd-catalog-zones.c
353
task_new_del_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd-catalog-zones.c
370
region_recycle( xfrd->nsd->options->region,
usr.sbin/nsd/xfrd-catalog-zones.c
375
zone_options_delete(xfrd->nsd->options,&consumer_member_zone->options);
usr.sbin/nsd/xfrd-catalog-zones.c
392
namedb_read_zonefile(xfrd->nsd, namedb_find_or_create_zone(
usr.sbin/nsd/xfrd-catalog-zones.c
393
xfrd->nsd->db, name, consumer_zone->options), NULL, NULL);
usr.sbin/nsd/xfrd-catalog-zones.c
399
namedb_read_zonefile(xfrd->nsd,
usr.sbin/nsd/xfrd-catalog-zones.c
400
namedb_find_or_create_zone(xfrd->nsd->db,
usr.sbin/nsd/xfrd-catalog-zones.c
408
namedb_read_zonefile(xfrd->nsd,
usr.sbin/nsd/xfrd-catalog-zones.c
410
xfrd->nsd->db, name, consumer_zone->options),
usr.sbin/nsd/xfrd-catalog-zones.c
514
if (!xfrd->nsd->db) {
usr.sbin/nsd/xfrd-catalog-zones.c
515
xfrd->nsd->db = namedb_open(xfrd->nsd->options);
usr.sbin/nsd/xfrd-catalog-zones.c
526
zone = namedb_find_zone(xfrd->nsd->db, dname);
usr.sbin/nsd/xfrd-catalog-zones.c
528
zone = namedb_zone_create(xfrd->nsd->db, dname,
usr.sbin/nsd/xfrd-catalog-zones.c
530
namedb_read_zonefile(xfrd->nsd, zone, NULL, NULL);
usr.sbin/nsd/xfrd-catalog-zones.c
539
if(!namedb_lookup(xfrd->nsd->db, label_plus_dname("version", dname),
usr.sbin/nsd/xfrd-catalog-zones.c
563
if(!namedb_lookup(xfrd->nsd->db, label_plus_dname("zones", dname),
usr.sbin/nsd/xfrd-catalog-zones.c
58
return pattern_options_find(xfrd->nsd->options,
usr.sbin/nsd/xfrd-catalog-zones.c
613
if(!namedb_lookup(xfrd->nsd->db, label_plus_dname("group",
usr.sbin/nsd/xfrd-catalog-zones.c
640
xfrd->nsd->options, group_value)))
usr.sbin/nsd/xfrd-catalog-zones.c
67
if(xfrd->nsd->options->zonestatnames->count != xfrd->zonestat_safe)
usr.sbin/nsd/xfrd-catalog-zones.c
68
task_new_zonestat_inc(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd-catalog-zones.c
70
xfrd->nsd->options->zonestatnames->count);
usr.sbin/nsd/xfrd-catalog-zones.c
748
xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd-catalog-zones.c
770
xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd-catalog-zones.c
773
getzonestatid( xfrd->nsd->options
usr.sbin/nsd/xfrd-catalog-zones.c
799
zopt = zone_options_find(xfrd->nsd->options,
usr.sbin/nsd/xfrd-catalog-zones.c
827
to_add= catalog_member_zone_create(xfrd->nsd->options->region);
usr.sbin/nsd/xfrd-catalog-zones.c
829
xfrd->nsd->options->region, member_domain_str);
usr.sbin/nsd/xfrd-catalog-zones.c
831
if (!nsd_options_insert_zone(xfrd->nsd->options,
usr.sbin/nsd/xfrd-catalog-zones.c
836
zone_options_delete(xfrd->nsd->options,
usr.sbin/nsd/xfrd-catalog-zones.c
840
to_add->member_id = dname_copy( xfrd->nsd->options->region
usr.sbin/nsd/xfrd-catalog-zones.c
853
task_new_add_zone(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd-catalog-zones.c
856
getzonestatid(xfrd->nsd->options, &to_add->options));
usr.sbin/nsd/xfrd-catalog-zones.c
918
producer_name = dname_parse(xfrd->nsd->options->region,
usr.sbin/nsd/xfrd-catalog-zones.c
920
producer_zopt = zone_options_find(xfrd->nsd->options, producer_name);
usr.sbin/nsd/xfrd-catalog-zones.c
922
region_recycle( xfrd->nsd->options->region, (void *)producer_name
usr.sbin/nsd/xfrd-catalog-zones.c
986
cmz->member_id = dname_copy(xfrd->nsd->options->region,
usr.sbin/nsd/xfrd-disk.c
145
const char* statefile = xfrd->nsd->options->xfrdfile;
usr.sbin/nsd/xfrd-disk.c
200
if(nsd.signal_hint_shutdown) {
usr.sbin/nsd/xfrd-disk.c
457
const char* statefile = xfrd->nsd->options->xfrdfile;
usr.sbin/nsd/xfrd-disk.c
526
tempdirname(char* buf, size_t sz, struct nsd* nsd)
usr.sbin/nsd/xfrd-disk.c
529
nsd->options->xfrdir, (int)nsd->pid);
usr.sbin/nsd/xfrd-disk.c
533
xfrd_make_tempdir(struct nsd* nsd)
usr.sbin/nsd/xfrd-disk.c
536
tempdirname(tnm, sizeof(tnm), nsd);
usr.sbin/nsd/xfrd-disk.c
551
xfrd_del_tempdir(struct nsd* nsd)
usr.sbin/nsd/xfrd-disk.c
554
tempdirname(tnm, sizeof(tnm), nsd);
usr.sbin/nsd/xfrd-disk.c
565
tempxfrname(char* buf, size_t sz, struct nsd* nsd, uint64_t number)
usr.sbin/nsd/xfrd-disk.c
568
tempdirname(tnm, sizeof(tnm), nsd);
usr.sbin/nsd/xfrd-disk.c
573
xfrd_open_xfrfile(struct nsd* nsd, uint64_t number, char* mode)
usr.sbin/nsd/xfrd-disk.c
577
tempxfrname(fname, sizeof(fname), nsd, number);
usr.sbin/nsd/xfrd-disk.c
581
xfrd_make_tempdir(nsd);
usr.sbin/nsd/xfrd-disk.c
593
xfrd_unlink_xfrfile(struct nsd* nsd, uint64_t number)
usr.sbin/nsd/xfrd-disk.c
596
tempxfrname(fname, sizeof(fname), nsd, number);
usr.sbin/nsd/xfrd-disk.c
604
xfrd_get_xfrfile_size(struct nsd* nsd, uint64_t number )
usr.sbin/nsd/xfrd-disk.c
608
tempxfrname(fname, sizeof(fname), nsd, number);
usr.sbin/nsd/xfrd-disk.h
14
struct nsd;
usr.sbin/nsd/xfrd-disk.h
25
void xfrd_make_tempdir(struct nsd* nsd);
usr.sbin/nsd/xfrd-disk.h
27
void xfrd_del_tempdir(struct nsd* nsd);
usr.sbin/nsd/xfrd-disk.h
29
FILE* xfrd_open_xfrfile(struct nsd* nsd, uint64_t number, char* mode);
usr.sbin/nsd/xfrd-disk.h
31
void xfrd_unlink_xfrfile(struct nsd* nsd, uint64_t number);
usr.sbin/nsd/xfrd-disk.h
33
uint64_t xfrd_get_xfrfile_size(struct nsd* nsd, uint64_t number );
usr.sbin/nsd/xfrd-notify.h
27
struct nsd;
usr.sbin/nsd/xfrd-tcp.c
959
if(xfrd->nsd->outgoing_tcp_mss > 0) {
usr.sbin/nsd/xfrd-tcp.c
962
(void*)&xfrd->nsd->outgoing_tcp_mss,
usr.sbin/nsd/xfrd-tcp.c
963
sizeof(xfrd->nsd->outgoing_tcp_mss)) < 0) {
usr.sbin/nsd/xfrd.c
1003
if (xfrd->nsd->file_rotation_ok)
usr.sbin/nsd/xfrd.c
1004
log_reopen(xfrd->nsd->log_filename, 0);
usr.sbin/nsd/xfrd.c
1068
xfrd_free_namedb(struct nsd* nsd)
usr.sbin/nsd/xfrd.c
1070
namedb_close(nsd->db);
usr.sbin/nsd/xfrd.c
1071
nsd->db = 0;
usr.sbin/nsd/xfrd.c
139
xfrd_init(int socket, struct nsd* nsd, int shortsoa, int reload_active,
usr.sbin/nsd/xfrd.c
147
nsd->server_kind = NSD_SERVER_MAIN;
usr.sbin/nsd/xfrd.c
160
xfrd->nsd = nsd;
usr.sbin/nsd/xfrd.c
1613
task_new_expire(xfrd->nsd->task[xfrd->nsd->mytask], xfrd->last_task,
usr.sbin/nsd/xfrd.c
168
xfrd->zonestat_safe = nsd->zonestatdesired;
usr.sbin/nsd/xfrd.c
172
udb_ptr_init(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/xfrd.c
173
assert(shortsoa || udb_base_get_userdata(xfrd->nsd->task[xfrd->nsd->mytask])->data == 0);
usr.sbin/nsd/xfrd.c
195
xfrd->region, nsd->child_count * 2, sizeof(struct event));
usr.sbin/nsd/xfrd.c
197
xfrd->region, nsd->child_count * 2, sizeof(struct xfrd_tcp));
usr.sbin/nsd/xfrd.c
198
for(i = 0; i < 2 * nsd->child_count; i++) {
usr.sbin/nsd/xfrd.c
199
int fd = nsd->serve2xfrd_fd_recv[i];
usr.sbin/nsd/xfrd.c
215
if(nsd->options->zonefiles_write)
usr.sbin/nsd/xfrd.c
222
daemon_remote_attach(xfrd->nsd->rc, xfrd);
usr.sbin/nsd/xfrd.c
225
daemon_metrics_attach(xfrd->nsd->metrics, xfrd);
usr.sbin/nsd/xfrd.c
228
xfrd->tcp_set = xfrd_tcp_set_create(xfrd->region, nsd->options->tls_cert_bundle, nsd->options->xfrd_tcp_max, nsd->options->xfrd_tcp_pipeline);
usr.sbin/nsd/xfrd.c
229
xfrd->tcp_set->tcp_timeout = nsd->tcp_timeout;
usr.sbin/nsd/xfrd.c
237
if(nsd->options->xfrdfile != NULL && nsd->options->xfrdfile[0]!=0)
usr.sbin/nsd/xfrd.c
241
if(nsd->signal_hint_shutdown) {
usr.sbin/nsd/xfrd.c
2436
xfrd_unlink_xfrfile(xfrd->nsd, xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
2490
xfrd_unlink_xfrfile(xfrd->nsd, zone->latest_xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
2522
buffer_begin(packet), buffer_limit(packet), xfrd->nsd,
usr.sbin/nsd/xfrd.c
2541
xfrd->nsd, zone->latest_xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
2617
(char*)buffer_begin(packet), xfrd->nsd, zone->latest_xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
2623
xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd.c
2630
zone->latest_xfr->sent = xfrd->nsd->mytask + 1;
usr.sbin/nsd/xfrd.c
2676
if(xfrd->nsd->options->xfrd_reload_timeout == -1)
usr.sbin/nsd/xfrd.c
2684
xfrd->nsd->options->xfrd_reload_timeout;
usr.sbin/nsd/xfrd.c
2693
if(tv.tv_sec > xfrd->nsd->options->xfrd_reload_timeout)
usr.sbin/nsd/xfrd.c
2694
tv.tv_sec = xfrd->nsd->options->xfrd_reload_timeout;
usr.sbin/nsd/xfrd.c
2715
xfrd->nsd->options->xfrd_reload_timeout;
usr.sbin/nsd/xfrd.c
2854
uint8_t sent = (xfrd->nsd->mytask == 0) + 1;
usr.sbin/nsd/xfrd.c
290
if(xfrd->nsd->signal_hint_quit || xfrd->nsd->signal_hint_shutdown) {
usr.sbin/nsd/xfrd.c
291
xfrd->nsd->signal_hint_quit = 0;
usr.sbin/nsd/xfrd.c
292
xfrd->nsd->signal_hint_shutdown = 0;
usr.sbin/nsd/xfrd.c
2939
xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd.c
2950
xfr->sent = send ? 1 + xfrd->nsd->mytask : 0;
usr.sbin/nsd/xfrd.c
2968
zonestat_remap(xfrd->nsd, 0, xfrd->zonestat_safe*sizeof(struct nsdst));
usr.sbin/nsd/xfrd.c
2969
xfrd->nsd->zonestatsize[0] = xfrd->zonestat_safe;
usr.sbin/nsd/xfrd.c
297
} else if(xfrd->nsd->signal_hint_reload_hup) {
usr.sbin/nsd/xfrd.c
2970
zonestat_remap(xfrd->nsd, 1, xfrd->zonestat_safe*sizeof(struct nsdst));
usr.sbin/nsd/xfrd.c
2971
xfrd->nsd->zonestatsize[1] = xfrd->zonestat_safe;
usr.sbin/nsd/xfrd.c
299
xfrd->nsd->signal_hint_reload_hup = 0;
usr.sbin/nsd/xfrd.c
300
if(xfrd->nsd->options->reload_config) {
usr.sbin/nsd/xfrd.c
303
if(xfrd->nsd->options->zonefiles_check) {
usr.sbin/nsd/xfrd.c
3039
if(xfrd->nsd->options->zonefiles_write == 0)
usr.sbin/nsd/xfrd.c
304
task_new_check_zonefiles(xfrd->nsd->task[
usr.sbin/nsd/xfrd.c
3048
task_new_write_zonefiles(xfrd->nsd->task[xfrd->nsd->mytask],
usr.sbin/nsd/xfrd.c
305
xfrd->nsd->mytask], xfrd->last_task, NULL);
usr.sbin/nsd/xfrd.c
3058
if(xfrd->nsd->options->zonefiles_write == 0)
usr.sbin/nsd/xfrd.c
3060
tv.tv_sec = xfrd->nsd->options->zonefiles_write;
usr.sbin/nsd/xfrd.c
308
} else if(xfrd->nsd->signal_hint_statsusr) {
usr.sbin/nsd/xfrd.c
309
xfrd->nsd->signal_hint_statsusr = 0;
usr.sbin/nsd/xfrd.c
317
xfrd->nsd->signal_hint_child = 0;
usr.sbin/nsd/xfrd.c
377
zone_list_close(nsd.options);
usr.sbin/nsd/xfrd.c
378
if(xfrd->nsd->options->xfrdfile != NULL && xfrd->nsd->options->xfrdfile[0]!=0)
usr.sbin/nsd/xfrd.c
388
if(xfrd->nsd->options->zonefiles_write) {
usr.sbin/nsd/xfrd.c
391
daemon_remote_close(xfrd->nsd->rc); /* close sockets of rc */
usr.sbin/nsd/xfrd.c
432
xfrd_unlink_xfrfile(xfrd->nsd, xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
436
xfrd_clean_pending_tasks(xfrd->nsd, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/xfrd.c
437
xfrd_del_tempdir(xfrd->nsd);
usr.sbin/nsd/xfrd.c
438
daemon_remote_delete(xfrd->nsd->rc); /* ssl-delete secret keys */
usr.sbin/nsd/xfrd.c
440
if (xfrd->nsd->tls_ctx)
usr.sbin/nsd/xfrd.c
441
SSL_CTX_free(xfrd->nsd->tls_ctx);
usr.sbin/nsd/xfrd.c
457
dt_collector_close(nsd.dt_collector, &nsd);
usr.sbin/nsd/xfrd.c
463
if(xfrd->nsd->db) {
usr.sbin/nsd/xfrd.c
464
namedb_close(xfrd->nsd->db);
usr.sbin/nsd/xfrd.c
492
dt_collector_destroy(nsd.dt_collector, &nsd);
usr.sbin/nsd/xfrd.c
494
udb_base_free(nsd.task[0]);
usr.sbin/nsd/xfrd.c
495
udb_base_free(nsd.task[1]);
usr.sbin/nsd/xfrd.c
498
nsd_options_destroy(nsd.options);
usr.sbin/nsd/xfrd.c
499
region_destroy(nsd.region);
usr.sbin/nsd/xfrd.c
507
xfrd_clean_pending_tasks(struct nsd* nsd, udb_base* u)
usr.sbin/nsd/xfrd.c
514
xfrd_unlink_xfrfile(nsd, TASKLIST(&t)->yesno);
usr.sbin/nsd/xfrd.c
595
RBTREE_FOR(zone_opt, struct zone_options*, xfrd->nsd->options->zone_options)
usr.sbin/nsd/xfrd.c
674
if(!(df = xfrd_open_xfrfile(xfrd->nsd, xfr->xfrfilenumber, "r"))) {
usr.sbin/nsd/xfrd.c
679
} else if(0 >= apply_ixfr_for_zone(xfrd->nsd, dbzone, df,
usr.sbin/nsd/xfrd.c
680
xfrd->nsd->options, NULL, xfr->xfrfilenumber)) {
usr.sbin/nsd/xfrd.c
69
static void xfrd_clean_pending_tasks(struct nsd* nsd, udb_base* u);
usr.sbin/nsd/xfrd.c
795
DIFF_VERIFIED, xfrd->nsd,
usr.sbin/nsd/xfrd.c
803
xfrd_unlink_xfrfile(xfrd->nsd, pxfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
818
if(xfrd->nsd->db
usr.sbin/nsd/xfrd.c
825
dbzone = namedb_find_or_create_zone( xfrd->nsd->db, task->zname
usr.sbin/nsd/xfrd.c
862
xfrd->nsd, xfr->xfrfilenumber);
usr.sbin/nsd/xfrd.c
925
struct udb_base* xtask = xfrd->nsd->task[xfrd->nsd->mytask];
usr.sbin/nsd/xfrd.c
949
if(block_read(&nsd, socket, &cmd, sizeof(cmd), -1) != sizeof(cmd) ||
usr.sbin/nsd/xfrd.c
951
if(nsd.signal_hint_shutdown)
usr.sbin/nsd/xfrd.c
965
xfrd->nsd->mytask = 1 - xfrd->nsd->mytask;
usr.sbin/nsd/xfrd.c
966
xtask = xfrd->nsd->task[xfrd->nsd->mytask];
usr.sbin/nsd/xfrd.c
975
udb_ptr_init(xfrd->last_task, xfrd->nsd->task[xfrd->nsd->mytask]);
usr.sbin/nsd/xfrd.h
30
struct nsd;
usr.sbin/nsd/xfrd.h
364
void xfrd_init(int socket, struct nsd* nsd, int shortsoa, int reload_active,
usr.sbin/nsd/xfrd.h
448
void xfrd_free_namedb(struct nsd* nsd);
usr.sbin/nsd/xfrd.h
50
struct nsd* nsd;