Signed-off-by: Jiri Moskovcak <jmoskovc(a)redhat.com>
---
src/daemon/Makefile.am | 2 +-
src/daemon/abrt-action-save-package-data.c | 31 ++++++++++++++++++------------
src/daemon/gpg_keys | 1 -
src/daemon/gpg_keys.conf | 1 +
4 files changed, 21 insertions(+), 14 deletions(-)
delete mode 100644 src/daemon/gpg_keys
create mode 100644 src/daemon/gpg_keys.conf
diff --git a/src/daemon/Makefile.am b/src/daemon/Makefile.am
index 9369d26..fba6b83 100644
--- a/src/daemon/Makefile.am
+++ b/src/daemon/Makefile.am
@@ -103,7 +103,7 @@ daemonconfdir = $(CONF_DIR)
dist_daemonconf_DATA = \
abrt.conf \
abrt-action-save-package-data.conf \
- gpg_keys
+ gpg_keys.conf
EXTRA_DIST = abrt-handle-upload.in
diff --git a/src/daemon/abrt-action-save-package-data.c
b/src/daemon/abrt-action-save-package-data.c
index 3fb6f3f..1df8cf8 100644
--- a/src/daemon/abrt-action-save-package-data.c
+++ b/src/daemon/abrt-action-save-package-data.c
@@ -78,21 +78,28 @@ static void ParseCommon(map_string_t *settings, const char
*conf_filename)
static void load_gpg_keys(void)
{
- FILE *fp = fopen(CONF_DIR"/gpg_keys", "r");
- if (fp)
+ map_string_t *settings = new_map_string();
+ const char *conf_filename = CONF_DIR"/gpg_keys.conf";
+ if (!load_conf_file(conf_filename, settings, /*skip key w/o values:*/ false))
{
- /* every line is one key
- * FIXME: make it more robust, it doesn't handle comments
- */
- char *line;
- while ((line = xmalloc_fgetline(fp)) != NULL)
+ error_msg("Can't open '%s'", conf_filename);
+ return;
+ }
+
+ const char *gpg_keys_dir = get_map_string_item_or_NULL(settings,
"GPGKeysDir");
+ if (strcmp(gpg_keys_dir, "") != 0)
+ {
+ VERB3 log("Reading gpg keys from '%s'", gpg_keys_dir);
+ GList *gpg_files = get_file_list(gpg_keys_dir, NULL /* we don't care about
the file ext */);
+ GList *tmp_gpp_files = gpg_files;
+ while (tmp_gpp_files)
{
- if (line[0] == '/') // probably the beginning of a path, so let's
handle it as a key
- settings_setOpenGPGPublicKeys =
g_list_append(settings_setOpenGPGPublicKeys, line);
- else
- free(line);
+ VERB3 log("Loading gpg key '%s'",
fo_get_fullpath((file_obj_t *)tmp_gpp_files->data));
+ settings_setOpenGPGPublicKeys = g_list_append(settings_setOpenGPGPublicKeys,
xstrdup(fo_get_fullpath((file_obj_t *)(tmp_gpp_files->data)) ));
+ tmp_gpp_files = g_list_next(tmp_gpp_files);
}
- fclose(fp);
+
+ g_list_free_full(gpg_files, (GDestroyNotify)free_file_obj);
}
}
diff --git a/src/daemon/gpg_keys b/src/daemon/gpg_keys
deleted file mode 100644
index cde50f1..0000000
--- a/src/daemon/gpg_keys
+++ /dev/null
@@ -1 +0,0 @@
-/etc/pki/rpm-gpg/RPM-GPG-KEY-fedora
diff --git a/src/daemon/gpg_keys.conf b/src/daemon/gpg_keys.conf
new file mode 100644
index 0000000..ac3f33a
--- /dev/null
+++ b/src/daemon/gpg_keys.conf
@@ -0,0 +1 @@
+GPGKeysDir = /etc/pki/rpm-gpg/
--
1.8.3.1