From f8061a5b89956570b5d9893e3b9bae9682849eaa Mon Sep 17 00:00:00 2001 From: Nikola Pajkovsky Date: Thu, 17 Mar 2011 10:53:55 +0100 Subject: expose export/unexport_event_config Signed-off-by: Nikola Pajkovsky --- src/lib/event_config.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/lib') diff --git a/src/lib/event_config.c b/src/lib/event_config.c index 43c9e764..3f760214 100644 --- a/src/lib/event_config.c +++ b/src/lib/event_config.c @@ -246,3 +246,37 @@ event_config_t *get_event_config(const char *name) } return g_hash_table_lookup(g_event_config_list, name); } + +GList *export_event_config(const char *event_name) +{ + GList *env_list = NULL; + + event_config_t *config = get_event_config(event_name); + if (config) + { + for (GList *lopt = config->options; lopt; lopt = lopt->next) + { + event_option_t *opt = lopt->data; + if (!opt->value) + continue; + char *var_val = xasprintf("%s=%s", opt->name, opt->value); + VERB3 log("Exporting '%s'", var_val); + env_list = g_list_prepend(env_list, var_val); + putenv(var_val); + } + } + + return env_list; +} + +void unexport_event_config(GList *env_list) +{ + while (env_list) + { + char *var_val = env_list->data; + VERB3 log("Unexporting '%s'", var_val); + safe_unsetenv(var_val); + env_list = g_list_remove(env_list, var_val); + free(var_val); + } +} -- cgit