Merge lp:~jamesodhunt/upstart/upstream-add-session-bus-support into lp:upstart

Proposed by James Hunt
Status: Merged
Merged at revision: 1288
Proposed branch: lp:~jamesodhunt/upstart/upstream-add-session-bus-support
Merge into: lp:upstart
Diff against target: 1773 lines (+536/-321)
21 files modified
ChangeLog (+31/-0)
configure.ac (+1/-1)
init/conf.c (+0/-1)
init/control.c (+33/-7)
init/control.h (+15/-1)
init/environ.c (+0/-1)
init/environ.h (+0/-1)
init/job_process.c (+0/-1)
init/job_process.h (+0/-1)
init/main.c (+154/-133)
init/man/init.8 (+6/-2)
init/tests/test_conf.c (+0/-1)
init/tests/test_control.c (+0/-1)
init/tests/test_environ.c (+0/-1)
init/tests/test_job_class.c (+0/-1)
init/tests/test_job_process.c (+0/-1)
po/upstart.pot (+206/-134)
util/initctl.c (+56/-13)
util/man/initctl.8 (+8/-2)
util/reboot.c (+0/-1)
util/tests/test_initctl.c (+26/-17)
To merge this branch: bzr merge lp:~jamesodhunt/upstart/upstream-add-session-bus-support
Reviewer Review Type Date Requested Status
Upstart Developers Pending
Review via email: mp+63345@code.launchpad.net

Description of the change

Add D-Bus session support to initctl.

* Changelog: Updated.
* util/initctl.c:
  - Added "--session" command-line option.
  - dbus_bus_type_setter(): New function used by option parser to
    distinguish system/session D-Bus bus type.
  - system_bus variable now replaced by two others: use_dbus (boolean)
    and dbus_bus_type.
  - upstart_open(): Updated to handle multiple D-Bus bus types.
* util/man/initctl.8: Update for "--session" option.
* util/tests/test_initctl.c: Updated to make use of use_dbus and
  dbus_bus_type rather than system_bus.

Add command-line option to use D-Bus session bus (for testing).

* init/control.c:
  - Added new boolean use_session_bus.
  - Updated comments.
  - control_handle_bus_type(): New function to allow selection of
    session bus via env var "UPSTART_USE_SESSION_BUS".
    Also logs use of session bus if use_session_bus set.
  - control_bus_open(): Now connects to either D-Bus system bus or session bus.
