summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2016-04-14 10:01:42 -0400
committerMatthias Clasen <mclasen@redhat.com>2016-04-14 10:01:42 -0400
commit4283473b38b4b8a7ea5975af5a85cb6f5b518fb1 (patch)
tree6bcda48b9d8d84acbf334582854df033d5b6b7fc /common
parentdb797bf4dfd4bd55b28220826cc652c5ee75093d (diff)
downloadxdg-app-4283473b38b4b8a7ea5975af5a85cb6f5b518fb1.tar.gz
Add options to enable bus logging
This can be useful to find out what bus names your app is actually talking to, so you can set up a bus policy that is narrowed than blanket access without breaking your application.
Diffstat (limited to 'common')
-rw-r--r--common/xdg-app-run.c7
-rw-r--r--common/xdg-app-run.h6
2 files changed, 9 insertions, 4 deletions
diff --git a/common/xdg-app-run.c b/common/xdg-app-run.c
index 85bf5a7..ecf8ede 100644
--- a/common/xdg-app-run.c
+++ b/common/xdg-app-run.c
@@ -2120,6 +2120,7 @@ dbus_spawn_child_setup (gpointer user_data)
static gboolean
add_dbus_proxy_args (GPtrArray *argv_array,
GPtrArray *dbus_proxy_argv,
+ gboolean enable_logging,
GError **error)
{
int sync_proxy_pipes[2];
@@ -2136,6 +2137,8 @@ add_dbus_proxy_args (GPtrArray *argv_array,
g_ptr_array_insert (dbus_proxy_argv, 0, g_strdup (DBUSPROXY));
g_ptr_array_insert (dbus_proxy_argv, 1, g_strdup_printf ("--fd=%d", sync_proxy_pipes[1]));
+ if (enable_logging)
+ g_ptr_array_add (dbus_proxy_argv, g_strdup ("--log"));
g_ptr_array_add (dbus_proxy_argv, NULL); /* NULL terminate */
@@ -2309,10 +2312,10 @@ xdg_app_run_app (const char *app_ref,
if (!xdg_app_run_in_transient_unit (app_ref_parts[1], error))
return FALSE;
- if (!add_dbus_proxy_args (argv_array, session_bus_proxy_argv, error))
+ if (!add_dbus_proxy_args (argv_array, session_bus_proxy_argv, (flags & XDG_APP_RUN_FLAG_LOG_SESSION_BUS) != 0, error))
return FALSE;
- if (!add_dbus_proxy_args (argv_array, system_bus_proxy_argv, error))
+ if (!add_dbus_proxy_args (argv_array, system_bus_proxy_argv, (flags & XDG_APP_RUN_FLAG_LOG_SYSTEM_BUS) != 0, error))
return FALSE;
app_files = xdg_app_deploy_get_files (app_deploy);
diff --git a/common/xdg-app-run.h b/common/xdg-app-run.h
index 0039007..94462f0 100644
--- a/common/xdg-app-run.h
+++ b/common/xdg-app-run.h
@@ -82,8 +82,10 @@ GFile *xdg_app_ensure_data_dir (const char *app_id,
GError **error);
typedef enum {
- XDG_APP_RUN_FLAG_DEVEL = (1<<0),
- XDG_APP_RUN_FLAG_BACKGROUND = (1<<1),
+ XDG_APP_RUN_FLAG_DEVEL = (1<<0),
+ XDG_APP_RUN_FLAG_BACKGROUND = (1<<1),
+ XDG_APP_RUN_FLAG_LOG_SESSION_BUS = (1<<2),
+ XDG_APP_RUN_FLAG_LOG_SYSTEM_BUS = (1<<3),
} XdgAppRunFlags;
gboolean xdg_app_run_app (const char *app_ref,