Lines Matching refs:env
76 #define VALID_DTENV(env) ISC_MAGIC_VALID(env, DTENV_MAGIC)
182 dns_dtenv_t *env = NULL;
194 env = isc_mem_get(mctx, sizeof(dns_dtenv_t));
195 if (env == NULL)
198 memset(env, 0, sizeof(dns_dtenv_t));
200 CHECK(isc_refcount_init(&env->refcount, 1));
201 CHECK(isc_stats_create(mctx, &env->stats, dns_dnstapcounter_max));
202 env->path = isc_mem_strdup(mctx, path);
203 if (env->path == NULL)
219 fstrm_file_options_set_file_path(ffwopt, env->path);
226 env->path);
235 env->iothr = fstrm_iothr_init(*foptp, &fw);
236 if (env->iothr == NULL) {
243 env->mode = mode;
244 env->fopt = *foptp;
247 isc_mem_attach(mctx, &env->mctx);
249 env->magic = DTENV_MAGIC;
250 *envp = env;
263 if (env != NULL) {
264 if (env->mctx != NULL)
265 isc_mem_detach(&env->mctx);
266 if (env->path != NULL)
267 isc_mem_free(mctx, env->path);
268 if (env->stats != NULL)
269 isc_stats_detach(&env->stats);
270 isc_mem_put(mctx, env, sizeof(dns_dtenv_t));
278 dns_dt_reopen(dns_dtenv_t *env, int roll) {
287 REQUIRE(VALID_DTENV(env));
302 if (env->mode == dns_dtmode_file) {
305 fstrm_file_options_set_file_path(ffwopt, env->path);
308 } else if (env->mode == dns_dtmode_unix) {
312 env->path);
328 env->path);
332 if (env->iothr != NULL)
333 fstrm_iothr_destroy(&env->iothr);
335 if (env->mode == dns_dtmode_file && roll >= 0) {
340 char *filename = isc_mem_strdup(env->mctx, env->path);
347 isc_mem_free(env->mctx, filename);
351 env->iothr = fstrm_iothr_init(env->fopt, &fw);
352 if (env->iothr == NULL) {
376 toregion(dns_dtenv_t *env, isc_region_t *r, const char *str) {
382 p = (unsigned char *) isc_mem_strdup(env->mctx, str);
388 isc_mem_free(env->mctx, r->base);
401 dns_dt_setidentity(dns_dtenv_t *env, const char *identity) {
402 REQUIRE(VALID_DTENV(env));
404 return (toregion(env, &env->identity, identity));
408 dns_dt_setversion(dns_dtenv_t *env, const char *version) {
409 REQUIRE(VALID_DTENV(env));
411 return (toregion(env, &env->version, version));
415 dt_queue(dns_dtenv_t *env) {
422 REQUIRE(VALID_DTENV(env));
424 if (env->iothr == NULL)
444 ioq->ioq = fstrm_iothr_get_input_queue(env->iothr);
469 dns_dt_getstats(dns_dtenv_t *env, isc_stats_t **statsp) {
470 REQUIRE(VALID_DTENV(env));
473 if (env->stats == NULL)
475 isc_stats_attach(env->stats, statsp);
480 destroy(dns_dtenv_t *env) {
485 env->magic = 0;
489 if (env->iothr != NULL)
490 fstrm_iothr_destroy(&env->iothr);
491 if (env->fopt != NULL)
492 fstrm_iothr_options_destroy(&env->fopt);
494 if (env->identity.base != NULL) {
495 isc_mem_free(env->mctx, env->identity.base);
496 env->identity.length = 0;
498 if (env->version.base != NULL) {
499 isc_mem_free(env->mctx, env->version.base);
500 env->version.length = 0;
502 if (env->path != NULL)
503 isc_mem_free(env->mctx, env->path);
504 if (env->stats != NULL)
505 isc_stats_detach(&env->stats);
507 isc_mem_putanddetach(&env->mctx, env, sizeof(*env));
513 dns_dtenv_t *env;
517 env = *envp;
520 isc_refcount_decrement(&env->refcount, &refs);
522 destroy(env);
552 send_dt(dns_dtenv_t *env, void *buf, size_t len) {
556 REQUIRE(env != NULL);
561 ioq = dt_queue(env);
567 res = fstrm_iothr_submit(env->iothr, ioq, buf, len,
570 if (env->stats != NULL)
571 isc_stats_increment(env->stats,
575 if (env->stats != NULL)
576 isc_stats_increment(env->stats,
582 init_msg(dns_dtenv_t *env, dns_dtmsg_t *dm, Dnstap__Message__Type mtype) {
590 if (env->identity.length != 0) {
591 dm->d.identity.data = env->identity.base;
592 dm->d.identity.len = env->identity.length;
596 if (env->version.length != 0) {
597 dm->d.version.data = env->version.base;
598 dm->d.version.len = env->version.length;