Lines Matching defs:dctx

5048 	struct dumpcontext *dctx = uap;
5051 zle = isc_mem_get(dctx->mctx, sizeof *zle);
5057 ISC_LIST_APPEND(ISC_LIST_TAIL(dctx->viewlist)->zonelist, zle, link);
5062 add_view_tolist(struct dumpcontext *dctx, dns_view_t *view) {
5069 for (vle = ISC_LIST_HEAD(dctx->viewlist);
5075 vle = isc_mem_get(dctx->mctx, sizeof *vle);
5082 ISC_LIST_APPEND(dctx->viewlist, vle, link);
5083 if (dctx->dumpzones)
5085 add_zone_tolist, dctx);
5090 dumpcontext_destroy(struct dumpcontext *dctx) {
5094 vle = ISC_LIST_HEAD(dctx->viewlist);
5096 ISC_LIST_UNLINK(dctx->viewlist, vle, link);
5101 isc_mem_put(dctx->mctx, zle, sizeof *zle);
5105 isc_mem_put(dctx->mctx, vle, sizeof *vle);
5106 vle = ISC_LIST_HEAD(dctx->viewlist);
5108 if (dctx->version != NULL)
5109 dns_db_closeversion(dctx->db, &dctx->version, ISC_FALSE);
5110 if (dctx->db != NULL)
5111 dns_db_detach(&dctx->db);
5112 if (dctx->cache != NULL)
5113 dns_db_detach(&dctx->cache);
5114 if (dctx->task != NULL)
5115 isc_task_detach(&dctx->task);
5116 if (dctx->fp != NULL)
5117 (void)isc_stdio_close(dctx->fp);
5118 if (dctx->mdctx != NULL)
5119 dns_dumpctx_detach(&dctx->mdctx);
5120 isc_mem_put(dctx->mctx, dctx, sizeof *dctx);
5125 struct dumpcontext *dctx = arg;
5131 if (dctx->mdctx != NULL)
5132 dns_dumpctx_detach(&dctx->mdctx);
5133 if (dctx->view == NULL) {
5134 dctx->view = ISC_LIST_HEAD(dctx->viewlist);
5135 if (dctx->view == NULL)
5137 INSIST(dctx->zone == NULL);
5141 fprintf(dctx->fp, ";\n; Start view %s\n;\n", dctx->view->view->name);
5143 if (dctx->zone == NULL && dctx->cache == NULL && dctx->dumpcache) {
5146 if (dctx->view->view->cachedb != NULL)
5147 dns_db_attach(dctx->view->view->cachedb, &dctx->cache);
5148 if (dctx->cache != NULL) {
5150 fprintf(dctx->fp, ";\n; Cache dump of view '%s'\n;\n",
5151 dctx->view->view->name);
5152 result = dns_master_dumptostreaminc(dctx->mctx,
5153 dctx->cache, NULL,
5154 style, dctx->fp,
5155 dctx->task,
5156 dumpdone, dctx,
5157 &dctx->mdctx);
5161 fprintf(dctx->fp, "; %s\n",
5167 if (dctx->cache != NULL) {
5168 dns_adb_dump(dctx->view->view->adb, dctx->fp);
5169 dns_resolver_printbadcache(dctx->view->view->resolver,
5170 dctx->fp);
5171 dns_db_detach(&dctx->cache);
5173 if (dctx->dumpzones) {
5176 if (dctx->version != NULL)
5177 dns_db_closeversion(dctx->db, &dctx->version,
5179 if (dctx->db != NULL)
5180 dns_db_detach(&dctx->db);
5181 if (dctx->zone == NULL)
5182 dctx->zone = ISC_LIST_HEAD(dctx->view->zonelist);
5184 dctx->zone = ISC_LIST_NEXT(dctx->zone, link);
5185 if (dctx->zone != NULL) {
5187 dns_zone_name(dctx->zone->zone, buf, sizeof(buf));
5188 fprintf(dctx->fp, ";\n; Zone dump of '%s'\n;\n", buf);
5189 result = dns_zone_getdb(dctx->zone->zone, &dctx->db);
5191 fprintf(dctx->fp, "; %s\n",
5195 dns_db_currentversion(dctx->db, &dctx->version);
5196 result = dns_master_dumptostreaminc(dctx->mctx,
5197 dctx->db,
5198 dctx->version,
5199 style, dctx->fp,
5200 dctx->task,
5201 dumpdone, dctx,
5202 &dctx->mdctx);
5206 fprintf(dctx->fp, "; %s\n",
5216 if (dctx->view != NULL)
5217 dctx->view = ISC_LIST_NEXT(dctx->view, link);
5218 if (dctx->view != NULL)
5221 fprintf(dctx->fp, "; Dump complete\n");
5222 result = isc_stdio_flush(dctx->fp);
5232 dumpcontext_destroy(dctx);
5237 struct dumpcontext *dctx = NULL;
5248 dctx = isc_mem_get(server->mctx, sizeof(*dctx));
5249 if (dctx == NULL)
5252 dctx->mctx = server->mctx;
5253 dctx->dumpcache = ISC_TRUE;
5254 dctx->dumpzones = ISC_FALSE;
5255 dctx->fp = NULL;
5256 ISC_LIST_INIT(dctx->viewlist);
5257 dctx->view = NULL;
5258 dctx->zone = NULL;
5259 dctx->cache = NULL;
5260 dctx->mdctx = NULL;
5261 dctx->db = NULL;
5262 dctx->cache = NULL;
5263 dctx->task = NULL;
5264 dctx->version = NULL;
5265 isc_task_attach(server->task, &dctx->task);
5267 CHECKMF(isc_stdio_open(server->dumpfile, "w", &dctx->fp),
5277 dctx->dumpzones = ISC_TRUE;
5278 dctx->dumpcache = ISC_TRUE;
5281 dctx->dumpzones = ISC_FALSE;
5282 dctx->dumpcache = ISC_TRUE;
5285 dctx->dumpzones = ISC_TRUE;
5286 dctx->dumpcache = ISC_FALSE;
5297 CHECK(add_view_tolist(dctx, view));
5304 dumpdone(dctx, ISC_R_SUCCESS);
5308 if (dctx != NULL)
5309 dumpcontext_destroy(dctx);