|
Matej Habrnal |
fa1950 |
From b6ed011ee153bb698d176019e9c2fbedeacad5fa Mon Sep 17 00:00:00 2001
|
|
Matej Habrnal |
fa1950 |
From: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
fa1950 |
Date: Thu, 19 Mar 2015 08:35:38 +0100
|
|
Matej Habrnal |
fa1950 |
Subject: [PATCH] applet: get the list of problems through D-Bus service
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
The default dump location directory is not iterable for regular users.
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
I cherry-picked and merged these two commits:
|
|
Matej Habrnal |
fa1950 |
57895ccd0c6289faada8e5f3327e276ffded46b5
|
|
Matej Habrnal |
fa1950 |
3484123353de0d77745d348cd371c317e9a52483
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
Signed-off-by: Jakub Filak <jfilak@redhat.com>
|
|
Matej Habrnal |
fa1950 |
---
|
|
Matej Habrnal |
fa1950 |
src/applet/applet.c | 47 +++--------------------------------------------
|
|
Matej Habrnal |
fa1950 |
1 file changed, 3 insertions(+), 44 deletions(-)
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
diff --git a/src/applet/applet.c b/src/applet/applet.c
|
|
Matej Habrnal |
fa1950 |
index 644da60..3198ae5 100644
|
|
Matej Habrnal |
fa1950 |
--- a/src/applet/applet.c
|
|
Matej Habrnal |
fa1950 |
+++ b/src/applet/applet.c
|
|
Matej Habrnal |
fa1950 |
@@ -70,7 +70,6 @@ enum
|
|
Matej Habrnal |
fa1950 |
static GDBusConnection *g_system_bus;
|
|
Matej Habrnal |
fa1950 |
static GtkStatusIcon *ap_status_icon;
|
|
Matej Habrnal |
fa1950 |
static GtkWidget *ap_menu;
|
|
Matej Habrnal |
fa1950 |
-static char **s_dirs;
|
|
Matej Habrnal |
fa1950 |
static GList *g_deferred_crash_queue;
|
|
Matej Habrnal |
fa1950 |
static guint g_deferred_timeout;
|
|
Matej Habrnal |
fa1950 |
static int g_signal_pipe[2];
|
|
Matej Habrnal |
fa1950 |
@@ -429,29 +428,6 @@ static char *build_message(problem_info_t *pi)
|
|
Matej Habrnal |
fa1950 |
return msg;
|
|
Matej Habrnal |
fa1950 |
}
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
-static GList *add_dirs_to_dirlist(GList *dirlist, const char *dirname)
|
|
Matej Habrnal |
fa1950 |
-{
|
|
Matej Habrnal |
fa1950 |
- DIR *dir = opendir(dirname);
|
|
Matej Habrnal |
fa1950 |
- if (!dir)
|
|
Matej Habrnal |
fa1950 |
- return dirlist;
|
|
Matej Habrnal |
fa1950 |
-
|
|
Matej Habrnal |
fa1950 |
- struct dirent *dent;
|
|
Matej Habrnal |
fa1950 |
- while ((dent = readdir(dir)) != NULL)
|
|
Matej Habrnal |
fa1950 |
- {
|
|
Matej Habrnal |
fa1950 |
- if (dot_or_dotdot(dent->d_name))
|
|
Matej Habrnal |
fa1950 |
- continue;
|
|
Matej Habrnal |
fa1950 |
- char *full_name = concat_path_file(dirname, dent->d_name);
|
|
Matej Habrnal |
fa1950 |
- struct stat statbuf;
|
|
Matej Habrnal |
fa1950 |
- if (lstat(full_name, &statbuf) == 0 && S_ISDIR(statbuf.st_mode))
|
|
Matej Habrnal |
fa1950 |
- dirlist = g_list_prepend(dirlist, full_name);
|
|
Matej Habrnal |
fa1950 |
- else
|
|
Matej Habrnal |
fa1950 |
- free(full_name);
|
|
Matej Habrnal |
fa1950 |
- }
|
|
Matej Habrnal |
fa1950 |
- closedir(dir);
|
|
Matej Habrnal |
fa1950 |
-
|
|
Matej Habrnal |
fa1950 |
- return g_list_reverse(dirlist);
|
|
Matej Habrnal |
fa1950 |
-}
|
|
Matej Habrnal |
fa1950 |
-
|
|
Matej Habrnal |
fa1950 |
/* Compares the problem directories to list saved in
|
|
Matej Habrnal |
fa1950 |
* $XDG_CACHE_HOME/abrt/applet_dirlist and updates the applet_dirlist
|
|
Matej Habrnal |
fa1950 |
* with updated list.
|
|
Matej Habrnal |
fa1950 |
@@ -461,13 +437,9 @@ static GList *add_dirs_to_dirlist(GList *dirlist, const char *dirname)
|
|
Matej Habrnal |
fa1950 |
*/
|
|
Matej Habrnal |
fa1950 |
static void new_dir_exists(GList **new_dirs)
|
|
Matej Habrnal |
fa1950 |
{
|
|
Matej Habrnal |
fa1950 |
- GList *dirlist = NULL;
|
|
Matej Habrnal |
fa1950 |
- char **pp = s_dirs;
|
|
Matej Habrnal |
fa1950 |
- while (*pp)
|
|
Matej Habrnal |
fa1950 |
- {
|
|
Matej Habrnal |
fa1950 |
- dirlist = add_dirs_to_dirlist(dirlist, *pp);
|
|
Matej Habrnal |
fa1950 |
- pp++;
|
|
Matej Habrnal |
fa1950 |
- }
|
|
Matej Habrnal |
fa1950 |
+ GList *dirlist = get_problems_over_dbus(/*don't authorize*/false);
|
|
Matej Habrnal |
fa1950 |
+ if (dirlist == ERR_PTR)
|
|
Matej Habrnal |
fa1950 |
+ return;
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
const char *cachedir = g_get_user_cache_dir();
|
|
Matej Habrnal |
fa1950 |
char *dirlist_name = concat_path_file(cachedir, "abrt");
|
|
Matej Habrnal |
fa1950 |
@@ -1660,19 +1632,6 @@ int main(int argc, char** argv)
|
|
Matej Habrnal |
fa1950 |
load_event_config_data();
|
|
Matej Habrnal |
fa1950 |
load_user_settings("abrt-applet");
|
|
Matej Habrnal |
fa1950 |
|
|
Matej Habrnal |
fa1950 |
- const char *default_dirs[] = {
|
|
Matej Habrnal |
fa1950 |
- g_settings_dump_location,
|
|
Matej Habrnal |
fa1950 |
- NULL,
|
|
Matej Habrnal |
fa1950 |
- NULL,
|
|
Matej Habrnal |
fa1950 |
- };
|
|
Matej Habrnal |
fa1950 |
- argv += optind;
|
|
Matej Habrnal |
fa1950 |
- if (!argv[0])
|
|
Matej Habrnal |
fa1950 |
- {
|
|
Matej Habrnal |
fa1950 |
- default_dirs[1] = concat_path_file(g_get_user_cache_dir(), "abrt/spool");
|
|
Matej Habrnal |
fa1950 |
- argv = (char**)default_dirs;
|
|
Matej Habrnal |
fa1950 |
- }
|
|
Matej Habrnal |
fa1950 |
- s_dirs = argv;
|
|
Matej Habrnal |
fa1950 |
-
|
|
Matej Habrnal |
fa1950 |
/* Initialize our (dbus_abrt) machinery: hook _system_ dbus to glib main loop.
|
|
Matej Habrnal |
fa1950 |
* (session bus is left to be handled by libnotify, see below) */
|
|
Matej Habrnal |
fa1950 |
DBusError err;
|
|
Matej Habrnal |
fa1950 |
--
|
|
Matej Habrnal |
fa1950 |
2.1.0
|
|
Matej Habrnal |
fa1950 |
|