mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
- Fix #1415: patch to free dnscrypt environment on reload.
git-svn-id: file:///svn/unbound/trunk@4310 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
ffc2f687cf
commit
80f310e2a4
4 changed files with 29 additions and 3 deletions
|
|
@ -692,6 +692,9 @@ daemon_cleanup(struct daemon* daemon)
|
||||||
daemon->num = 0;
|
daemon->num = 0;
|
||||||
#ifdef USE_DNSTAP
|
#ifdef USE_DNSTAP
|
||||||
dt_delete(daemon->dtenv);
|
dt_delete(daemon->dtenv);
|
||||||
|
#endif
|
||||||
|
#ifdef USE_DNSCRYPT
|
||||||
|
dnsc_delete(daemon->dnscenv);
|
||||||
#endif
|
#endif
|
||||||
daemon->cfg = NULL;
|
daemon->cfg = NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -450,6 +450,7 @@ dnsc_load_local_data(struct dnsc_env* dnscenv, struct config_file *cfg)
|
||||||
snprintf(rr + strlen(rr), rrlen - 1 - strlen(rr), "\\%03d", c);
|
snprintf(rr + strlen(rr), rrlen - 1 - strlen(rr), "\\%03d", c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
verbose(VERB_OPS, "DNSCrypt: adding local data to config: %s", rr);
|
||||||
snprintf(rr + strlen(rr), rrlen - 1 - strlen(rr), "\"");
|
snprintf(rr + strlen(rr), rrlen - 1 - strlen(rr), "\"");
|
||||||
cfg_strlist_insert(&cfg->local_data, strdup(rr));
|
cfg_strlist_insert(&cfg->local_data, strdup(rr));
|
||||||
free(rr);
|
free(rr);
|
||||||
|
|
@ -502,7 +503,7 @@ dnsc_parse_keys(struct dnsc_env *env, struct config_file *cfg)
|
||||||
|
|
||||||
env->keypairs = sodium_allocarray(env->keypairs_count,
|
env->keypairs = sodium_allocarray(env->keypairs_count,
|
||||||
sizeof *env->keypairs);
|
sizeof *env->keypairs);
|
||||||
env->certs = sodium_allocarray(env->signed_certs_count,
|
env->certs = sodium_allocarray(env->signed_certs_count,
|
||||||
sizeof *env->certs);
|
sizeof *env->certs);
|
||||||
|
|
||||||
cert_id = 0U;
|
cert_id = 0U;
|
||||||
|
|
@ -649,3 +650,16 @@ dnsc_apply_cfg(struct dnsc_env *env, struct config_file *cfg)
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
dnsc_delete(struct dnsc_env *env)
|
||||||
|
{
|
||||||
|
if(!env) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
verbose(VERB_OPS, "DNSCrypt: Freeing environment.");
|
||||||
|
sodium_free(env->signed_certs);
|
||||||
|
sodium_free(env->certs);
|
||||||
|
sodium_free(env->keypairs);
|
||||||
|
free(env);
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ typedef struct cert_ {
|
||||||
|
|
||||||
struct dnsc_env {
|
struct dnsc_env {
|
||||||
struct SignedCert *signed_certs;
|
struct SignedCert *signed_certs;
|
||||||
dnsccert *certs;
|
dnsccert *certs;
|
||||||
size_t signed_certs_count;
|
size_t signed_certs_count;
|
||||||
uint8_t provider_publickey[crypto_sign_ed25519_PUBLICKEYBYTES];
|
uint8_t provider_publickey[crypto_sign_ed25519_PUBLICKEYBYTES];
|
||||||
uint8_t provider_secretkey[crypto_sign_ed25519_SECRETKEYBYTES];
|
uint8_t provider_secretkey[crypto_sign_ed25519_SECRETKEYBYTES];
|
||||||
|
|
@ -71,7 +71,7 @@ struct dnscrypt_query_header {
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize DNSCrypt enviroment.
|
* Initialize DNSCrypt environment.
|
||||||
* Initialize sodium library and allocate the dnsc_env structure.
|
* Initialize sodium library and allocate the dnsc_env structure.
|
||||||
* \return an uninitialized struct dnsc_env.
|
* \return an uninitialized struct dnsc_env.
|
||||||
*/
|
*/
|
||||||
|
|
@ -88,6 +88,12 @@ struct dnsc_env * dnsc_create(void);
|
||||||
*/
|
*/
|
||||||
int dnsc_apply_cfg(struct dnsc_env *env, struct config_file *cfg);
|
int dnsc_apply_cfg(struct dnsc_env *env, struct config_file *cfg);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Delete DNSCrypt environment
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
void dnsc_delete(struct dnsc_env *env);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* handle a crypted dnscrypt request.
|
* handle a crypted dnscrypt request.
|
||||||
* Determine wether or not a query is coming over the dnscrypt listener and
|
* Determine wether or not a query is coming over the dnscrypt listener and
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,6 @@
|
||||||
|
28 August 2017: Wouter
|
||||||
|
- Fix #1415: patch to free dnscrypt environment on reload.
|
||||||
|
|
||||||
23 August 2017: Wouter
|
23 August 2017: Wouter
|
||||||
- Fix #1407: Add ECS options check to unbound-checkconf.
|
- Fix #1407: Add ECS options check to unbound-checkconf.
|
||||||
- make depend
|
- make depend
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue