X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Fconfig.c;h=f2b8dbe2fc0e5321adab7456e06f426db0de149d;hb=94227060565c512af24fcbafe270951c15bcbd9b;hp=d1e4d83bd304885f3bc830af3230649b936d93b3;hpb=520b2f3bb198bfbb88b90b058ef610f0a9b980c6;p=apps%2Fpfixtools.git diff --git a/postlicyd/config.c b/postlicyd/config.c index d1e4d83..f2b8dbe 100644 --- a/postlicyd/config.c +++ b/postlicyd/config.c @@ -77,9 +77,13 @@ config_param_register("verify_filter"); */ config_param_register("port"); + +static config_t *global_config = NULL; + static inline config_t *config_new(void) { config_t *config = p_new(config_t, 1); + global_config = config; return config; } @@ -97,9 +101,17 @@ void config_delete(config_t **config) if (*config) { config_close(*config); p_delete(config); + global_config = NULL; } } +static void config_exit() +{ + if (global_config) { + config_delete(&global_config); + } +} +module_exit(config_exit); static bool config_second_pass(config_t *config) { @@ -411,7 +423,7 @@ config_t *config_read(const char *file) config_t *config = config_new(); config->filename = file; if (!config_reload(config)) { - p_delete(&config); + config_delete(&config); return NULL; } return config;