diff options
author | Nikola Pajkovsky <npajkovs@redhat.com> | 2011-03-17 10:53:55 +0100 |
---|---|---|
committer | Nikola Pajkovsky <npajkovs@redhat.com> | 2011-03-17 10:53:55 +0100 |
commit | f8061a5b89956570b5d9893e3b9bae9682849eaa (patch) | |
tree | 4a1ee0f7bfe216eaaea5eec3ae2d88fb60100575 /src/lib | |
parent | 86b8a3c9544baebcfd8925ef232eda1966afc5e2 (diff) | |
download | abrt-f8061a5b89956570b5d9893e3b9bae9682849eaa.tar.gz abrt-f8061a5b89956570b5d9893e3b9bae9682849eaa.tar.xz abrt-f8061a5b89956570b5d9893e3b9bae9682849eaa.zip |
expose export/unexport_event_config
Signed-off-by: Nikola Pajkovsky <npajkovs@redhat.com>
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/event_config.c | 34 |
1 files changed, 34 insertions, 0 deletions
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); + } +} |