summaryrefslogtreecommitdiff
path: root/session-helper
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2018-06-04 16:45:18 +0200
committerAtomic Bot <atomic-devel@projectatomic.io>2018-06-07 12:25:21 +0000
commitb4bb890516888fdeb3468bafa659997c400ce916 (patch)
treefb43347151d1314967b583d333f163f934a688a8 /session-helper
parentc6ccf26eec8dc83d003ec583da3c9309aabe4905 (diff)
downloadflatpak-b4bb890516888fdeb3468bafa659997c400ce916.tar.gz
session-helper: Add new more generic helper start method
This does the same as RequestMonitor, but returns the status via a a{sv} so that its more extensible. Closes: #1757 Approved by: alexlarsson
Diffstat (limited to 'session-helper')
-rw-r--r--session-helper/flatpak-session-helper.c32
1 files changed, 30 insertions, 2 deletions
diff --git a/session-helper/flatpak-session-helper.c b/session-helper/flatpak-session-helper.c
index eaac6d7c..f00c5c8d 100644
--- a/session-helper/flatpak-session-helper.c
+++ b/session-helper/flatpak-session-helper.c
@@ -59,6 +59,25 @@ handle_request_monitor (FlatpakSessionHelper *object,
return TRUE;
}
+static gboolean
+handle_request_session (FlatpakSessionHelper *object,
+ GDBusMethodInvocation *invocation,
+ gpointer user_data)
+{
+ GVariantBuilder builder;
+
+ g_variant_builder_init (&builder, G_VARIANT_TYPE ("a{sv}"));
+
+ g_variant_builder_add (&builder, "{s@v}", "path",
+ g_variant_new_variant (g_variant_new_string (monitor_dir)));
+
+ flatpak_session_helper_complete_request_session (object, invocation,
+ g_variant_builder_end (&builder));
+
+ return TRUE;
+}
+
+
static void
child_watch_died (GPid pid,
gint status,
@@ -363,6 +382,7 @@ on_bus_acquired (GDBusConnection *connection,
flatpak_session_helper_set_version (FLATPAK_SESSION_HELPER (helper), 1);
g_signal_connect (helper, "handle-request-monitor", G_CALLBACK (handle_request_monitor), NULL);
+ g_signal_connect (helper, "handle-request-session", G_CALLBACK (handle_request_session), NULL);
if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (helper),
connection,
@@ -579,6 +599,7 @@ main (int argc,
gboolean show_version;
GOptionContext *context;
GBusNameOwnerFlags flags;
+ g_autofree char *flatpak_dir = NULL;
g_autoptr(GError) error = NULL;
const GOptionEntry options[] = {
{ "replace", 'r', 0, G_OPTION_ARG_NONE, &replace, "Replace old daemon.", NULL },
@@ -636,8 +657,15 @@ main (int argc,
return 1;
}
- monitor_dir = g_build_filename (g_get_user_runtime_dir (), "flatpak-monitor", NULL);
- if (g_mkdir_with_parents (monitor_dir, 0755) != 0)
+ flatpak_dir = g_build_filename (g_get_user_runtime_dir (), ".flatpak-helper", NULL);
+ if (g_mkdir_with_parents (flatpak_dir, 0700) != 0)
+ {
+ g_print ("Can't create %s\n", monitor_dir);
+ exit (1);
+ }
+
+ monitor_dir = g_build_filename (flatpak_dir, "monitor", NULL);
+ if (g_mkdir_with_parents (monitor_dir, 0700) != 0)
{
g_print ("Can't create %s\n", monitor_dir);
exit (1);