diff options
author | Cy Schubert <cy@FreeBSD.org> | 2020-05-21 05:01:52 +0000 |
---|---|---|
committer | Cy Schubert <cy@FreeBSD.org> | 2020-05-21 05:01:52 +0000 |
commit | 6a53c00e64c4cf911eb00846733d9e6a47b2e7f4 (patch) | |
tree | 60a7720d2d4edfe62b094e2665743e8879ebb911 /util/config_file.c | |
parent | e2fe726866d062155f6b1aae749375475ef19191 (diff) |
Diffstat (limited to 'util/config_file.c')
-rw-r--r-- | util/config_file.c | 49 |
1 files changed, 40 insertions, 9 deletions
diff --git a/util/config_file.c b/util/config_file.c index 119b222384430..52ca5a184618e 100644 --- a/util/config_file.c +++ b/util/config_file.c @@ -246,6 +246,8 @@ config_create(void) cfg->serve_expired = 0; cfg->serve_expired_ttl = 0; cfg->serve_expired_ttl_reset = 0; + cfg->serve_expired_reply_ttl = 30; + cfg->serve_expired_client_timeout = 0; cfg->add_holddown = 30*24*3600; cfg->del_holddown = 30*24*3600; cfg->keep_missing = 366*24*3600; /* one year plus a little leeway */ @@ -327,9 +329,14 @@ config_create(void) cfg->ipsecmod_strict = 0; #endif #ifdef USE_CACHEDB - cfg->cachedb_backend = NULL; - cfg->cachedb_secret = NULL; -#endif + if(!(cfg->cachedb_backend = strdup("testframe"))) goto error_exit; + if(!(cfg->cachedb_secret = strdup("default"))) goto error_exit; +#ifdef USE_REDIS + if(!(cfg->redis_server_host = strdup("127.0.0.1"))) goto error_exit; + cfg->redis_timeout = 100; + cfg->redis_server_port = 6379; +#endif /* USE_REDIS */ +#endif /* USE_CACHEDB */ #ifdef USE_IPSET cfg->ipset_name_v4 = NULL; cfg->ipset_name_v6 = NULL; @@ -581,10 +588,15 @@ int config_set_option(struct config_file* cfg, const char* opt, else S_YNO("val-permissive-mode:", val_permissive_mode) else S_YNO("aggressive-nsec:", aggressive_nsec) else S_YNO("ignore-cd-flag:", ignore_cd) - else S_YNO("serve-expired:", serve_expired) - else if(strcmp(opt, "serve_expired_ttl:") == 0) + else if(strcmp(opt, "serve-expired:") == 0) + { IS_YES_OR_NO; cfg->serve_expired = (strcmp(val, "yes") == 0); + SERVE_EXPIRED = cfg->serve_expired; } + else if(strcmp(opt, "serve-expired-ttl:") == 0) { IS_NUMBER_OR_ZERO; cfg->serve_expired_ttl = atoi(val); SERVE_EXPIRED_TTL=(time_t)cfg->serve_expired_ttl;} else S_YNO("serve-expired-ttl-reset:", serve_expired_ttl_reset) + else if(strcmp(opt, "serve-expired-reply-ttl:") == 0) + { IS_NUMBER_OR_ZERO; cfg->serve_expired_reply_ttl = atoi(val); SERVE_EXPIRED_REPLY_TTL=(time_t)cfg->serve_expired_reply_ttl;} + else S_NUMBER_OR_ZERO("serve-expired-client-timeout:", serve_expired_client_timeout) else S_STR("val-nsec3-keysize-iterations:", val_nsec3_key_iterations) else S_UNSIGNED_OR_ZERO("add-holddown:", add_holddown) else S_UNSIGNED_OR_ZERO("del-holddown:", del_holddown) @@ -977,6 +989,8 @@ config_get_option(struct config_file* cfg, const char* opt, else O_YNO(opt, "serve-expired", serve_expired) else O_DEC(opt, "serve-expired-ttl", serve_expired_ttl) else O_YNO(opt, "serve-expired-ttl-reset", serve_expired_ttl_reset) + else O_DEC(opt, "serve-expired-reply-ttl", serve_expired_reply_ttl) + else O_DEC(opt, "serve-expired-client-timeout", serve_expired_client_timeout) else O_STR(opt, "val-nsec3-keysize-iterations",val_nsec3_key_iterations) else O_UNS(opt, "add-holddown", add_holddown) else O_UNS(opt, "del-holddown", del_holddown) @@ -1098,7 +1112,12 @@ config_get_option(struct config_file* cfg, const char* opt, #ifdef USE_CACHEDB else O_STR(opt, "backend", cachedb_backend) else O_STR(opt, "secret-seed", cachedb_secret) -#endif +#ifdef USE_REDIS + else O_STR(opt, "redis-server-host", redis_server_host) + else O_DEC(opt, "redis-server-port", redis_server_port) + else O_DEC(opt, "redis-timeout", redis_timeout) +#endif /* USE_REDIS */ +#endif /* USE_CACHEDB */ #ifdef USE_IPSET else O_STR(opt, "name-v4", ipset_name_v4) else O_STR(opt, "name-v6", ipset_name_v6) @@ -1279,6 +1298,10 @@ config_delauth(struct config_auth* p) config_delstrlist(p->urls); config_delstrlist(p->allow_notify); free(p->zonefile); + free(p->rpz_taglist); + free(p->rpz_action_override); + free(p->rpz_cname); + free(p->rpz_log_name); free(p); } @@ -1381,7 +1404,10 @@ config_delete(struct config_file* cfg) config_delstrlist(cfg->tls_session_ticket_keys.first); free(cfg->tls_ciphers); free(cfg->tls_ciphersuites); - free(cfg->log_identity); + if(cfg->log_identity) { + log_ident_revert_to_default(); + free(cfg->log_identity); + } config_del_strarray(cfg->ifs, cfg->num_ifs); config_del_strarray(cfg->out_ifs, cfg->num_out_ifs); config_delstubs(cfg->stubs); @@ -1444,7 +1470,10 @@ config_delete(struct config_file* cfg) #ifdef USE_CACHEDB free(cfg->cachedb_backend); free(cfg->cachedb_secret); -#endif +#ifdef USE_REDIS + free(cfg->redis_server_host); +#endif /* USE_REDIS */ +#endif /* USE_CACHEDB */ #ifdef USE_IPSET free(cfg->ipset_name_v4); free(cfg->ipset_name_v6); @@ -1942,7 +1971,7 @@ char* config_taglist2str(struct config_file* cfg, uint8_t* taglist, return strdup(buf); } -int taglist_intersect(uint8_t* list1, size_t list1len, uint8_t* list2, +int taglist_intersect(uint8_t* list1, size_t list1len, const uint8_t* list2, size_t list2len) { size_t i; @@ -1960,7 +1989,9 @@ config_apply(struct config_file* config) { MAX_TTL = (time_t)config->max_ttl; MIN_TTL = (time_t)config->min_ttl; + SERVE_EXPIRED = config->serve_expired; SERVE_EXPIRED_TTL = (time_t)config->serve_expired_ttl; + SERVE_EXPIRED_REPLY_TTL = (time_t)config->serve_expired_reply_ttl; MAX_NEG_TTL = (time_t)config->max_negative_ttl; RTT_MIN_TIMEOUT = config->infra_cache_min_rtt; EDNS_ADVERTISED_SIZE = (uint16_t)config->edns_buffer_size; |