Merge lp:~mterry/unity-greeter-session-broadcast/flesh-out-service into lp:unity-greeter-session-broadcast/13.10

Proposed by Michael Terry
Status: Merged
Approved by: Ted Gould
Approved revision: 17
Merged at revision: 18
Proposed branch: lp:~mterry/unity-greeter-session-broadcast/flesh-out-service
Merge into: lp:unity-greeter-session-broadcast/13.10
Diff against target: 192 lines (+122/-9)
6 files modified
CMakeLists.txt (+7/-0)
data/CMakeLists.txt (+10/-0)
data/com.canonical.Unity.Greeter.Broadcast.conf (+21/-0)
debian/unity-greeter-session-broadcast.install (+1/-0)
service/CMakeLists.txt (+9/-1)
service/service.c (+74/-8)
To merge this branch: bzr merge lp:~mterry/unity-greeter-session-broadcast/flesh-out-service
Reviewer Review Type Date Requested Status
Ted Gould (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Indicator Applet Developers Pending
Review via email: mp+182703@code.launchpad.net

Commit message

Implement the basic service. Adds RequestApplicationStart method which sends out a StartApplication signal.

Description of the change

Implement the basic service. Adds RequestApplicationStart method which sends out a StartApplication signal.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Ted Gould (ted) wrote :

Thanks! We should probably have the service shutdown at some point, but we can add that later.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt'
--- CMakeLists.txt 2013-06-27 15:48:10 +0000
+++ CMakeLists.txt 2013-08-28 16:41:11 +0000
@@ -47,6 +47,13 @@
47message("Installing DBus services to ${DBUSSERVICEDIR}")47message("Installing DBus services to ${DBUSSERVICEDIR}")
4848
49if(${LOCAL_INSTALL})49if(${LOCAL_INSTALL})
50 set(DBUSSYSCONFDIR "${CMAKE_INSTALL_SYSCONFDIR}")
51else()
52 EXEC_PROGRAM(${PKG_CONFIG_EXECUTABLE} ARGS dbus-1 --variable sysconfdir OUTPUT_VARIABLE DBUSSYSCONFDIR)
53endif()
54message("Installing DBus policy files to ${DBUSSYSCONFDIR}")
55
56if(${LOCAL_INSTALL})
50 set(DBUSIFACEDIR "${CMAKE_INSTALL_DATADIR}/dbus-1/interfaces/")57 set(DBUSIFACEDIR "${CMAKE_INSTALL_DATADIR}/dbus-1/interfaces/")
51else()58else()
52 EXEC_PROGRAM(${PKG_CONFIG_EXECUTABLE} ARGS dbus-1 --variable interfaces_dir OUTPUT_VARIABLE DBUSIFACEDIR )59 EXEC_PROGRAM(${PKG_CONFIG_EXECUTABLE} ARGS dbus-1 --variable interfaces_dir OUTPUT_VARIABLE DBUSIFACEDIR )
5360
=== modified file 'data/CMakeLists.txt'
--- data/CMakeLists.txt 2013-06-27 15:43:13 +0000
+++ data/CMakeLists.txt 2013-08-28 16:41:11 +0000
@@ -10,6 +10,16 @@
10)10)
1111
12###########################12###########################
13# DBus Policy Files
14###########################
15
16install(
17FILES
18com.canonical.Unity.Greeter.Broadcast.conf
19DESTINATION ${DBUSSYSCONFDIR}/dbus-1/system.d
20)
21
22###########################
13# Dbus Services23# Dbus Services
14###########################24###########################
1525
1626
=== added file 'data/com.canonical.Unity.Greeter.Broadcast.conf'
--- data/com.canonical.Unity.Greeter.Broadcast.conf 1970-01-01 00:00:00 +0000
+++ data/com.canonical.Unity.Greeter.Broadcast.conf 2013-08-28 16:41:11 +0000
@@ -0,0 +1,21 @@
1<!-- ../system.conf have denied everything, so we just punch some holes -->
2
3<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
4 "http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
5<busconfig>
6
7 <policy user="root">
8 <allow own="com.canonical.Unity.Greeter.Broadcast"/>
9 <allow send_destination="com.canonical.Unity.Greeter.Broadcast"/>
10 </policy>
11
12 <policy user="lightdm">
13 <allow send_destination="com.canonical.Unity.Greeter.Broadcast"/>
14 </policy>
15
16 <policy context="default">
17 <allow send_destination="com.canonical.Unity.Greeter.Broadcast"
18 send_interface="org.freedesktop.DBus.Introspectable"/>
19 </policy>
20
21</busconfig>
022
=== modified file 'debian/unity-greeter-session-broadcast.install'
--- debian/unity-greeter-session-broadcast.install 2013-06-27 16:36:41 +0000
+++ debian/unity-greeter-session-broadcast.install 2013-08-28 16:41:11 +0000
@@ -1,3 +1,4 @@
1etc/dbus-1
1usr/lib/*/unity-greeter-session-broadcast2usr/lib/*/unity-greeter-session-broadcast
2usr/share/dbus-13usr/share/dbus-1
3usr/share/glib-2.04usr/share/glib-2.0
45
=== modified file 'service/CMakeLists.txt'
--- service/CMakeLists.txt 2013-06-27 15:55:38 +0000
+++ service/CMakeLists.txt 2013-08-28 16:41:11 +0000
@@ -30,11 +30,19 @@
30# Service Executable30# Service Executable
31###########################31###########################
3232
33include_directories(
34 ${CMAKE_CURRENT_SOURCE_DIR}
35 ${CMAKE_CURRENT_BINARY_DIR}
36)
37
33add_executable(service-exec service.c)38add_executable(service-exec service.c)
3439
35set_target_properties(service-exec PROPERTIES OUTPUT_NAME "unity-greeter-session-broadcast-service")40set_target_properties(service-exec PROPERTIES OUTPUT_NAME "unity-greeter-session-broadcast-service")
3641
37target_link_libraries(service-exec service-generated)42target_link_libraries(service-exec
43service-generated
44${GIO2_LIBRARIES}
45)
3846
39###########################47###########################
40# Installation48# Installation
4149
=== modified file 'service/service.c'
--- service/service.c 2013-07-09 19:31:17 +0000
+++ service/service.c 2013-08-28 16:41:11 +0000
@@ -15,15 +15,81 @@
15 *15 *
16 */16 */
1717
18#include <gio/gio.h>
19#include <unistd.h>
20#include "service-iface.h"
21
22static gboolean
23on_handle_request_application_start (ServiceIfaceComCanonicalUnityGreeterBroadcast *object,
24 GDBusMethodInvocation *invocation,
25 const gchar *arg_username,
26 const gchar *arg_appId)
27{
28 /* Simply pass the request on */
29 service_iface_com_canonical_unity_greeter_broadcast_emit_start_application (object,
30 arg_username,
31 arg_appId);
32 service_iface_com_canonical_unity_greeter_broadcast_complete_request_application_start (object,
33 invocation);
34 return TRUE;
35}
36
37static void
38on_bus_acquired (GDBusConnection *connection,
39 const gchar *name,
40 gpointer user_data)
41{
42 GError *error = NULL;
43 ServiceIfaceComCanonicalUnityGreeterBroadcast *interface;
44
45 interface = (ServiceIfaceComCanonicalUnityGreeterBroadcast *)user_data;
46
47 if (!g_dbus_interface_skeleton_export (G_DBUS_INTERFACE_SKELETON (interface),
48 connection,
49 "/com/canonical/Unity/Greeter/Broadcast",
50 &error))
51 {
52 g_error ("Unable to export interface: %s, exiting", error->message);
53 }
54}
55
56static void
57on_name_lost (GDBusConnection *connection,
58 const gchar *name,
59 gpointer user_data)
60{
61 g_error ("Lost bus name, exiting");
62}
63
18int64int
19main (int argc, char * argv[])65main (int argc, char * argv[])
20{66{
2167 guint owner_id;
2268 GMainLoop *loop;
2369 ServiceIfaceComCanonicalUnityGreeterBroadcast *interface;
2470
2571 interface = service_iface_com_canonical_unity_greeter_broadcast_skeleton_new ();
2672
2773 g_signal_connect (interface,
28 return 0;74 "handle-request-application-start",
75 G_CALLBACK (on_handle_request_application_start),
76 NULL);
77
78 owner_id = g_bus_own_name (G_BUS_TYPE_SYSTEM,
79 "com.canonical.Unity.Greeter.Broadcast",
80 G_BUS_NAME_OWNER_FLAGS_NONE,
81 on_bus_acquired,
82 NULL,
83 on_name_lost,
84 g_object_ref (interface),
85 g_object_unref);
86
87 loop = g_main_loop_new (NULL, FALSE);
88 g_main_loop_run (loop);
89
90 g_bus_unown_name (owner_id);
91 g_object_unref (interface);
92 g_object_unref (loop);
93
94 return 0;
29}95}

Subscribers

People subscribed via source and target branches