#include "master-service.h"
#include "all-settings.h"
#include "sysinfo-get.h"
+#include "old-set-parser.h"
#include "config-connection.h"
#include "config-parser.h"
#include "config-request.h"
i_fatal("Errors in configuration");
config_filter_deinit(&config_filter);
+ old_settings_deinit_global();
module_dir_unload(&modules);
config_parser_deinit();
master_service_deinit(&master_service);
#include "module-dir.h"
#include "restrict-access.h"
#include "master-service.h"
+#include "old-set-parser.h"
#include "config-connection.h"
#include "config-parser.h"
#include "config-request.h"
config_connections_destroy_all();
config_filter_deinit(&config_filter);
+ old_settings_deinit_global();
module_dir_unload(&modules);
config_parser_deinit();
master_service_deinit(&master_service);
.service = "sieve"
};
+static char *ssl_dh_value = NULL;
+static bool ssl_dh_loaded = FALSE;
+
static void ATTR_FORMAT(2, 3)
obsolete(struct config_parser_context *ctx, const char *str, ...)
{
config_parser_apply_line(ctx, CONFIG_LINE_TYPE_KEYVALUE, key, value);
}
-bool old_settings_ssl_dh_load(const char **value, const char **error_r)
+static bool old_settings_ssl_dh_read(const char **value, const char **error_r)
{
if (ssl_dh_parameters != NULL) *value = ssl_dh_parameters;
return TRUE;
}
+bool old_settings_ssl_dh_load(const char **value, const char **error_r)
+{
+ if (ssl_dh_loaded) {
+ *value = ssl_dh_value;
+ return TRUE;
+ }
+ if (!old_settings_ssl_dh_read(value, error_r))
+ return FALSE;
+ ssl_dh_value = i_strdup(*value);
+ ssl_dh_loaded = TRUE;
+ return TRUE;
+}
+
/* FIXME: Remove ssl_protocols_to_min_protocol() in v2.4 */
static int ssl_protocols_to_min_protocol(const char *ssl_protocols,
const char **min_protocol_r,
ctx->old = p_new(ctx->pool, struct old_set_parser, 1);
ctx->old->base_dir = PKG_RUNDIR;
}
+
+void old_settings_deinit_global(void)
+{
+ i_free(ssl_dh_value);
+}
enum config_line_type type,
const char *key, const char *value);
void old_settings_init(struct config_parser_context *ctx);
+void old_settings_deinit_global(void);
#endif