summaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
authorNikola Pajkovsky <npajkovs@redhat.com>2011-03-17 10:53:55 +0100
committerNikola Pajkovsky <npajkovs@redhat.com>2011-03-17 10:53:55 +0100
commitf8061a5b89956570b5d9893e3b9bae9682849eaa (patch)
tree4a1ee0f7bfe216eaaea5eec3ae2d88fb60100575 /src/lib
parent86b8a3c9544baebcfd8925ef232eda1966afc5e2 (diff)
downloadabrt-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.c34
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);
+ }
+}