Lines Matching +full:setup +full:- +full:duration +full:- +full:ns
2 * smallapp/unbound-control.c - remote control utility for unbound.
90 /** Give unbound-control usage, and exit (1). */
94 printf("Usage: local-unbound-control [options] command\n"); in usage()
97 printf(" -c file config file, default is %s\n", CONFIGFILE); in usage()
98 printf(" -s ip[@port] server address, if omitted config is used.\n"); in usage()
99 printf(" -q quiet (don't print anything if it works ok).\n"); in usage()
100 printf(" -h show this usage help.\n"); in usage()
114 printf(" most options; check unbound-control(8).\n"); in usage()
119 printf(" ; check unbound-control(8).\n"); in usage()
120 printf(" +v verbose output, it will include duration needed.\n"); in usage()
142 printf(" multi-process operation)\n"); in usage()
145 printf(" multi-process operation)\n"); in usage()
150 printf(" types: A, AAAA, MX, PTR, NS,\n"); in usage()
165 printf(" list_stubs list stub-zones and root hints in use\n"); in usage()
166 printf(" list_forwards list forward-zones in use\n"); in usage()
167 printf(" list_insecure list domain-insecure zones\n"); in usage()
168 printf(" list_local_zones list local-zones in use\n"); in usage()
169 printf(" list_local_data list local-data RRs in use\n"); in usage()
170 printf(" insecure_add zone add domain-insecure zone\n"); in usage()
171 printf(" insecure_remove zone remove domain-insecure zone\n"); in usage()
172 printf(" forward_add [+it] zone addr.. add forward-zone with servers\n"); in usage()
174 printf(" stub_add [+ipt] zone addr.. add stub-zone with servers\n"); in usage()
179 printf(" forward [off | addr ...] without arg show forward setup\n"); in usage()
188 printf(" view_list_local_zones view list local-zones in view\n"); in usage()
189 printf(" view_list_local_data view list local-data RRs in view\n"); in usage()
190 printf(" view_local_zone view name type add local-zone in view\n"); in usage()
191 printf(" view_local_zone_remove view name remove local-zone in view\n"); in usage()
192 printf(" view_local_data view RR... add local-data in view\n"); in usage()
193 printf(" view_local_datas view add list of local-data to view\n"); in usage()
195 printf(" view_local_data_remove view name remove local-data in view\n"); in usage()
196 printf(" view_local_datas_remove view remove list of local-data from view\n"); in usage()
228 PR_UL_NM("num.queries", s->svr.num_queries); in pr_stats()
230 s->svr.num_queries_ip_ratelimited); in pr_stats()
232 s->svr.num_queries_cookie_valid); in pr_stats()
234 s->svr.num_queries_cookie_client); in pr_stats()
236 s->svr.num_queries_cookie_invalid); in pr_stats()
238 s->svr.num_queries_discard_timeout); in pr_stats()
239 PR_UL_NM("num.queries_wait_limit", s->svr.num_queries_wait_limit); in pr_stats()
241 s->svr.num_queries - s->svr.num_queries_missed_cache); in pr_stats()
242 PR_UL_NM("num.cachemiss", s->svr.num_queries_missed_cache); in pr_stats()
243 PR_UL_NM("num.prefetch", s->svr.num_queries_prefetch); in pr_stats()
244 PR_UL_NM("num.queries_timed_out", s->svr.num_queries_timed_out); in pr_stats()
245 PR_UL_NM("query.queue_time_us.max", s->svr.max_query_time_us); in pr_stats()
246 PR_UL_NM("num.expired", s->svr.ans_expired); in pr_stats()
247 PR_UL_NM("num.recursivereplies", s->mesh_replies_sent); in pr_stats()
249 PR_UL_NM("num.dnscrypt.crypted", s->svr.num_query_dnscrypt_crypted); in pr_stats()
250 PR_UL_NM("num.dnscrypt.cert", s->svr.num_query_dnscrypt_cert); in pr_stats()
251 PR_UL_NM("num.dnscrypt.cleartext", s->svr.num_query_dnscrypt_cleartext); in pr_stats()
253 s->svr.num_query_dnscrypt_crypted_malformed); in pr_stats()
255 PR_UL_NM("num.dns_error_reports", s->svr.num_dns_error_reports); in pr_stats()
257 (s->svr.num_queries_missed_cache+s->svr.num_queries_prefetch)? in pr_stats()
258 (double)s->svr.sum_query_list_size/ in pr_stats()
259 (double)(s->svr.num_queries_missed_cache+ in pr_stats()
260 s->svr.num_queries_prefetch) : 0.0); in pr_stats()
261 PR_UL_NM("requestlist.max", s->svr.max_query_list_size); in pr_stats()
262 PR_UL_NM("requestlist.overwritten", s->mesh_jostled); in pr_stats()
263 PR_UL_NM("requestlist.exceeded", s->mesh_dropped); in pr_stats()
264 PR_UL_NM("requestlist.current.all", s->mesh_num_states); in pr_stats()
265 PR_UL_NM("requestlist.current.user", s->mesh_num_reply_states); in pr_stats()
267 sumwait.tv_sec = s->mesh_replies_sum_wait_sec; in pr_stats()
268 sumwait.tv_usec = s->mesh_replies_sum_wait_usec; in pr_stats()
270 timeval_divide(&avg, &sumwait, s->mesh_replies_sent); in pr_stats()
273 printf("%s.recursion.time.median"SQ"%g\n", nm, s->mesh_time_median); in pr_stats()
274 PR_UL_NM("tcpusage", s->svr.tcp_accept_usage); in pr_stats()
280 PR_STATSTIME("time.now", shm_stat->time.now); in print_uptime()
281 PR_STATSTIME("time.up", shm_stat->time.up); in print_uptime()
282 PR_STATSTIME("time.elapsed", shm_stat->time.elapsed); in print_uptime()
289 PR_LL("mem.cache.rrset", shm_stat->mem.rrset); in print_mem()
290 PR_LL("mem.cache.message", shm_stat->mem.msg); in print_mem()
291 PR_LL("mem.mod.iterator", shm_stat->mem.iter); in print_mem()
292 PR_LL("mem.mod.validator", shm_stat->mem.val); in print_mem()
293 PR_LL("mem.mod.respip", shm_stat->mem.respip); in print_mem()
295 PR_LL("mem.mod.subnet", shm_stat->mem.subnet); in print_mem()
298 PR_LL("mem.mod.ipsecmod", shm_stat->mem.ipsecmod); in print_mem()
301 PR_LL("mem.mod.dynlib", shm_stat->mem.dynlib); in print_mem()
305 shm_stat->mem.dnscrypt_shared_secret); in print_mem()
307 shm_stat->mem.dnscrypt_nonce); in print_mem()
309 PR_LL("mem.streamwait", s->svr.mem_stream_wait); in print_mem()
310 PR_LL("mem.http.query_buffer", s->svr.mem_http2_query_buffer); in print_mem()
311 PR_LL("mem.http.response_buffer", s->svr.mem_http2_response_buffer); in print_mem()
313 PR_LL("mem.quic", s->svr.mem_quic); in print_mem()
325 timehist_import(hist, s->svr.hist, NUM_BUCKETS_HIST); in print_hist()
326 for(i=0; i<hist->num; i++) { in print_hist()
328 (int)hist->buckets[i].lower.tv_sec, in print_hist()
329 (int)hist->buckets[i].lower.tv_usec, in print_hist()
330 (int)hist->buckets[i].upper.tv_sec, in print_hist()
331 (int)hist->buckets[i].upper.tv_usec, in print_hist()
332 (unsigned long)hist->buckets[i].count); in print_hist()
345 if(inhibit_zero && s->svr.qtype[i] == 0) in print_extended()
348 PR_UL_SUB("num.query.type", nm, s->svr.qtype[i]); in print_extended()
350 if(!inhibit_zero || s->svr.qtype_big) { in print_extended()
351 PR_UL("num.query.type.other", s->svr.qtype_big); in print_extended()
356 if(inhibit_zero && s->svr.qclass[i] == 0) in print_extended()
359 PR_UL_SUB("num.query.class", nm, s->svr.qclass[i]); in print_extended()
361 if(!inhibit_zero || s->svr.qclass_big) { in print_extended()
362 PR_UL("num.query.class.other", s->svr.qclass_big); in print_extended()
367 if(inhibit_zero && s->svr.qopcode[i] == 0) in print_extended()
370 PR_UL_SUB("num.query.opcode", nm, s->svr.qopcode[i]); in print_extended()
374 PR_UL("num.query.tcp", s->svr.qtcp); in print_extended()
375 PR_UL("num.query.tcpout", s->svr.qtcp_outgoing); in print_extended()
376 PR_UL("num.query.udpout", s->svr.qudp_outgoing); in print_extended()
377 PR_UL("num.query.tls", s->svr.qtls); in print_extended()
378 PR_UL("num.query.tls_resume", s->svr.qtls_resume); in print_extended()
379 PR_UL("num.query.ipv6", s->svr.qipv6); in print_extended()
380 PR_UL("num.query.https", s->svr.qhttps); in print_extended()
382 PR_UL("num.query.quic", s->svr.qquic); in print_extended()
386 PR_UL("num.query.flags.QR", s->svr.qbit_QR); in print_extended()
387 PR_UL("num.query.flags.AA", s->svr.qbit_AA); in print_extended()
388 PR_UL("num.query.flags.TC", s->svr.qbit_TC); in print_extended()
389 PR_UL("num.query.flags.RD", s->svr.qbit_RD); in print_extended()
390 PR_UL("num.query.flags.RA", s->svr.qbit_RA); in print_extended()
391 PR_UL("num.query.flags.Z", s->svr.qbit_Z); in print_extended()
392 PR_UL("num.query.flags.AD", s->svr.qbit_AD); in print_extended()
393 PR_UL("num.query.flags.CD", s->svr.qbit_CD); in print_extended()
394 PR_UL("num.query.edns.present", s->svr.qEDNS); in print_extended()
395 PR_UL("num.query.edns.DO", s->svr.qEDNS_DO); in print_extended()
399 /* Always include RCODEs 0-5 */ in print_extended()
400 if(inhibit_zero && i > LDNS_RCODE_REFUSED && s->svr.ans_rcode[i] == 0) in print_extended()
403 PR_UL_SUB("num.answer.rcode", nm, s->svr.ans_rcode[i]); in print_extended()
405 if(!inhibit_zero || s->svr.ans_rcode_nodata) { in print_extended()
406 PR_UL("num.answer.rcode.nodata", s->svr.ans_rcode_nodata); in print_extended()
409 PR_UL("num.query.ratelimited", s->svr.queries_ratelimited); in print_extended()
411 PR_UL("num.answer.secure", s->svr.ans_secure); in print_extended()
412 PR_UL("num.answer.bogus", s->svr.ans_bogus); in print_extended()
413 PR_UL("num.rrset.bogus", s->svr.rrset_bogus); in print_extended()
414 PR_UL("num.valops", s->svr.val_ops); in print_extended()
415 PR_UL("num.query.aggressive.NOERROR", s->svr.num_neg_cache_noerror); in print_extended()
416 PR_UL("num.query.aggressive.NXDOMAIN", s->svr.num_neg_cache_nxdomain); in print_extended()
418 PR_UL("unwanted.queries", s->svr.unwanted_queries); in print_extended()
419 PR_UL("unwanted.replies", s->svr.unwanted_replies); in print_extended()
421 PR_UL("msg.cache.count", s->svr.msg_cache_count); in print_extended()
422 PR_UL("rrset.cache.count", s->svr.rrset_cache_count); in print_extended()
423 PR_UL("infra.cache.count", s->svr.infra_cache_count); in print_extended()
424 PR_UL("key.cache.count", s->svr.key_cache_count); in print_extended()
426 PR_UL("msg.cache.max_collisions", s->svr.msg_cache_max_collisions); in print_extended()
427 PR_UL("rrset.cache.max_collisions", s->svr.rrset_cache_max_collisions); in print_extended()
432 if(inhibit_zero && s->svr.rpz_action[i] == 0) in print_extended()
434 PR_UL_SUB("num.rpz.action", rpz_action_to_string(i), s->svr.rpz_action[i]); in print_extended()
438 s->svr.shared_secret_cache_count); in print_extended()
440 s->svr.num_query_dnscrypt_secret_missed_cache); in print_extended()
441 PR_UL("dnscrypt_nonce.cache.count", s->svr.nonce_cache_count); in print_extended()
443 s->svr.num_query_dnscrypt_replay); in print_extended()
445 PR_UL("num.query.authzone.up", s->svr.num_query_authzone_up); in print_extended()
446 PR_UL("num.query.authzone.down", s->svr.num_query_authzone_down); in print_extended()
448 PR_UL("num.query.subnet", s->svr.num_query_subnet); in print_extended()
449 PR_UL("num.query.subnet_cache", s->svr.num_query_subnet_cache); in print_extended()
452 PR_UL("num.query.cachedb", s->svr.num_query_cachedb); in print_extended()
462 for(i=0; i<cfg->num_threads; i++) { in do_stats_shm()
468 if(cfg->stat_extended) { in do_stats_shm()
471 print_extended(stats, cfg->stat_inhibit_zero); in do_stats_shm()
490 id_ctl = shmget(cfg->shm_key, sizeof(int), SHM_R); in print_stats_shm()
491 if(id_ctl == -1) { in print_stats_shm()
492 fatal_exit("shmget(%d): %s", cfg->shm_key, strerror(errno)); in print_stats_shm()
494 id_arr = shmget(cfg->shm_key+1, sizeof(int), SHM_R); in print_stats_shm()
495 if(id_arr == -1) { in print_stats_shm()
496 fatal_exit("shmget(%d): %s", cfg->shm_key+1, strerror(errno)); in print_stats_shm()
499 if(shm_stat == (void*)-1) { in print_stats_shm()
503 if(stats == (void*)-1) { in print_stats_shm()
545 /** setup SSL context */
552 if(!(options_remote_is_address(cfg) && cfg->control_use_cert)) in setup_ctx()
554 s_cert = fname_after_chroot(cfg->server_cert_file, cfg, 1); in setup_ctx()
555 c_key = fname_after_chroot(cfg->control_key_file, cfg, 1); in setup_ctx()
556 c_cert = fname_after_chroot(cfg->control_cert_file, cfg, 1); in setup_ctx()
629 if(cfg->control_ifs.first) { in contact_server()
632 if(extstrtoaddr(cfg->control_ifs.first->str, &addr2, in contact_server()
634 svr = cfg->control_ifs.first->str; in contact_server()
637 cfg->control_ifs.first, &rcif, in contact_server()
646 } else if(cfg->do_ip4) { in contact_server()
666 usock->sun_family = AF_LOCAL; in contact_server()
668 usock->sun_len = (unsigned)sizeof(usock); in contact_server()
670 (void)strlcpy(usock->sun_path, svr, sizeof(usock->sun_path)); in contact_server()
677 if(!ipstrtoaddr(svr, cfg->control_port, &addr, &addrlen)) in contact_server()
684 if(fd == -1) { in contact_server()
715 if(select(fd+1, &rset, &wset, &eset, &tv) == -1) { in contact_server()
760 /** setup SSL on the connection */
808 if((r = SSL_read(ssl, buf, (int)len-1)) <= 0) { in remote_read()
817 ssize_t rr = recv(fd, buf, len-1, 0); in remote_read()
875 /** send end-of-file marker to server */
944 if(!cfg->remote_control_enable) in go()
945 log_warn("control-enable is 'no' in the config file."); in go()
970 /** Main routine for unbound-control */
982 /* stop the file output from unbound-control, overwrites the servers */ in main()
987 log_ident_set("unbound-control"); in main()
995 while( (c=getopt(argc, argv, "c:s:qh")) != -1) { in main()
1012 argc -= optind; in main()
1021 if(execlp("unbound", "unbound", "-c", cfgfile, in main()