Only bother with dynamic DH moduli if we are a bridge.

This commit is contained in:
George Kadianakis
2011-11-25 17:44:43 +01:00
parent b31601975b
commit f477ddcc20
+18 -14
View File
@@ -1363,22 +1363,26 @@ options_act(const or_options_t *old_options)
}
/* If needed, generate a new TLS DH prime according to the current torrc. */
if (!old_options) {
if (options->DynamicDHGroups) {
char *fname = get_datadir_fname2("keys", "dynamic_dh_modulus");
crypto_set_tls_dh_prime(fname);
tor_free(fname);
if (server_mode(options) && options->BridgeRelay) {
if (!old_options) {
if (options->DynamicDHGroups) {
char *fname = get_datadir_fname2("keys", "dynamic_dh_modulus");
crypto_set_tls_dh_prime(fname);
tor_free(fname);
} else {
crypto_set_tls_dh_prime(NULL);
}
} else {
crypto_set_tls_dh_prime(NULL);
}
} else {
if (options->DynamicDHGroups && !old_options->DynamicDHGroups) {
char *fname = get_datadir_fname2("keys", "dynamic_dh_modulus");
crypto_set_tls_dh_prime(fname);
tor_free(fname);
} else if (!options->DynamicDHGroups && old_options->DynamicDHGroups) {
crypto_set_tls_dh_prime(NULL);
if (options->DynamicDHGroups && !old_options->DynamicDHGroups) {
char *fname = get_datadir_fname2("keys", "dynamic_dh_modulus");
crypto_set_tls_dh_prime(fname);
tor_free(fname);
} else if (!options->DynamicDHGroups && old_options->DynamicDHGroups) {
crypto_set_tls_dh_prime(NULL);
}
}
} else { /* clients don't need a dynamic DH prime. */
crypto_set_tls_dh_prime(NULL);
}
/* We want to reinit keys as needed before we do much of anything else: