static int noit_console_show_dns_cache(noit_console_closure_t ncct, int argc, char **argv, noit_console_state_t *dstate, void *closure) { int i; if(argc == 0) { noit_skiplist_node *sn; for(sn = noit_skiplist_getlist(&nc_dns_cache); sn; noit_skiplist_next(&nc_dns_cache, &sn)) { dns_cache_node *n = (dns_cache_node *)sn->data; nc_print_dns_cache_node(ncct, n->target, n); } } for(i=0;i<argc;i++) { dns_cache_node *n; n = noit_skiplist_find(&nc_dns_cache, argv[i], NULL); nc_print_dns_cache_node(ncct, argv[i], n); } return 0; }
static int noit_console_show_dns_cache(mtev_console_closure_t ncct, int argc, char **argv, mtev_console_state_t *dstate, void *closure) { int i; DCLOCK(); if(argc == 0) { mtev_skiplist_node *sn; for(sn = mtev_skiplist_getlist(nc_dns_cache); sn; mtev_skiplist_next(nc_dns_cache, &sn)) { dns_cache_node *n = (dns_cache_node *)mtev_skiplist_data(sn); nc_print_dns_cache_node(ncct, n->target, n); } } for(i=0;i<argc;i++) { dns_cache_node *n; n = mtev_skiplist_find(nc_dns_cache, argv[i], NULL); nc_print_dns_cache_node(ncct, argv[i], n); } DCUNLOCK(); return 0; }
static int noit_console_manip_dns_cache(mtev_console_closure_t ncct, int argc, char **argv, mtev_console_state_t *dstate, void *closure) { int i; if(argc == 0) { nc_printf(ncct, "dns_cache what?\n"); return 0; } DCLOCK(); if(closure == NULL) { /* adding */ for(i=0;i<argc;i++) { dns_cache_node *n; n = mtev_skiplist_find(&nc_dns_cache, argv[i], NULL); if(NULL != n) { nc_printf(ncct, " == Already in system ==\n"); nc_print_dns_cache_node(ncct, argv[i], n); } else { nc_printf(ncct, "%s submitted.\n", argv[i]); noit_check_resolver_remind_internal(argv[i], mtev_false); } } } else { for(i=0;i<argc;i++) { dns_cache_node *n; n = mtev_skiplist_find(&nc_dns_cache, argv[i], NULL); if(NULL != n) { if(n->lookup_inflight_v4 || n->lookup_inflight_v6) nc_printf(ncct, "%s is currently resolving and cannot be removed.\n"); else { mtev_skiplist_remove(&nc_dns_cache, argv[i], dns_cache_node_free); nc_printf(ncct, "%s removed.\n", argv[i]); } } else nc_printf(ncct, "%s not in system.\n", argv[i]); } } DCUNLOCK(); return 0; }