* init/control.h: New define for USE_SESSION_BUS_ENV.
* init/main.c: Addition of "--session" command-line option.
* init/man/init.8: Update for new "--session" command-line option.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'ChangeLog'
--- ChangeLog 2011-05-12 20:42:28 +0000
+++ ChangeLog 2011-06-03 09:21:18 +0000
@@ -1,3 +1,34 @@
12011-06-01 James Hunt <james.hunt@ubuntu.com>
2
3 Add D-Bus session support to initctl.
4
5 * util/initctl.c:
6 - Added "--session" command-line option.
7 - dbus_bus_type_setter(): New function used by option parser to
8 distinguish system/session D-Bus bus type.
9 - system_bus variable now replaced by two others: use_dbus (boolean)
10 and dbus_bus_type.
11 - upstart_open(): Updated to handle multiple D-Bus bus types.
12 * util/man/initctl.8: Update for "--session" option.
13 * util/tests/test_initctl.c: Updated to make use of use_dbus and
14 dbus_bus_type rather than system_bus.
15
162011-05-31 James Hunt <james.hunt@ubuntu.com>
17
18 Add command-line option to use D-Bus session bus (for testing).
19
20 * init/control.c:
21 - Added new boolean use_session_bus.
22 - Updated comments.
23 - control_handle_bus_type(): New function to allow selection of
24 session bus via env var "UPSTART_USE_SESSION_BUS".
25 Also logs use of session bus if use_session_bus set.
26 - control_bus_open(): Now connects to either D-Bus system bus or session bus.
27 * init/control.h: New define for USE_SESSION_BUS_ENV.
28 * init/main.c: Addition of "--session" command-line option.
29 * init/man/init.8: Update for new "--session" command-line option.
30 * Corrected copyright notices.
31
12011-05-12 Marc - A. Dahlhaus <mad@wol.de>322011-05-12 Marc - A. Dahlhaus <mad@wol.de>
233
3 * init/job_class.h (JobClass): Add kill signal member34 * init/job_class.h (JobClass): Add kill signal member
435
=== modified file 'configure.ac'
--- configure.ac 2011-03-22 17:53:17 +0000
+++ configure.ac 2011-06-03 09:21:18 +0000
@@ -2,7 +2,7 @@
22
3AC_PREREQ(2.61)3AC_PREREQ(2.61)
4AC_INIT([upstart], [1.3], [upstart-devel@lists.ubuntu.com])4AC_INIT([upstart], [1.3], [upstart-devel@lists.ubuntu.com])
5NIH_COPYRIGHT([[Copyright © 2011 Scott James Remnant, Google Inc., Canonical Ltd.]])5NIH_COPYRIGHT([[Copyright © 2011 Scott James Remnant, Canonical Ltd.]])
6AC_CONFIG_SRCDIR([init/main.c])6AC_CONFIG_SRCDIR([init/main.c])
7AC_CONFIG_MACRO_DIR([m4])7AC_CONFIG_MACRO_DIR([m4])
88
99
=== modified file 'init/conf.c'
--- init/conf.c 2011-03-15 18:44:09 +0000
+++ init/conf.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * conf.c - configuration management3 * conf.c - configuration management
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2009 Canonical Ltd.5 * Copyright © 2009 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/control.c'
--- init/control.c 2009-07-11 11:47:12 +0000
+++ init/control.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,7 @@
2 *2 *
3 * control.c - D-Bus connections, objects and methods3 * control.c - D-Bus connections, objects and methods
4 *4 *
5 * Copyright © 2009 Canonical Ltd.5 * Copyright © 2009-2011 Canonical Ltd.
6 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
7 *7 *
8 * This program is free software; you can redistribute it and/or modify8 * This program is free software; you can redistribute it and/or modify
@@ -54,12 +54,19 @@
5454
55#include "com.ubuntu.Upstart.h"55#include "com.ubuntu.Upstart.h"
5656
57
58/* Prototypes for static functions */57/* Prototypes for static functions */
59static int control_server_connect (DBusServer *server, DBusConnection *conn);58static int control_server_connect (DBusServer *server, DBusConnection *conn);
60static void control_disconnected (DBusConnection *conn);59static void control_disconnected (DBusConnection *conn);
61static void control_register_all (DBusConnection *conn);60static void control_register_all (DBusConnection *conn);
6261
62/**
63 * use_session_bus:
64 *
65 * If TRUE, connect to the D-Bus sessio bus rather than the system bus.
66 *
67 * Used for testing.
68 **/
69int use_session_bus = FALSE;
6370
64/**71/**
65 * control_server_address:72 * control_server_address:
@@ -78,7 +85,7 @@
78/**85/**
79 * control_bus:86 * control_bus:
80 *87 *
81 * Open connection to D-Bus system bus. The connection may be opened with88 * Open connection to a D-Bus bus. The connection may be opened with
82 * control_bus_open() and if lost will become NULL.89 * control_bus_open() and if lost will become NULL.
83 **/90 **/
84DBusConnection *control_bus = NULL;91DBusConnection *control_bus = NULL;
@@ -86,7 +93,7 @@
86/**93/**
87 * control_conns:94 * control_conns:
88 *95 *
89 * Open control connections, including the connection to the D-Bus system96 * Open control connections, including the connection to a D-Bus
90 * bus and any private client connections.97 * bus and any private client connections.
91 **/98 **/
92NihList *control_conns = NULL;99NihList *control_conns = NULL;
@@ -190,8 +197,9 @@
190/**197/**
191 * control_bus_open:198 * control_bus_open:
192 *199 *
193 * Open a connection to the D-Bus system bus and store it in the control_bus200 * Open a connection to the appropriate D-Bus bus and store it in the
194 * global. The connection is handled automatically in the main loop.201 * control_bus global. The connection is handled automatically
202 * in the main loop.
195 *203 *
196 * Returns: zero on success, negative value on raised error.204 * Returns: zero on success, negative value on raised error.
197 **/205 **/
@@ -207,10 +215,13 @@
207215
208 control_init ();216 control_init ();
209217
218 control_handle_bus_type ();
219
210 /* Connect to the D-Bus System Bus and hook everything up into220 /* Connect to the D-Bus System Bus and hook everything up into
211 * our own main loop automatically.221 * our own main loop automatically.
212 */222 */
213 conn = nih_dbus_bus (DBUS_BUS_SYSTEM, control_disconnected);223 conn = nih_dbus_bus (use_session_bus ? DBUS_BUS_SESSION : DBUS_BUS_SYSTEM,
224 control_disconnected);
214 if (! conn)225 if (! conn)
215 return -1;226 return -1;
216227
@@ -669,3 +680,18 @@
669680
670 return 0;681 return 0;
671}682}
683
684/**
685 * control_handle_bus_type:
686 *
687 * Determine D-Bus bus type to connect to.
688 **/
689void
690control_handle_bus_type (void)
691{
692 if (getenv (USE_SESSION_BUS_ENV))
693 use_session_bus = TRUE;
694
695 if (use_session_bus)
696 nih_debug ("Using session bus");
697}
672698
=== modified file 'init/control.h'
--- init/control.h 2009-07-09 08:36:52 +0000
+++ init/control.h 2011-06-03 09:21:18 +0000
@@ -1,6 +1,6 @@
1/* upstart1/* upstart
2 *2 *
3 * Copyright © 2009 Canonical Ltd.3 * Copyright © 2009-2011 Canonical Ltd.
4 * Author: Scott James Remnant <scott@netsplit.com>.4 * Author: Scott James Remnant <scott@netsplit.com>.
5 *5 *
6 * This program is free software; you can redistribute it and/or modify6 * This program is free software; you can redistribute it and/or modify
@@ -27,6 +27,18 @@
27#include <nih-dbus/dbus_connection.h>27#include <nih-dbus/dbus_connection.h>
28#include <nih-dbus/dbus_message.h>28#include <nih-dbus/dbus_message.h>
2929
30/**
31 * USE_SESSION_BUS_ENV:
32 *
33 * If this environment variable is set to any value, connect to
34 * D-Bus session bus rather than the system bus.
35 *
36 * Used for testing.
37 **/
38#ifndef USE_SESSION_BUS_ENV
39#define USE_SESSION_BUS_ENV "UPSTART_USE_SESSION_BUS"
40#endif
41
3042
31NIH_BEGIN_EXTERN43NIH_BEGIN_EXTERN
3244
@@ -72,6 +84,8 @@
72 const char *log_priority)84 const char *log_priority)
73 __attribute__ ((warn_unused_result));85 __attribute__ ((warn_unused_result));
7486
87void control_handle_bus_type (void);
88
75NIH_END_EXTERN89NIH_END_EXTERN
7690
77#endif /* INIT_CONTROL_H */91#endif /* INIT_CONTROL_H */
7892
=== modified file 'init/environ.c'
--- init/environ.c 2011-03-16 22:42:48 +0000
+++ init/environ.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * environ.c - environment table utilities3 * environ.c - environment table utilities
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2009 Canonical Ltd.5 * Copyright © 2009 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/environ.h'
--- init/environ.h 2011-03-16 22:42:48 +0000
+++ init/environ.h 2011-06-03 09:21:18 +0000
@@ -1,6 +1,5 @@
1/* upstart1/* upstart
2 *2 *
3 * Copyright © 2011 Google Inc.
4 * Copyright © 2009 Canonical Ltd.3 * Copyright © 2009 Canonical Ltd.
5 * Author: Scott James Remnant <scott@netsplit.com>.4 * Author: Scott James Remnant <scott@netsplit.com>.
6 *5 *
76
=== modified file 'init/job_process.c'
--- init/job_process.c 2011-05-12 20:42:28 +0000
+++ init/job_process.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * job_process.c - job process handling3 * job_process.c - job process handling
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2011 Canonical Ltd.5 * Copyright © 2011 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/job_process.h'
--- init/job_process.h 2011-05-12 19:21:16 +0000
+++ init/job_process.h 2011-06-03 09:21:18 +0000
@@ -1,6 +1,5 @@
1/* upstart1/* upstart
2 *2 *
3 * Copyright © 2011 Google Inc.
4 * Copyright © 2009 Canonical Ltd.3 * Copyright © 2009 Canonical Ltd.
5 * Author: Scott James Remnant <scott@netsplit.com>.4 * Author: Scott James Remnant <scott@netsplit.com>.
6 *5 *
76
=== modified file 'init/main.c'
--- init/main.c 2011-03-16 22:54:56 +0000
+++ init/main.c 2011-06-03 09:21:18 +0000
@@ -1,7 +1,6 @@
1/* upstart1/* upstart
2 *2 *
3 * Copyright © 2011 Google Inc.3 * Copyright © 2009-2011 Canonical Ltd.
4 * Copyright © 2010 Canonical Ltd.
5 * Author: Scott James Remnant <scott@netsplit.com>.4 * Author: Scott James Remnant <scott@netsplit.com>.
6 *5 *
7 * This program is free software; you can redistribute it and/or modify6 * This program is free software; you can redistribute it and/or modify
@@ -88,6 +87,7 @@
88 **/87 **/
89static int restart = FALSE;88static int restart = FALSE;
9089
90extern int use_session_bus;
9191
92/**92/**
93 * options:93 * options:
@@ -97,6 +97,9 @@
97static NihOption options[] = {97static NihOption options[] = {
98 { 0, "restart", NULL, NULL, NULL, &restart, NULL },98 { 0, "restart", NULL, NULL, NULL, &restart, NULL },
9999
100 { 0, "session", N_("use D-Bus session bus rather than system bus (for testing)"),
101 NULL, NULL, &use_session_bus, NULL },
102
100 /* Ignore invalid options */103 /* Ignore invalid options */
101 { '-', "--", NULL, NULL, NULL, NULL, NULL },104 { '-', "--", NULL, NULL, NULL, NULL, NULL },
102105
@@ -124,94 +127,104 @@
124 if (! args)127 if (! args)
125 exit (1);128 exit (1);
126129
130 control_handle_bus_type ();
131
127#ifndef DEBUG132#ifndef DEBUG
128 /* Check we're root */133 if (use_session_bus == FALSE) {
129 if (getuid ()) {134
130 nih_fatal (_("Need to be root"));135 /* Check we're root */
131 exit (1);136 if (getuid ()) {
132 }137 nih_fatal (_("Need to be root"));
133138 exit (1);
134 /* Check we're process #1 */139 }
135 if (getpid () > 1) {140
136 execv (TELINIT, argv);141 /* Check we're process #1 */
137 /* Ignore failure, probably just that telinit doesn't exist */142 if (getpid () > 1) {
138143 execv (TELINIT, argv);
139 nih_fatal (_("Not being executed as init"));144 /* Ignore failure, probably just that telinit doesn't exist */
140 exit (1);145
141 }146 nih_fatal (_("Not being executed as init"));
142147 exit (1);
143 /* Clear our arguments from the command-line, so that we show up in148 }
144 * ps or top output as /sbin/init, with no extra flags.149
145 *150 /* Clear our arguments from the command-line, so that we show up in
146 * This is a very Linux-specific trick; by deleting the NULL151 * ps or top output as /sbin/init, with no extra flags.
147 * terminator at the end of the last argument, we fool the kernel152 *
148 * into believing we used a setproctitle()-a-like to extend the153 * This is a very Linux-specific trick; by deleting the NULL
149 * argument space into the environment space, and thus make it use154 * terminator at the end of the last argument, we fool the kernel
150 * strlen() instead of its own assumed length. In fact, we've done155 * into believing we used a setproctitle()-a-like to extend the
151 * the exact opposite, and shrunk the command line length to just that156 * argument space into the environment space, and thus make it use
152 * of whatever is in argv[0].157 * strlen() instead of its own assumed length. In fact, we've done
153 *158 * the exact opposite, and shrunk the command line length to just that
154 * If we don't do this, and just write \0 over the rest of argv, for159 * of whatever is in argv[0].
155 * example; the command-line length still includes those \0s, and ps160 *
156 * will show whitespace in their place.161 * If we don't do this, and just write \0 over the rest of argv, for
157 */162 * example; the command-line length still includes those \0s, and ps
158 if (argc > 1) {163 * will show whitespace in their place.
159 char *arg_end;164 */
160165 if (argc > 1) {
161 arg_end = argv[argc-1] + strlen (argv[argc-1]);166 char *arg_end;
162 *arg_end = ' ';167
163 }168 arg_end = argv[argc-1] + strlen (argv[argc-1]);
164169 *arg_end = ' ';
165170 }
166 /* Become the leader of a new session and process group, shedding171
167 * any controlling tty (which we shouldn't have had anyway - but172
168 * you never know what initramfs did).173 /* Become the leader of a new session and process group, shedding
169 */174 * any controlling tty (which we shouldn't have had anyway - but
170 setsid ();175 * you never know what initramfs did).
171176 */
172 /* Set the standard file descriptors to the ordinary console device,177 setsid ();
173 * resetting it to sane defaults unless we're inheriting from another178
174 * init process which we know left it in a sane state.179 /* Set the standard file descriptors to the ordinary console device,
175 */180 * resetting it to sane defaults unless we're inheriting from another
176 if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)181 * init process which we know left it in a sane state.
177 nih_free (nih_error_get ());182 */
178183 if (system_setup_console (CONSOLE_OUTPUT, (! restart)) < 0)
179 /* Set the PATH environment variable */184 nih_free (nih_error_get ());
180 setenv ("PATH", PATH, TRUE);185
181186 /* Set the PATH environment variable */
182 /* Switch to the root directory in case we were started from some187 setenv ("PATH", PATH, TRUE);
183 * strange place, or worse, some directory in the initramfs that's188
184 * going to go away soon.189 /* Switch to the root directory in case we were started from some
185 */190 * strange place, or worse, some directory in the initramfs that's
186 if (chdir ("/"))191 * going to go away soon.
187 nih_warn ("%s: %s", _("Unable to set root directory"),192 */
188 strerror (errno));193 if (chdir ("/"))
189194 nih_warn ("%s: %s", _("Unable to set root directory"),
190 /* Mount the /proc and /sys filesystems, which are pretty much195 strerror (errno));
191 * essential for any Linux system; not to mention used by196
192 * ourselves.197 /* Mount the /proc and /sys filesystems, which are pretty much
193 */198 * essential for any Linux system; not to mention used by
194 if (system_mount ("proc", "/proc") < 0) {199 * ourselves.
195 NihError *err;200 */
196201 if (system_mount ("proc", "/proc") < 0) {
197 err = nih_error_get ();202 NihError *err;
198 nih_warn ("%s: %s", _("Unable to mount /proc filesystem"),203
199 err->message);204 err = nih_error_get ();
200 nih_free (err);205 nih_warn ("%s: %s", _("Unable to mount /proc filesystem"),
201 }206 err->message);
202207 nih_free (err);
203 if (system_mount ("sysfs", "/sys") < 0) {208 }
204 NihError *err;209
205210 if (system_mount ("sysfs", "/sys") < 0) {
206 err = nih_error_get ();211 NihError *err;
207 nih_warn ("%s: %s", _("Unable to mount /sys filesystem"),212
208 err->message);213 err = nih_error_get ();
209 nih_free (err);214 nih_warn ("%s: %s", _("Unable to mount /sys filesystem"),
210 }215 err->message);
216 nih_free (err);
217 }
218 } else {
219 nih_log_set_priority (NIH_LOG_DEBUG);
220 nih_debug ("Running with UID %d as PID %d (PPID %d)",
221 (int)getuid (), (int)getpid (), (int)getppid ());
222 }
223
211#else /* DEBUG */224#else /* DEBUG */
212 nih_log_set_priority (NIH_LOG_DEBUG);225 nih_log_set_priority (NIH_LOG_DEBUG);
213 nih_debug ("Running as PID %d (PPID %d)",226 nih_debug ("Running with UID %d as PID %d (PPID %d)",
214 (int)getpid (), (int)getppid ());227 (int)getuid (), (int)getpid (), (int)getppid ());
215#endif /* DEBUG */228#endif /* DEBUG */
216229
217230
@@ -223,11 +236,13 @@
223 nih_signal_reset ();236 nih_signal_reset ();
224237
225#ifndef DEBUG238#ifndef DEBUG
226 /* Catch fatal errors immediately rather than waiting for a new239 if (use_session_bus == FALSE) {
227 * iteration through the main loop.240 /* Catch fatal errors immediately rather than waiting for a new
228 */241 * iteration through the main loop.
229 nih_signal_set_handler (SIGSEGV, crash_handler);242 */
230 nih_signal_set_handler (SIGABRT, crash_handler);243 nih_signal_set_handler (SIGSEGV, crash_handler);
244 nih_signal_set_handler (SIGABRT, crash_handler);
245 }
231#endif /* DEBUG */246#endif /* DEBUG */
232247
233 /* Don't ignore SIGCHLD or SIGALRM, but don't respond to them248 /* Don't ignore SIGCHLD or SIGALRM, but don't respond to them
@@ -238,33 +253,35 @@
238 nih_signal_set_handler (SIGALRM, nih_signal_handler);253 nih_signal_set_handler (SIGALRM, nih_signal_handler);
239254
240#ifndef DEBUG255#ifndef DEBUG
241 /* Ask the kernel to send us SIGINT when control-alt-delete is256 if (use_session_bus == FALSE) {
242 * pressed; generate an event with the same name.257 /* Ask the kernel to send us SIGINT when control-alt-delete is
243 */258 * pressed; generate an event with the same name.
244 reboot (RB_DISABLE_CAD);259 */
245 nih_signal_set_handler (SIGINT, nih_signal_handler);260 reboot (RB_DISABLE_CAD);
246 NIH_MUST (nih_signal_add_handler (NULL, SIGINT, cad_handler, NULL));261 nih_signal_set_handler (SIGINT, nih_signal_handler);
247262 NIH_MUST (nih_signal_add_handler (NULL, SIGINT, cad_handler, NULL));
248 /* Ask the kernel to send us SIGWINCH when alt-uparrow is pressed;263
249 * generate a keyboard-request event.264 /* Ask the kernel to send us SIGWINCH when alt-uparrow is pressed;
250 */265 * generate a keyboard-request event.
251 if (ioctl (0, KDSIGACCEPT, SIGWINCH) == 0) {266 */
252 nih_signal_set_handler (SIGWINCH, nih_signal_handler);267 if (ioctl (0, KDSIGACCEPT, SIGWINCH) == 0) {
253 NIH_MUST (nih_signal_add_handler (NULL, SIGWINCH,268 nih_signal_set_handler (SIGWINCH, nih_signal_handler);
254 kbd_handler, NULL));269 NIH_MUST (nih_signal_add_handler (NULL, SIGWINCH,
270 kbd_handler, NULL));
271 }
272
273 /* powstatd sends us SIGPWR when it changes /etc/powerstatus */
274 nih_signal_set_handler (SIGPWR, nih_signal_handler);
275 NIH_MUST (nih_signal_add_handler (NULL, SIGPWR, pwr_handler, NULL));
276
277 /* SIGHUP instructs us to re-load our configuration */
278 nih_signal_set_handler (SIGHUP, nih_signal_handler);
279 NIH_MUST (nih_signal_add_handler (NULL, SIGHUP, hup_handler, NULL));
280
281 /* SIGUSR1 instructs us to reconnect to D-Bus */
282 nih_signal_set_handler (SIGUSR1, nih_signal_handler);
283 NIH_MUST (nih_signal_add_handler (NULL, SIGUSR1, usr1_handler, NULL));
255 }284 }
256
257 /* powstatd sends us SIGPWR when it changes /etc/powerstatus */
258 nih_signal_set_handler (SIGPWR, nih_signal_handler);
259 NIH_MUST (nih_signal_add_handler (NULL, SIGPWR, pwr_handler, NULL));
260
261 /* SIGHUP instructs us to re-load our configuration */
262 nih_signal_set_handler (SIGHUP, nih_signal_handler);
263 NIH_MUST (nih_signal_add_handler (NULL, SIGHUP, hup_handler, NULL));
264
265 /* SIGUSR1 instructs us to reconnect to D-Bus */
266 nih_signal_set_handler (SIGUSR1, nih_signal_handler);
267 NIH_MUST (nih_signal_add_handler (NULL, SIGUSR1, usr1_handler, NULL));
268#endif /* DEBUG */285#endif /* DEBUG */
269286
270287
@@ -284,20 +301,22 @@
284 conf_reload ();301 conf_reload ();
285302
286 /* Create a listening server for private connections. */303 /* Create a listening server for private connections. */
287 while (control_server_open () < 0) {304 if (use_session_bus == FALSE) {
288 NihError *err;305 while (control_server_open () < 0) {
306 NihError *err;
289307
290 err = nih_error_get ();308 err = nih_error_get ();
291 if (err->number != ENOMEM) {309 if (err->number != ENOMEM) {
292 nih_warn ("%s: %s", _("Unable to listen for private connections"),310 nih_warn ("%s: %s", _("Unable to listen for private connections"),
293 err->message);311 err->message);
312 nih_free (err);
313 break;
314 }
294 nih_free (err);315 nih_free (err);
295 break;
296 }316 }
297 nih_free (err);
298 }317 }
299318
300 /* Open connection to the system bus; we normally expect this to319 /* Open connection to the appropriate D-Bus bus; we normally expect this to
301 * fail and will try again later - don't let ENOMEM stop us though.320 * fail and will try again later - don't let ENOMEM stop us though.
302 */321 */
303 while (control_bus_open () < 0) {322 while (control_bus_open () < 0) {
@@ -313,13 +332,15 @@
313 }332 }
314333
315#ifndef DEBUG334#ifndef DEBUG
316 /* Now that the startup is complete, send all further logging output335 if (use_session_bus == FALSE) {
317 * to kmsg instead of to the console.336 /* Now that the startup is complete, send all further logging output
318 */337 * to kmsg instead of to the console.
319 if (system_setup_console (CONSOLE_NONE, FALSE) < 0)338 */
320 nih_free (nih_error_get ());339 if (system_setup_console (CONSOLE_NONE, FALSE) < 0)
340 nih_free (nih_error_get ());
321341
322 nih_log_set_logger (logger_kmsg);342 nih_log_set_logger (logger_kmsg);
343 }
323#endif /* DEBUG */344#endif /* DEBUG */
324345
325346
326347
=== modified file 'init/man/init.8'
--- init/man/init.8 2010-02-04 19:26:17 +0000
+++ init/man/init.8 2011-06-03 09:21:18 +0000
@@ -1,4 +1,4 @@
1.TH init 8 2010-02-04 "Upstart"1.TH init 8 2011-05-31 "Upstart"
2.\"2.\"
3.SH NAME3.SH NAME
4init \- Upstart process management daemon4init \- Upstart process management daemon
@@ -64,6 +64,10 @@
64by placing them on the kernel command-line.64by placing them on the kernel command-line.
65.\"65.\"
66.TP66.TP
67.B \-\-session
68Connect to the D\-Bus session bus. This should only be used for testing.
69.\"
70.TP
67.B --verbose71.B --verbose
68Outputs verbose messages about job state changes and event emissions to the72Outputs verbose messages about job state changes and event emissions to the
69system console or log, useful for debugging boot.73system console or log, useful for debugging boot.
@@ -90,7 +94,7 @@
90.RB < https://launchpad.net/upstart/+bugs >94.RB < https://launchpad.net/upstart/+bugs >
91.\"95.\"
92.SH COPYRIGHT96.SH COPYRIGHT
93Copyright \(co 2010 Canonical Ltd.97Copyright \(co 2009-2011 Canonical Ltd.
94.br98.br
95This is free software; see the source for copying conditions. There is NO99This is free software; see the source for copying conditions. There is NO
96warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.100warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
97101
=== modified file 'init/tests/test_conf.c'
--- init/tests/test_conf.c 2011-02-17 23:38:17 +0000
+++ init/tests/test_conf.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * test_conf.c - test suite for init/conf.c3 * test_conf.c - test suite for init/conf.c
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2009 Canonical Ltd.5 * Copyright © 2009 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/tests/test_control.c'
--- init/tests/test_control.c 2011-03-16 22:42:48 +0000
+++ init/tests/test_control.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * test_dbus.c - test suite for init/dbus.c3 * test_dbus.c - test suite for init/dbus.c
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2010 Canonical Ltd.5 * Copyright © 2010 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/tests/test_environ.c'
--- init/tests/test_environ.c 2011-03-16 22:42:48 +0000
+++ init/tests/test_environ.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * test_environ.c - test suite for init/environ.c3 * test_environ.c - test suite for init/environ.c
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2009 Canonical Ltd.5 * Copyright © 2009 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/tests/test_job_class.c'
--- init/tests/test_job_class.c 2011-05-12 20:42:28 +0000
+++ init/tests/test_job_class.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * test_job_class.c - test suite for init/job_class.c3 * test_job_class.c - test suite for init/job_class.c
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2010 Canonical Ltd.5 * Copyright © 2010 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'init/tests/test_job_process.c'
--- init/tests/test_job_process.c 2011-05-12 19:21:16 +0000
+++ init/tests/test_job_process.c 2011-06-03 09:21:18 +0000
@@ -2,7 +2,6 @@
2 *2 *
3 * test_job_process.c - test suite for init/job_process.c3 * test_job_process.c - test suite for init/job_process.c
4 *4 *
5 * Copyright © 2011 Google Inc.
6 * Copyright © 2011 Canonical Ltd.5 * Copyright © 2011 Canonical Ltd.
7 * Author: Scott James Remnant <scott@netsplit.com>.6 * Author: Scott James Remnant <scott@netsplit.com>.
8 *7 *
98
=== modified file 'po/upstart.pot'
--- po/upstart.pot 2011-03-22 17:52:25 +0000
+++ po/upstart.pot 2011-06-03 09:21:18 +0000
@@ -6,76 +6,141 @@
6#, fuzzy6#, fuzzy
7msgid ""7msgid ""
8msgstr ""8msgstr ""
9"Project-Id-Version: upstart 1.2\n"9"Project-Id-Version: upstart 1.3\n"
10"Report-Msgid-Bugs-To: new@bugs.launchpad.net\n"10"Report-Msgid-Bugs-To: new@bugs.launchpad.net\n"
11"POT-Creation-Date: 2011-03-22 10:52-0700\n"11"POT-Creation-Date: 2011-05-31 17:52+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"14"Language-Team: LANGUAGE <LL@li.org>\n"
15"Language: \n"
15"MIME-Version: 1.0\n"16"MIME-Version: 1.0\n"
16"Content-Type: text/plain; charset=CHARSET\n"17"Content-Type: text/plain; charset=CHARSET\n"
17"Content-Transfer-Encoding: 8bit\n"18"Content-Transfer-Encoding: 8bit\n"
1819
19#: init/conf.c:23820#: init/conf.c:237
20msgid "Unable to load configuration"21msgid "Unable to load configuration"
21msgstr ""22msgstr ""
2223
23#: init/conf.c:27124#: init/conf.c:270
24#, c-format25#, c-format
25msgid "Loading configuration from %s"26msgid "Loading configuration from %s"
26msgstr ""27msgstr ""
2728
28#: init/conf.c:30829#: init/conf.c:307
29#, c-format30#, c-format
30msgid "Handling deletion of %s"31msgid "Handling deletion of %s"
31msgstr ""32msgstr ""
3233
33#: init/conf.c:37934#: init/conf.c:378
34msgid "Unable to watch configuration file"35msgid "Unable to watch configuration file"
35msgstr ""36msgstr ""
3637
37#: init/conf.c:45738#: init/conf.c:456
38msgid "Unable to watch configuration directory"39msgid "Unable to watch configuration directory"
39msgstr ""40msgstr ""
4041
41#: init/conf.c:569 init/conf.c:65342#: init/conf.c:568 init/conf.c:652
42msgid "Error while loading configuration file"43msgid "Error while loading configuration file"
43msgstr ""44msgstr ""
4445
45#: init/conf.c:60946#: init/conf.c:608
46msgid "Configuration directory deleted"47msgid "Configuration directory deleted"
47msgstr ""48msgstr ""
4849
49#: init/control.c:15550#: init/control.c:162
50msgid "Connection from private client"51msgid "Connection from private client"
51msgstr ""52msgstr ""
5253
53#: init/control.c:29054#: init/control.c:301
54msgid "Disconnected from system bus"55msgid "Disconnected from system bus"
55msgstr ""56msgstr ""
5657
57#: init/control.c:356 init/main.c:54658#: init/control.c:367 init/main.c:567
58msgid "Reloading configuration"59msgid "Reloading configuration"
59msgstr ""60msgstr ""
6061
61#: init/control.c:396 init/control.c:50762#: init/control.c:407 init/control.c:518
62msgid "Name may not be empty string"63msgid "Name may not be empty string"
63msgstr ""64msgstr ""
6465
65#: init/control.c:40566#: init/control.c:416
66#, c-format67#, c-format
67msgid "Unknown job: %s"68msgid "Unknown job: %s"
68msgstr ""69msgstr ""
6970
70#: init/control.c:514 init/job_class.c:522 init/job_class.c:71071#: init/control.c:525 init/job_class.c:524 init/job_class.c:712
71#: init/job_class.c:829 init/job_class.c:95372#: init/job_class.c:831 init/job_class.c:955
72msgid "Env must be KEY=VALUE pairs"73msgid "Env must be KEY=VALUE pairs"
73msgstr ""74msgstr ""
7475
75#: init/control.c:66676#: init/control.c:677
76msgid "The log priority given was not recognised"77msgid "The log priority given was not recognised"
77msgstr ""78msgstr ""
7879
80#: init/errors.h:58
81msgid "Illegal parameter"
82msgstr ""
83
84#: init/errors.h:59
85msgid "Unknown parameter"
86msgstr ""
87
88#: init/errors.h:60 init/errors.h:71
89msgid "Expected operator"
90msgstr ""
91
92#: init/errors.h:61
93msgid "Mismatched braces"
94msgstr ""
95
96#: init/errors.h:62
97msgid "Illegal interval, expected number of seconds"
98msgstr ""
99
100#: init/errors.h:63
101msgid "Illegal exit status, expected integer"
102msgstr ""
103
104#: init/errors.h:64
105msgid "Illegal signal status, expected integer"
106msgstr ""
107
108#: init/errors.h:65
109msgid "Illegal file creation mask, expected octal integer"
110msgstr ""
111
112#: init/errors.h:66
113msgid "Illegal nice value, expected -20 to 19"
114msgstr ""
115
116#: init/errors.h:67
117msgid "Illegal oom adjustment, expected -16 to 15 or 'never'"
118msgstr ""
119
120#: init/errors.h:68
121msgid "Illegal oom score adjustment, expected -999 to 1000 or 'never'"
122msgstr ""
123
124#: init/errors.h:69
125msgid "Illegal limit, expected 'unlimited' or integer"
126msgstr ""
127
128#: init/errors.h:70
129msgid "Expected event"
130msgstr ""
131
132#: init/errors.h:72
133msgid "Expected variable name before value"
134msgstr ""
135
136#: init/errors.h:73
137msgid "Mismatched parentheses"
138msgstr ""
139
140#: init/errors.h:74
141msgid "Name already taken"
142msgstr ""
143
79#: init/event.c:273144#: init/event.c:273
80#, c-format145#, c-format
81msgid "Handling %s event"146msgid "Handling %s event"
@@ -164,241 +229,240 @@
164msgid "post-stop"229msgid "post-stop"
165msgstr ""230msgstr ""
166231
167#: init/job.c:1113 init/job_class.c:756232#: init/job.c:1113 init/job_class.c:758
168#, c-format233#, c-format
169msgid "Job is already running: %s"234msgid "Job is already running: %s"
170msgstr ""235msgstr ""
171236
172#: init/job.c:1177 init/job.c:1242 init/job_class.c:875 init/job_class.c:998237#: init/job.c:1177 init/job.c:1242 init/job_class.c:877 init/job_class.c:1000
173#, c-format238#, c-format
174msgid "Job has already been stopped: %s"239msgid "Job has already been stopped: %s"
175msgstr ""240msgstr ""
176241
177#: init/job_class.c:559 init/job_class.c:604 init/job_class.c:867242#: init/job_class.c:561 init/job_class.c:606 init/job_class.c:869
178#: init/job_class.c:990243#: init/job_class.c:992
179#, c-format244#, c-format
180msgid "Unknown instance: %s"245msgid "Unknown instance: %s"
181msgstr ""246msgstr ""
182247
183#: init/job_process.c:279248#: init/job_process.c:276
184#, c-format249#, c-format
185msgid "Failed to spawn %s %s process: %s"250msgid "Failed to spawn %s %s process: %s"
186msgstr ""251msgstr ""
187252
188#: init/job_process.c:285253#: init/job_process.c:282
189msgid "Temporary process spawn error"254msgid "Temporary process spawn error"
190msgstr ""255msgstr ""
191256
192#: init/job_process.c:292257#: init/job_process.c:289
193#, c-format258#, c-format
194msgid "%s %s process (%d)"259msgid "%s %s process (%d)"
195msgstr ""260msgstr ""
196261
197#: init/job_process.c:399262#: init/job_process.c:402
198#, c-format263#, c-format
199msgid "Pausing %s (%d) [pre-exec] for debug"264msgid "Pausing %s (%d) [pre-exec] for debug"
200msgstr ""265msgstr ""
201266
202#: init/job_process.c:453267#: init/job_process.c:472
203#, c-format268#, c-format
204msgid "Failed to open system console: %s"269msgid "Failed to open system console: %s"
205msgstr ""270msgstr ""
206271
207#: init/job_process.c:669272#: init/job_process.c:696
273#, c-format
274msgid "unable to move script fd: %s"
275msgstr ""
276
277#: init/job_process.c:701
208#, c-format278#, c-format
209msgid "unable to open console: %s"279msgid "unable to open console: %s"
210msgstr ""280msgstr ""
211281
212#: init/job_process.c:724282#: init/job_process.c:756
213#, c-format283#, c-format
214msgid "unable to set \"%s\" resource limit: %s"284msgid "unable to set \"%s\" resource limit: %s"
215msgstr ""285msgstr ""
216286
217#: init/job_process.c:729287#: init/job_process.c:761
218#, c-format288#, c-format
219msgid "unable to set priority: %s"289msgid "unable to set priority: %s"
220msgstr ""290msgstr ""
221291
222#: init/job_process.c:734292#: init/job_process.c:766
223#, c-format293#, c-format
224msgid "unable to set oom adjustment: %s"294msgid "unable to set oom adjustment: %s"
225msgstr ""295msgstr ""
226296
227#: init/job_process.c:739297#: init/job_process.c:771
228#, c-format298#, c-format
229msgid "unable to change root directory: %s"299msgid "unable to change root directory: %s"
230msgstr ""300msgstr ""
231301
232#: init/job_process.c:744302#: init/job_process.c:776
233#, c-format303#, c-format
234msgid "unable to change working directory: %s"304msgid "unable to change working directory: %s"
235msgstr ""305msgstr ""
236306
237#: init/job_process.c:749307#: init/job_process.c:781
238#, c-format308#, c-format
239msgid "unable to set trace: %s"309msgid "unable to set trace: %s"
240msgstr ""310msgstr ""
241311
242#: init/job_process.c:754312#: init/job_process.c:786
243#, c-format313#, c-format
244msgid "unable to execute: %s"314msgid "unable to execute: %s"
245msgstr ""315msgstr ""
246316
247#: init/job_process.c:785317#: init/job_process.c:817 init/job_process.c:867
248#, c-format318#, c-format
249msgid "Sending TERM signal to %s %s process (%d)"319msgid "Sending %s signal to %s %s process (%d)"
250msgstr ""320msgstr ""
251321
252#: init/job_process.c:793322#: init/job_process.c:826 init/job_process.c:876
253#, c-format323#, c-format
254msgid "Failed to send TERM signal to %s %s process (%d): %s"324msgid "Failed to send %s signal to %s %s process (%d): %s"
255msgstr ""325msgstr ""
256326
257#: init/job_process.c:833327#: init/job_process.c:937
258#, c-format
259msgid "Sending KILL signal to %s %s process (%d)"
260msgstr ""
261
262#: init/job_process.c:841
263#, c-format
264msgid "Failed to send KILL signal to %s %s process (%d): %s"
265msgstr ""
266
267#: init/job_process.c:901
268#, c-format328#, c-format
269msgid "%s %s process (%d) terminated with status %d"329msgid "%s %s process (%d) terminated with status %d"
270msgstr ""330msgstr ""
271331
272#: init/job_process.c:906332#: init/job_process.c:942
273#, c-format333#, c-format
274msgid "%s %s process (%d) exited normally"334msgid "%s %s process (%d) exited normally"
275msgstr ""335msgstr ""
276336
277#: init/job_process.c:921337#: init/job_process.c:957
278#, c-format338#, c-format
279msgid "%s %s process (%d) killed by %s signal"339msgid "%s %s process (%d) killed by %s signal"
280msgstr ""340msgstr ""
281341
282#: init/job_process.c:925342#: init/job_process.c:961
283#, c-format343#, c-format
284msgid "%s %s process (%d) killed by signal %d"344msgid "%s %s process (%d) killed by signal %d"
285msgstr ""345msgstr ""
286346
287#: init/job_process.c:939347#: init/job_process.c:975
288#, c-format348#, c-format
289msgid "%s %s process (%d) stopped by %s signal"349msgid "%s %s process (%d) stopped by %s signal"
290msgstr ""350msgstr ""
291351
292#: init/job_process.c:943352#: init/job_process.c:979
293#, c-format353#, c-format
294msgid "%s %s process (%d) stopped by signal %d"354msgid "%s %s process (%d) stopped by signal %d"
295msgstr ""355msgstr ""
296356
297#: init/job_process.c:957357#: init/job_process.c:993
298#, c-format358#, c-format
299msgid "%s %s process (%d) continued by %s signal"359msgid "%s %s process (%d) continued by %s signal"
300msgstr ""360msgstr ""
301361
302#: init/job_process.c:961362#: init/job_process.c:997
303#, c-format363#, c-format
304msgid "%s %s process (%d) continued by signal %d"364msgid "%s %s process (%d) continued by signal %d"
305msgstr ""365msgstr ""
306366
307#: init/job_process.c:1096367#: init/job_process.c:1132
308#, c-format368#, c-format
309msgid "%s respawning too fast, stopped"369msgid "%s respawning too fast, stopped"
310msgstr ""370msgstr ""
311371
312#: init/job_process.c:1102372#: init/job_process.c:1138
313#, c-format373#, c-format
314msgid "%s %s process ended, respawning"374msgid "%s %s process ended, respawning"
315msgstr ""375msgstr ""
316376
317#: init/job_process.c:1342377#: init/job_process.c:1378
318#, c-format378#, c-format
319msgid "Failed to set ptrace options for %s %s process (%d): %s"379msgid "Failed to set ptrace options for %s %s process (%d): %s"
320msgstr ""380msgstr ""
321381
322#: init/job_process.c:1355 init/job_process.c:1550382#: init/job_process.c:1391 init/job_process.c:1586
323#, c-format383#, c-format
324msgid "Failed to continue traced %s %s process (%d): %s"384msgid "Failed to continue traced %s %s process (%d): %s"
325msgstr ""385msgstr ""
326386
327#: init/job_process.c:1395 init/job_process.c:1486 init/job_process.c:1541387#: init/job_process.c:1431 init/job_process.c:1522 init/job_process.c:1577
328#, c-format388#, c-format
329msgid "Failed to detach traced %s %s process (%d): %s"389msgid "Failed to detach traced %s %s process (%d): %s"
330msgstr ""390msgstr ""
331391
332#: init/job_process.c:1435392#: init/job_process.c:1471
333#, c-format393#, c-format
334msgid "Failed to deliver signal to traced %s %s process (%d): %s"394msgid "Failed to deliver signal to traced %s %s process (%d): %s"
335msgstr ""395msgstr ""
336396
337#: init/job_process.c:1470397#: init/job_process.c:1506
338#, c-format398#, c-format
339msgid "Failed to obtain child process id for %s %s process (%d): %s"399msgid "Failed to obtain child process id for %s %s process (%d): %s"
340msgstr ""400msgstr ""
341401
342#: init/job_process.c:1477402#: init/job_process.c:1513
343#, c-format403#, c-format
344msgid "%s %s process (%d) became new process (%d)"404msgid "%s %s process (%d) became new process (%d)"
345msgstr ""405msgstr ""
346406
347#: init/job_process.c:1536407#: init/job_process.c:1572
348#, c-format408#, c-format
349msgid "%s %s process (%d) executable changed"409msgid "%s %s process (%d) executable changed"
350msgstr ""410msgstr ""
351411
352#: init/main.c:117412#: init/main.c:100
413msgid "use D-Bus session bus rather than system bus (for testing)"
414msgstr ""
415
416#: init/main.c:120
353msgid "Process management daemon."417msgid "Process management daemon."
354msgstr ""418msgstr ""
355419
356#: init/main.c:119420#: init/main.c:122
357msgid ""421msgid ""
358"This daemon is normally executed by the kernel and given process id 1 to "422"This daemon is normally executed by the kernel and given process id 1 to "
359"denote its special status. When executed by a user process, it will "423"denote its special status. When executed by a user process, it will "
360"actually run /sbin/telinit."424"actually run /sbin/telinit."
361msgstr ""425msgstr ""
362426
363#: init/main.c:130 util/reboot.c:167 util/shutdown.c:363 util/telinit.c:148427#: init/main.c:137 util/reboot.c:166 util/shutdown.c:363 util/telinit.c:148
364msgid "Need to be root"428msgid "Need to be root"
365msgstr ""429msgstr ""
366430
367#: init/main.c:139431#: init/main.c:146
368msgid "Not being executed as init"432msgid "Not being executed as init"
369msgstr ""433msgstr ""
370434
371#: init/main.c:187 init/main.c:456435#: init/main.c:194 init/main.c:477
372msgid "Unable to set root directory"436msgid "Unable to set root directory"
373msgstr ""437msgstr ""
374438
375#: init/main.c:198439#: init/main.c:205
376msgid "Unable to mount /proc filesystem"440msgid "Unable to mount /proc filesystem"
377msgstr ""441msgstr ""
378442
379#: init/main.c:207443#: init/main.c:214
380msgid "Unable to mount /sys filesystem"444msgid "Unable to mount /sys filesystem"
381msgstr ""445msgstr ""
382446
383#: init/main.c:292447#: init/main.c:310
384msgid "Unable to listen for private connections"448msgid "Unable to listen for private connections"
385msgstr ""449msgstr ""
386450
387#: init/main.c:473451#: init/main.c:494
388#, c-format452#, c-format
389msgid "Caught %s, core dumped"453msgid "Caught %s, core dumped"
390msgstr ""454msgstr ""
391455
392#: init/main.c:477456#: init/main.c:498
393#, c-format457#, c-format
394msgid "Caught %s, unable to dump core"458msgid "Caught %s, unable to dump core"
395msgstr ""459msgstr ""
396460
397#: init/main.c:563461#: init/main.c:584
398msgid "Reconnecting to system bus"462msgid "Reconnecting to system bus"
399msgstr ""463msgstr ""
400464
401#: init/main.c:569465#: init/main.c:590
402msgid "Unable to connect to the system bus"466msgid "Unable to connect to the system bus"
403msgstr ""467msgstr ""
404468
@@ -406,76 +470,84 @@
406msgid "main"470msgid "main"
407msgstr ""471msgstr ""
408472
409#: util/initctl.c:145473#: util/initctl.c:185
410msgid "Unable to connect to system bus"474msgid "Unable to connect to system bus"
411msgstr ""475msgstr ""
412476
413#: util/initctl.c:154477#: util/initctl.c:186
478msgid "Unable to connect to session bus"
479msgstr ""
480
481#: util/initctl.c:195
414#, c-format482#, c-format
415msgid "%s: --dest given without --system\n"483msgid "%s: --dest given without --system\n"
416msgstr ""484msgstr ""
417485
418#: util/initctl.c:162486#: util/initctl.c:203
419msgid "Unable to connect to Upstart"487msgid "Unable to connect to Upstart"
420msgstr ""488msgstr ""
421489
422#: util/initctl.c:348 util/initctl.c:483 util/initctl.c:611 util/initctl.c:745490#: util/initctl.c:389 util/initctl.c:524 util/initctl.c:652 util/initctl.c:786
423#: util/initctl.c:850491#: util/initctl.c:891
424#, c-format492#, c-format
425msgid "%s: missing job name\n"493msgid "%s: missing job name\n"
426msgstr ""494msgstr ""
427495
428#: util/initctl.c:796496#: util/initctl.c:837
429msgid "Not running"497msgid "Not running"
430msgstr ""498msgstr ""
431499
432#: util/initctl.c:1065500#: util/initctl.c:1106
433#, c-format501#, c-format
434msgid "%s: missing event name\n"502msgid "%s: missing event name\n"
435msgstr ""503msgstr ""
436504
437#: util/initctl.c:1261505#: util/initctl.c:1302
506msgid "use D-Bus session bus to connect to init daemon (for testing)"
507msgstr ""
508
509#: util/initctl.c:1304
438msgid "use D-Bus system bus to connect to init daemon"510msgid "use D-Bus system bus to connect to init daemon"
439msgstr ""511msgstr ""
440512
441#: util/initctl.c:1263513#: util/initctl.c:1306
442msgid "destination well-known name on system bus"514msgid "destination well-known name on D-Bus bus"
443msgstr ""515msgstr ""
444516
445#: util/initctl.c:1276517#: util/initctl.c:1319
446msgid "do not wait for job to start before exiting"518msgid "do not wait for job to start before exiting"
447msgstr ""519msgstr ""
448520
449#: util/initctl.c:1288521#: util/initctl.c:1331
450msgid "do not wait for job to stop before exiting"522msgid "do not wait for job to stop before exiting"
451msgstr ""523msgstr ""
452524
453#: util/initctl.c:1300525#: util/initctl.c:1343
454msgid "do not wait for job to restart before exiting"526msgid "do not wait for job to restart before exiting"
455msgstr ""527msgstr ""
456528
457#: util/initctl.c:1339529#: util/initctl.c:1382
458msgid "do not wait for event to finish before exiting"530msgid "do not wait for event to finish before exiting"
459msgstr ""531msgstr ""
460532
461#: util/initctl.c:1378533#: util/initctl.c:1421
462msgid "Job"534msgid "Job"
463msgstr ""535msgstr ""
464536
465#: util/initctl.c:1385537#: util/initctl.c:1428
466msgid "Event"538msgid "Event"
467msgstr ""539msgstr ""
468540
469#: util/initctl.c:1393 util/initctl.c:1405 util/initctl.c:1416541#: util/initctl.c:1436 util/initctl.c:1448 util/initctl.c:1459
470#: util/initctl.c:1427 util/initctl.c:1434542#: util/initctl.c:1470 util/initctl.c:1477
471msgid "JOB [KEY=VALUE]..."543msgid "JOB [KEY=VALUE]..."
472msgstr ""544msgstr ""
473545
474#: util/initctl.c:1394546#: util/initctl.c:1437
475msgid "Start job."547msgid "Start job."
476msgstr ""548msgstr ""
477549
478#: util/initctl.c:1395550#: util/initctl.c:1438
479msgid ""551msgid ""
480"JOB is the name of the job that is to be started, this may be followed by "552"JOB is the name of the job that is to be started, this may be followed by "
481"zero or more environment variables to be defined in the new job.\n"553"zero or more environment variables to be defined in the new job.\n"
@@ -485,11 +557,11 @@
485"an existing instance is already running."557"an existing instance is already running."
486msgstr ""558msgstr ""
487559
488#: util/initctl.c:1406560#: util/initctl.c:1449
489msgid "Stop job."561msgid "Stop job."
490msgstr ""562msgstr ""
491563
492#: util/initctl.c:1407564#: util/initctl.c:1450
493msgid ""565msgid ""
494"JOB is the name of the job that is to be stopped, this may be followed by "566"JOB is the name of the job that is to be stopped, this may be followed by "
495"zero or more environment variables to be passed to the job's pre-stop and "567"zero or more environment variables to be passed to the job's pre-stop and "
@@ -499,11 +571,11 @@
499"decide which of multiple instances will be stopped."571"decide which of multiple instances will be stopped."
500msgstr ""572msgstr ""
501573
502#: util/initctl.c:1417574#: util/initctl.c:1460
503msgid "Restart job."575msgid "Restart job."
504msgstr ""576msgstr ""
505577
506#: util/initctl.c:1418578#: util/initctl.c:1461
507msgid ""579msgid ""
508"JOB is the name of the job that is to be restarted, this may be followed by "580"JOB is the name of the job that is to be restarted, this may be followed by "
509"zero or more environment variables to be defined in the job after "581"zero or more environment variables to be defined in the job after "
@@ -513,66 +585,66 @@
513"decide which of multiple instances will be restarted."585"decide which of multiple instances will be restarted."
514msgstr ""586msgstr ""
515587
516#: util/initctl.c:1428588#: util/initctl.c:1471
517msgid "Send HUP signal to job."589msgid "Send HUP signal to job."
518msgstr ""590msgstr ""
519591
520#: util/initctl.c:1429592#: util/initctl.c:1472
521msgid ""593msgid ""
522"JOB is the name of the job that is to be sent the signal, this may be "594"JOB is the name of the job that is to be sent the signal, this may be "
523"followed by zero or more environment variables to distinguish between job "595"followed by zero or more environment variables to distinguish between job "
524"instances.\n"596"instances.\n"
525msgstr ""597msgstr ""
526598
527#: util/initctl.c:1435599#: util/initctl.c:1478
528msgid "Query status of job."600msgid "Query status of job."
529msgstr ""601msgstr ""
530602
531#: util/initctl.c:1436603#: util/initctl.c:1479
532msgid ""604msgid ""
533"JOB is the name of the job that is to be queried, this may be followed by "605"JOB is the name of the job that is to be queried, this may be followed by "
534"zero or more environment variables to distguish between job instances.\n"606"zero or more environment variables to distguish between job instances.\n"
535msgstr ""607msgstr ""
536608
537#: util/initctl.c:1442609#: util/initctl.c:1485
538msgid "List known jobs."610msgid "List known jobs."
539msgstr ""611msgstr ""
540612
541#: util/initctl.c:1443613#: util/initctl.c:1486
542msgid "The known jobs and their current status will be output."614msgid "The known jobs and their current status will be output."
543msgstr ""615msgstr ""
544616
545#: util/initctl.c:1446617#: util/initctl.c:1489
546msgid "EVENT [KEY=VALUE]..."618msgid "EVENT [KEY=VALUE]..."
547msgstr ""619msgstr ""
548620
549#: util/initctl.c:1447621#: util/initctl.c:1490
550msgid "Emit an event."622msgid "Emit an event."
551msgstr ""623msgstr ""
552624
553#: util/initctl.c:1448625#: util/initctl.c:1491
554msgid ""626msgid ""
555"EVENT is the name of an event the init daemon should emit, this may be "627"EVENT is the name of an event the init daemon should emit, this may be "
556"followed by zero or more environment variables to be included in the event.\n"628"followed by zero or more environment variables to be included in the event.\n"
557msgstr ""629msgstr ""
558630
559#: util/initctl.c:1454631#: util/initctl.c:1497
560msgid "Reload the configuration of the init daemon."632msgid "Reload the configuration of the init daemon."
561msgstr ""633msgstr ""
562634
563#: util/initctl.c:1458635#: util/initctl.c:1501
564msgid "Request the version of the init daemon."636msgid "Request the version of the init daemon."
565msgstr ""637msgstr ""
566638
567#: util/initctl.c:1461639#: util/initctl.c:1504
568msgid "[PRIORITY]"640msgid "[PRIORITY]"
569msgstr ""641msgstr ""
570642
571#: util/initctl.c:1462643#: util/initctl.c:1505
572msgid "Change the minimum priority of log messages from the init daemon"644msgid "Change the minimum priority of log messages from the init daemon"
573msgstr ""645msgstr ""
574646
575#: util/initctl.c:1464647#: util/initctl.c:1507
576msgid ""648msgid ""
577"PRIORITY may be one of:\n"649"PRIORITY may be one of:\n"
578" `debug' (messages useful for debugging upstart are logged, equivalent to --"650" `debug' (messages useful for debugging upstart are logged, equivalent to --"
@@ -589,59 +661,59 @@
589"Without arguments, this outputs the current log priority."661"Without arguments, this outputs the current log priority."
590msgstr ""662msgstr ""
591663
592#: util/reboot.c:114664#: util/reboot.c:113
593msgid "don't sync before reboot or halt"665msgid "don't sync before reboot or halt"
594msgstr ""666msgstr ""
595667
596#: util/reboot.c:116668#: util/reboot.c:115
597msgid "force reboot or halt, don't call shutdown(8)"669msgid "force reboot or halt, don't call shutdown(8)"
598msgstr ""670msgstr ""
599671
600#: util/reboot.c:118672#: util/reboot.c:117
601msgid "switch off the power when called as halt"673msgid "switch off the power when called as halt"
602msgstr ""674msgstr ""
603675
604#: util/reboot.c:120676#: util/reboot.c:119
605msgid "don't actually reboot or halt, just write wtmp record"677msgid "don't actually reboot or halt, just write wtmp record"
606msgstr ""678msgstr ""
607679
608#: util/reboot.c:145680#: util/reboot.c:144
609msgid "Halt the system."681msgid "Halt the system."
610msgstr ""682msgstr ""
611683
612#: util/reboot.c:148684#: util/reboot.c:147
613msgid "Power off the system."685msgid "Power off the system."
614msgstr ""686msgstr ""
615687
616#: util/reboot.c:151688#: util/reboot.c:150
617msgid "Reboot the system."689msgid "Reboot the system."
618msgstr ""690msgstr ""
619691
620#: util/reboot.c:155692#: util/reboot.c:154
621msgid ""693msgid ""
622"This command is intended to instruct the kernel to reboot or halt the "694"This command is intended to instruct the kernel to reboot or halt the "
623"system; when run without the -f option, or when in a system runlevel other "695"system; when run without the -f option, or when in a system runlevel other "
624"than 0 or 6, it will actually execute /sbin/shutdown.\n"696"than 0 or 6, it will actually execute /sbin/shutdown.\n"
625msgstr ""697msgstr ""
626698
627#: util/reboot.c:211699#: util/reboot.c:210
628msgid "Calling shutdown"700msgid "Calling shutdown"
629msgstr ""701msgstr ""
630702
631#: util/reboot.c:214703#: util/reboot.c:213
632#, c-format704#, c-format
633msgid "Unable to execute shutdown: %s"705msgid "Unable to execute shutdown: %s"
634msgstr ""706msgstr ""
635707
636#: util/reboot.c:235708#: util/reboot.c:234
637msgid "Rebooting"709msgid "Rebooting"
638msgstr ""710msgstr ""
639711
640#: util/reboot.c:239712#: util/reboot.c:238
641msgid "Halting"713msgid "Halting"
642msgstr ""714msgstr ""
643715
644#: util/reboot.c:243716#: util/reboot.c:242
645msgid "Powering off"717msgid "Powering off"
646msgstr ""718msgstr ""
647719
648720
=== modified file 'util/initctl.c'
--- util/initctl.c 2010-02-04 19:08:07 +0000
+++ util/initctl.c 2011-06-03 09:21:18 +0000
@@ -63,6 +63,11 @@
63static void reply_handler (int *ret, NihDBusMessage *message);63static void reply_handler (int *ret, NihDBusMessage *message);
64static void error_handler (void *data, NihDBusMessage *message);64static void error_handler (void *data, NihDBusMessage *message);
6565
66#ifndef TEST
67
68static int dbus_bus_type_setter (NihOption *option, const char *arg);
69
70#endif
6671
67/* Prototypes for option and command functions */72/* Prototypes for option and command functions */
68int start_action (NihCommand *command, char * const *args);73int start_action (NihCommand *command, char * const *args);
@@ -78,12 +83,21 @@
7883
7984
80/**85/**
81 * system_bus:86 * use_dbus:
82 *87 *
83 * Whether to connect to the init daemon on the D-Bus system bus or88 * If 1, connect using a D-Bus bus.
84 * privately.89 * If 0, connect using private connection.
85 **/90 * If -1, determine appropriate connection based on UID.
86int system_bus = -1;91 */
92int use_dbus = -1;
93
94/**
95 * dbus_bus_type:
96 *
97 * D-Bus bus to connect to (DBUS_BUS_SYSTEM or DBUS_BUS_SESSION), or -1
98 * to have an appropriate bus selected.
99 */
100int dbus_bus_type = -1;
87101
88/**102/**
89 * dest_name:103 * dest_name:
@@ -107,6 +121,28 @@
107 **/121 **/
108int no_wait = FALSE;122int no_wait = FALSE;
109123
124/**
125 * NihOption setter function to handle selection of appropriate D-Bus
126 * bus.
127 *
128 * Always returns 1 denoting success.
129 **/
130int
131dbus_bus_type_setter (NihOption *option, const char *arg)
132{
133 nih_assert (option);
134
135 if (! strcmp (option->long_option, "system")) {
136 use_dbus = TRUE;
137 dbus_bus_type = DBUS_BUS_SYSTEM;
138 }
139 else if (! strcmp (option->long_option, "session")) {
140 use_dbus = TRUE;
141 dbus_bus_type = DBUS_BUS_SESSION;
142 }
143
144 return 1;
145}
110146
111/**147/**
112 * upstart_open:148 * upstart_open:
@@ -132,17 +168,22 @@
132 DBusConnection *connection;168 DBusConnection *connection;
133 NihDBusProxy * upstart;169 NihDBusProxy * upstart;
134170
135 if (system_bus < 0)171 if (use_dbus < 0)
136 system_bus = getuid () ? TRUE : FALSE;172 use_dbus = getuid () ? TRUE : FALSE;
173 if (use_dbus >= 0 && dbus_bus_type < 0)
174 dbus_bus_type = DBUS_BUS_SYSTEM;
137175
138 dbus_error_init (&dbus_error);176 dbus_error_init (&dbus_error);
139 if (system_bus) {177 if (use_dbus) {
140 if (! dest_name)178 if (! dest_name)
141 dest_name = DBUS_SERVICE_UPSTART;179 dest_name = DBUS_SERVICE_UPSTART;
142180
143 connection = dbus_bus_get (DBUS_BUS_SYSTEM, &dbus_error);181 connection = dbus_bus_get (dbus_bus_type, &dbus_error);
144 if (! connection) {182 if (! connection) {
145 nih_error ("%s: %s", _("Unable to connect to system bus"),183 nih_error ("%s: %s",
184 dbus_bus_type == DBUS_BUS_SYSTEM
185 ? _("Unable to connect to system bus")
186 : _("Unable to connect to session bus"),
146 dbus_error.message);187 dbus_error.message);
147 dbus_error_free (&dbus_error);188 dbus_error_free (&dbus_error);
148 return NULL;189 return NULL;
@@ -1258,9 +1299,11 @@
1258 * Command-line options accepted for all arguments.1299 * Command-line options accepted for all arguments.
1259 **/1300 **/
1260static NihOption options[] = {1301static NihOption options[] = {
1302 { 0, "session", N_("use D-Bus session bus to connect to init daemon (for testing)"),
1303 NULL, NULL, NULL, dbus_bus_type_setter },
1261 { 0, "system", N_("use D-Bus system bus to connect to init daemon"),1304 { 0, "system", N_("use D-Bus system bus to connect to init daemon"),
1262 NULL, NULL, &system_bus, NULL },1305 NULL, NULL, NULL, dbus_bus_type_setter },
1263 { 0, "dest", N_("destination well-known name on system bus"),1306 { 0, "dest", N_("destination well-known name on D-Bus bus"),
1264 NULL, "NAME", &dest_name, NULL },1307 NULL, "NAME", &dest_name, NULL },
12651308
1266 NIH_OPTION_LAST1309 NIH_OPTION_LAST
12671310
=== modified file 'util/man/initctl.8'
--- util/man/initctl.8 2010-02-04 19:08:07 +0000
+++ util/man/initctl.8 2011-06-03 09:21:18 +0000
@@ -1,4 +1,4 @@
1.TH initctl 8 2010-02-04 "Upstart"1.TH initctl 8 2011-06-01 "Upstart"
2.\"2.\"
3.SH NAME3.SH NAME
4initctl \- init daemon control tool4initctl \- init daemon control tool
@@ -33,6 +33,12 @@
33.\"33.\"
34.SH OPTIONS34.SH OPTIONS
35.TP35.TP
36.B --session
37Connect to
38.BR init (8)
39daemon using the D-Bus session bus (for testing purposes only).
40.\"
41.TP
36.B --system42.B --system
37Communication with the43Communication with the
38.BR init (8)44.BR init (8)
@@ -348,7 +354,7 @@
348.RB < https://launchpad.net/upstart/+bugs >354.RB < https://launchpad.net/upstart/+bugs >
349.\"355.\"
350.SH COPYRIGHT356.SH COPYRIGHT
351Copyright \(co 2010 Canonical Ltd.357Copyright \(co 2010-2011 Canonical Ltd.
352.br358.br
353This is free software; see the source for copying conditions. There is NO359This is free software; see the source for copying conditions. There is NO
354warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.360warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
355361
=== modified file 'util/reboot.c'
--- util/reboot.c 2011-03-16 22:18:22 +0000
+++ util/reboot.c 2011-06-03 09:21:18 +0000
@@ -1,6 +1,5 @@
1/* upstart1/* upstart
2 *2 *
3 * Copyright © 2011 Google Inc.
4 * Copyright © 2010 Canonical Ltd.3 * Copyright © 2010 Canonical Ltd.
5 * Author: Scott James Remnant <scott@netsplit.com>.4 * Author: Scott James Remnant <scott@netsplit.com>.
6 *5 *
76
=== modified file 'util/tests/test_initctl.c'
--- util/tests/test_initctl.c 2010-02-04 20:43:33 +0000
+++ util/tests/test_initctl.c 2011-06-03 09:21:18 +0000
@@ -44,7 +44,8 @@
44#include "dbus/upstart.h"44#include "dbus/upstart.h"
4545
4646
47extern int system_bus;47extern int use_dbus;
48extern int dbus_bus_type;
48extern char *dest_name;49extern char *dest_name;
49extern const char *dest_address;50extern const char *dest_address;
50extern int no_wait;51extern int no_wait;
@@ -103,7 +104,7 @@
103 */104 */
104 TEST_FEATURE ("with private connection");105 TEST_FEATURE ("with private connection");
105 TEST_ALLOC_FAIL {106 TEST_ALLOC_FAIL {
106 system_bus = FALSE;107 use_dbus = FALSE;
107 dest_name = NULL;108 dest_name = NULL;
108 dest_address = "unix:abstract=/com/ubuntu/upstart/test";109 dest_address = "unix:abstract=/com/ubuntu/upstart/test";
109110
@@ -179,7 +180,8 @@
179 */180 */
180 TEST_FEATURE ("with system bus connection");181 TEST_FEATURE ("with system bus connection");
181 TEST_ALLOC_FAIL {182 TEST_ALLOC_FAIL {
182 system_bus = TRUE;183 use_dbus = TRUE;
184 dbus_bus_type = DBUS_BUS_SYSTEM;
183 dest_name = NULL;185 dest_name = NULL;
184 dest_address = DBUS_ADDRESS_UPSTART;186 dest_address = DBUS_ADDRESS_UPSTART;
185187
@@ -240,7 +242,8 @@
240 */242 */
241 TEST_FEATURE ("with system bus connection and different name");243 TEST_FEATURE ("with system bus connection and different name");
242 TEST_ALLOC_FAIL {244 TEST_ALLOC_FAIL {
243 system_bus = TRUE;245 use_dbus = TRUE;
246 dbus_bus_type = DBUS_BUS_SYSTEM;
244 dest_name = "com.ubuntu.UpstartTest";247 dest_name = "com.ubuntu.UpstartTest";
245 dest_address = DBUS_ADDRESS_UPSTART;248 dest_address = DBUS_ADDRESS_UPSTART;
246249
@@ -302,7 +305,7 @@
302 */305 */
303 TEST_FEATURE ("with non-listening private connection");306 TEST_FEATURE ("with non-listening private connection");
304 TEST_ALLOC_FAIL {307 TEST_ALLOC_FAIL {
305 system_bus = FALSE;308 use_dbus = FALSE;
306 dest_name = NULL;309 dest_name = NULL;
307 dest_address = "unix:abstract=/com/ubuntu/upstart/test";310 dest_address = "unix:abstract=/com/ubuntu/upstart/test";
308311
@@ -328,7 +331,8 @@
328 */331 */
329 TEST_FEATURE ("with non-listening system bus");332 TEST_FEATURE ("with non-listening system bus");
330 TEST_ALLOC_FAIL {333 TEST_ALLOC_FAIL {
331 system_bus = TRUE;334 use_dbus = TRUE;
335 dbus_bus_type = DBUS_BUS_SYSTEM;
332 dest_name = NULL;336 dest_name = NULL;
333 dest_address = DBUS_ADDRESS_UPSTART;337 dest_address = DBUS_ADDRESS_UPSTART;
334338
@@ -360,7 +364,7 @@
360 */364 */
361 TEST_FEATURE ("with --dest but without --system");365 TEST_FEATURE ("with --dest but without --system");
362 TEST_ALLOC_FAIL {366 TEST_ALLOC_FAIL {
363 system_bus = FALSE;367 use_dbus = FALSE;
364 dest_name = "com.ubuntu.Upstart";368 dest_name = "com.ubuntu.Upstart";
365 dest_address = DBUS_ADDRESS_UPSTART;369 dest_address = DBUS_ADDRESS_UPSTART;
366370
@@ -3229,7 +3233,8 @@
3229 "NameAcquired"));3233 "NameAcquired"));
3230 dbus_message_unref (method_call);3234 dbus_message_unref (method_call);
32313235
3232 system_bus = TRUE;3236 use_dbus = TRUE;
3237 dbus_bus_type = DBUS_BUS_SYSTEM;
3233 dest_name = DBUS_SERVICE_UPSTART;3238 dest_name = DBUS_SERVICE_UPSTART;
3234 dest_address = DBUS_ADDRESS_UPSTART;3239 dest_address = DBUS_ADDRESS_UPSTART;
32353240
@@ -4999,7 +5004,8 @@
4999 "NameAcquired"));5004 "NameAcquired"));
5000 dbus_message_unref (method_call);5005 dbus_message_unref (method_call);
50015006
5002 system_bus = TRUE;5007 use_dbus = TRUE;
5008 dbus_bus_type = DBUS_BUS_SYSTEM;
5003 dest_name = DBUS_SERVICE_UPSTART;5009 dest_name = DBUS_SERVICE_UPSTART;
5004 dest_address = DBUS_ADDRESS_UPSTART;5010 dest_address = DBUS_ADDRESS_UPSTART;
50055011
@@ -6584,7 +6590,8 @@
6584 "NameAcquired"));6590 "NameAcquired"));
6585 dbus_message_unref (method_call);6591 dbus_message_unref (method_call);
65866592
6587 system_bus = TRUE;6593 use_dbus = TRUE;
6594 dbus_bus_type = DBUS_BUS_SYSTEM;
6588 dest_name = DBUS_SERVICE_UPSTART;6595 dest_name = DBUS_SERVICE_UPSTART;
6589 dest_address = DBUS_ADDRESS_UPSTART;6596 dest_address = DBUS_ADDRESS_UPSTART;
65906597
@@ -8357,7 +8364,8 @@
8357 "NameAcquired"));8364 "NameAcquired"));
8358 dbus_message_unref (method_call);8365 dbus_message_unref (method_call);
83598366
8360 system_bus = TRUE;8367 use_dbus = TRUE;
8368 dbus_bus_type = DBUS_BUS_SYSTEM;
8361 dest_name = DBUS_SERVICE_UPSTART;8369 dest_name = DBUS_SERVICE_UPSTART;
8362 dest_address = DBUS_ADDRESS_UPSTART;8370 dest_address = DBUS_ADDRESS_UPSTART;
83638371
@@ -9239,7 +9247,8 @@
9239 "NameAcquired"));9247 "NameAcquired"));
9240 dbus_message_unref (method_call);9248 dbus_message_unref (method_call);
92419249
9242 system_bus = TRUE;9250 use_dbus = TRUE;
9251 dbus_bus_type = DBUS_BUS_SYSTEM;
9243 dest_name = DBUS_SERVICE_UPSTART;9252 dest_name = DBUS_SERVICE_UPSTART;
9244 dest_address = DBUS_ADDRESS_UPSTART;9253 dest_address = DBUS_ADDRESS_UPSTART;
92459254
@@ -10769,7 +10778,7 @@
10769 "NameAcquired"));10778 "NameAcquired"));
10770 dbus_message_unref (method_call);10779 dbus_message_unref (method_call);
1077110780
10772 system_bus = TRUE;10781 dbus_bus_type = DBUS_BUS_SYSTEM;
10773 dest_name = DBUS_SERVICE_UPSTART;10782 dest_name = DBUS_SERVICE_UPSTART;
10774 dest_address = DBUS_ADDRESS_UPSTART;10783 dest_address = DBUS_ADDRESS_UPSTART;
1077510784
@@ -12060,7 +12069,7 @@
12060 "NameAcquired"));12069 "NameAcquired"));
12061 dbus_message_unref (method_call);12070 dbus_message_unref (method_call);
1206212071
12063 system_bus = TRUE;12072 dbus_bus_type = DBUS_BUS_SYSTEM;
12064 dest_name = DBUS_SERVICE_UPSTART;12073 dest_name = DBUS_SERVICE_UPSTART;
12065 dest_address = DBUS_ADDRESS_UPSTART;12074 dest_address = DBUS_ADDRESS_UPSTART;
1206612075
@@ -12494,7 +12503,7 @@
12494 "NameAcquired"));12503 "NameAcquired"));
12495 dbus_message_unref (method_call);12504 dbus_message_unref (method_call);
1249612505
12497 system_bus = TRUE;12506 dbus_bus_type = DBUS_BUS_SYSTEM;
12498 dest_name = DBUS_SERVICE_UPSTART;12507 dest_name = DBUS_SERVICE_UPSTART;
12499 dest_address = DBUS_ADDRESS_UPSTART;12508 dest_address = DBUS_ADDRESS_UPSTART;
1250012509
@@ -12684,7 +12693,7 @@
12684 "NameAcquired"));12693 "NameAcquired"));
12685 dbus_message_unref (method_call);12694 dbus_message_unref (method_call);
1268612695
12687 system_bus = TRUE;12696 dbus_bus_type = DBUS_BUS_SYSTEM;
12688 dest_name = DBUS_SERVICE_UPSTART;12697 dest_name = DBUS_SERVICE_UPSTART;
12689 dest_address = DBUS_ADDRESS_UPSTART;12698 dest_address = DBUS_ADDRESS_UPSTART;
1269012699
@@ -12904,7 +12913,7 @@
12904 "NameAcquired"));12913 "NameAcquired"));
12905 dbus_message_unref (method_call);12914 dbus_message_unref (method_call);
1290612915
12907 system_bus = TRUE;12916 dbus_bus_type = DBUS_BUS_SYSTEM;
12908 dest_name = DBUS_SERVICE_UPSTART;12917 dest_name = DBUS_SERVICE_UPSTART;
12909 dest_address = DBUS_ADDRESS_UPSTART;12918 dest_address = DBUS_ADDRESS_UPSTART;
1291012919

Subscribers

People subscribed via source and target branches