Merge lp:~ubuntu-multiseat/lightdm/multiseat-logging into lp:lightdm

Proposed by Richard Hansen
Status: Superseded
Proposed branch: lp:~ubuntu-multiseat/lightdm/multiseat-logging
Merge into: lp:lightdm
Prerequisite: lp:~ubuntu-multiseat/lightdm/seatunity-call-parent
Diff against target: 1739 lines (+409/-167)
17 files modified
src/Makefile.am (+2/-0)
src/display-server.c (+22/-1)
src/display-server.h (+1/-0)
src/greeter.c (+27/-27)
src/lightdm.c (+7/-1)
src/logger.c (+81/-0)
src/logger.h (+60/-0)
src/seat-unity.c (+37/-25)
src/seat-xlocal.c (+13/-7)
src/seat-xremote.c (+10/-4)
src/seat.c (+82/-61)
src/seat.h (+1/-0)
src/session.c (+38/-17)
src/session.h (+1/-0)
src/x-server-local.c (+11/-11)
src/x-server-xvnc.c (+11/-11)
src/x-server.c (+5/-2)
To merge this branch: bzr merge lp:~ubuntu-multiseat/lightdm/multiseat-logging
Reviewer Review Type Date Requested Status
PS Jenkins bot continuous-integration Needs Fixing
Robert Ancell Approve
Review via email: mp+180238@code.launchpad.net

This proposal supersedes a proposal from 2013-08-05.

This proposal has been superseded by a proposal from 2013-08-18.

Commit message

Extend logging to make it easier to troubleshoot multiseat setups

  * include seat name in Seat log messages
  * include display server name in DisplayServer log messages
  * include PID in Session log messages
  * log the values of the XDG_SEAT and XDG_VTNR PAM variables

Description of the change

Extend logging to make it easier to troubleshoot multiseat setups

  * include seat name in Seat log messages
  * include display server name in DisplayServer log messages
  * include PID in Session log messages
  * log the values of the XDG_SEAT and XDG_VTNR PAM variables

To post a comment you must log in.
Revision history for this message
Robert Ancell (robert-ancell) wrote : Posted in a previous version of this proposal

Nice work!

There seems to be no default value set for seats, i.e. if you do:
$ cd tests
$ DEBUG=1 ./test-autologin

you get logs like:

[+0.00s] DEBUG: Seat (null): Creating user session

If the ID is NULL, id expect to see:

[+0.00s] DEBUG: Seat: Creating user session

or at least a valid ID.

You don't need to break at 80 characters, I've fixed the whitespace in this branch:
lp:~robert-ancell/lightdm/multiseat-logging-whitespace
(I suggest you manually patch to keep the attribution to you for the changes).

Also, now the logging is better, we have some redundant text.

[+0.00s] DEBUG: Seat (null): Starting seat

should become

[+0.00s] DEBUG: Seat (null): Starting

Though I wont block this merge on this. We can fix this in a later MP if you like.

review: Needs Fixing
Revision history for this message
Richard Hansen (rhansen) wrote : Posted in a previous version of this proposal

> There seems to be no default value set for seats, i.e. if you do:
> $ cd tests
> $ DEBUG=1 ./test-autologin
>
> you get logs like:
>
> [+0.00s] DEBUG: Seat (null): Creating user session
>
> If the ID is NULL, id expect to see:
>
> [+0.00s] DEBUG: Seat: Creating user session
>
> or at least a valid ID.

OK, I'll see what I can do to improve it.

>
> You don't need to break at 80 characters

I really dislike lines longer than 80 characters, which is why I
usually wrap long lines when I change them. I'll unwrap, but I'll
feel like I'm violating my own principles. :)

See [1] for why don't I like lines longer than 80 characters.

[1] http://stackoverflow.com/a/111009/712605

>
> Also, now the logging is better, we have some redundant text.
>
> [+0.00s] DEBUG: Seat (null): Starting seat
>
> should become
>
> [+0.00s] DEBUG: Seat (null): Starting
>
> Though I wont block this merge on this. We can fix this in a later
> MP if you like.

I caught some of those (e.g., "starting session with PID=xxx"), but it
looks like I missed some. I'll do an audit.

Revision history for this message
Robert Ancell (robert-ancell) :
review: Approve
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
Richard Hansen (rhansen) wrote :

> FAIL: test-lock-seat-console-kit
[snip]
> Events:
> RUNNER DAEMON-START
> XSERVER-0 START VT=7
> *XSERVER-0 INDICATE-READY
[snip]
> *STOP-DAEMON
> XSERVER-0 TERMINATE SIGNAL=15
> SESSION-X-0 TERMINATE SIGNAL=15
> XSERVER-1 TERMINATE SIGNAL=15
> GREETER-X-1 TERMINATE SIGNAL=15
> RUNNER DAEMON-TERMINATE SIGNAL=9
> ^^^ expected "RUNNER DAEMON-EXIT STATUS=0"

I put this test in a tight infinite loop and let it run for a while on my raring system. I couldn't reproduce this failure. Oddly it looks like it's the test runner that killed lightdm; the process that was killed is the lightdm process itself.

Revision history for this message
Robert Ancell (robert-ancell) wrote :

The autolanding system seems to be broken. Someone is looking into it...

Unmerged revisions

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/Makefile.am'
2--- src/Makefile.am 2013-07-24 23:53:37 +0000
3+++ src/Makefile.am 2013-08-14 20:38:44 +0000
4@@ -18,6 +18,8 @@
5 guest-account.c \
6 guest-account.h \
7 lightdm.c \
8+ logger.c \
9+ logger.h \
10 login1.c \
11 login1.h \
12 mir-server.c \
13
14=== modified file 'src/display-server.c'
15--- src/display-server.c 2013-07-26 04:50:35 +0000
16+++ src/display-server.c 2013-08-14 20:38:44 +0000
17@@ -32,7 +32,11 @@
18 gboolean stopped;
19 };
20
21-G_DEFINE_TYPE (DisplayServer, display_server, G_TYPE_OBJECT);
22+static void display_server_logger_iface_init (LoggerInterface *iface);
23+
24+G_DEFINE_TYPE_WITH_CODE (DisplayServer, display_server, G_TYPE_OBJECT,
25+ G_IMPLEMENT_INTERFACE (
26+ LOGGER_TYPE, display_server_logger_iface_init));
27
28 void
29 display_server_set_name (DisplayServer *server, const gchar *name)
30@@ -176,3 +180,20 @@
31 NULL,
32 G_TYPE_NONE, 0);
33 }
34+
35+static gint
36+display_server_real_logprefix (Logger *self, gchar *buf, gulong buflen)
37+{
38+ DisplayServer *server = DISPLAY_SERVER (self);
39+ const gchar *name = display_server_get_name (server);
40+ if (name)
41+ return g_snprintf (buf, buflen, "DisplayServer %s: ", name);
42+ else
43+ return g_snprintf (buf, buflen, "DisplayServer: ");
44+}
45+
46+static void
47+display_server_logger_iface_init (LoggerInterface *iface)
48+{
49+ iface->logprefix = &display_server_real_logprefix;
50+}
51
52=== modified file 'src/display-server.h'
53--- src/display-server.h 2013-07-26 02:54:55 +0000
54+++ src/display-server.h 2013-08-14 20:38:44 +0000
55@@ -16,6 +16,7 @@
56
57 typedef struct DisplayServer DisplayServer;
58
59+#include "logger.h"
60 #include "session.h"
61
62 G_BEGIN_DECLS
63
64=== modified file 'src/greeter.c'
65--- src/greeter.c 2013-07-24 23:53:37 +0000
66+++ src/greeter.c 2013-08-14 20:38:44 +0000
67@@ -164,7 +164,7 @@
68
69 g_io_channel_write_chars (greeter->priv->to_greeter_channel, (gchar *) message, message_length, NULL, &error);
70 if (error)
71- g_warning ("Error writing to greeter: %s", error->message);
72+ l_warning (greeter, "Error writing to greeter: %s", error->message);
73 g_clear_error (&error);
74 g_io_channel_flush (greeter->priv->to_greeter_channel, NULL);
75 }
76@@ -225,7 +225,7 @@
77 GHashTableIter iter;
78 gpointer key, value;
79
80- g_debug ("Greeter connected version=%s", version);
81+ l_debug (greeter, "Greeter connected version=%s", version);
82
83 length = string_length (VERSION);
84 g_hash_table_iter_init (&iter, greeter->priv->hints);
85@@ -260,7 +260,7 @@
86 messages_length = session_get_messages_length (session);
87
88 /* Respond to d-bus query with messages */
89- g_debug ("Prompt greeter with %d message(s)", messages_length);
90+ l_debug (greeter, "Prompt greeter with %d message(s)", messages_length);
91 size = int_length () + string_length (session_get_username (session)) + int_length ();
92 for (i = 0; i < messages_length; i++)
93 size += int_length () + string_length (messages[i].msg);
94@@ -308,16 +308,16 @@
95 {
96 int result;
97
98- g_debug ("Authenticate result for user %s: %s", session_get_username (session), session_get_authentication_result_string (session));
99+ l_debug (greeter, "Authenticate result for user %s: %s", session_get_username (session), session_get_authentication_result_string (session));
100
101 result = session_get_authentication_result (session);
102 if (session_get_is_authenticated (session))
103 {
104 if (session_get_user (session))
105- g_debug ("User %s authorized", session_get_username (session));
106+ l_debug (greeter, "User %s authorized", session_get_username (session));
107 else
108 {
109- g_debug ("User %s authorized, but no account of that name exists", session_get_username (session));
110+ l_debug (greeter, "User %s authorized, but no account of that name exists", session_get_username (session));
111 result = PAM_USER_UNKNOWN;
112 }
113 }
114@@ -349,11 +349,11 @@
115
116 if (username[0] == '\0')
117 {
118- g_debug ("Greeter start authentication");
119+ l_debug (greeter, "Greeter start authentication");
120 username = NULL;
121 }
122 else
123- g_debug ("Greeter start authentication for %s", username);
124+ l_debug (greeter, "Greeter start authentication for %s", username);
125
126 reset_session (greeter);
127
128@@ -392,13 +392,13 @@
129 static void
130 handle_login_as_guest (Greeter *greeter, guint32 sequence_number)
131 {
132- g_debug ("Greeter start authentication for guest account");
133+ l_debug (greeter, "Greeter start authentication for guest account");
134
135 reset_session (greeter);
136
137 if (!greeter->priv->allow_guest)
138 {
139- g_debug ("Guest account is disabled");
140+ l_debug (greeter, "Guest account is disabled");
141 send_end_authentication (greeter, sequence_number, "", PAM_USER_UNKNOWN);
142 return;
143 }
144@@ -449,11 +449,11 @@
145
146 if (username[0] == '\0')
147 {
148- g_debug ("Greeter start authentication for remote session %s", session_name);
149+ l_debug (greeter, "Greeter start authentication for remote session %s", session_name);
150 username = NULL;
151 }
152 else
153- g_debug ("Greeter start authentication for remote session %s as user %s", session_name, username);
154+ l_debug (greeter, "Greeter start authentication for remote session %s as user %s", session_name, username);
155
156 reset_session (greeter);
157
158@@ -518,7 +518,7 @@
159 return;
160 }
161
162- g_debug ("Continue authentication");
163+ l_debug (greeter, "Continue authentication");
164
165 /* Build response */
166 response = calloc (messages_length, sizeof (struct pam_response));
167@@ -548,7 +548,7 @@
168 if (greeter->priv->authentication_session == NULL)
169 return;
170
171- g_debug ("Cancel authentication");
172+ l_debug (greeter, "Cancel authentication");
173 reset_session (greeter);
174 }
175
176@@ -573,15 +573,15 @@
177 if (greeter->priv->guest_account_authenticated || session_get_is_authenticated (greeter->priv->authentication_session))
178 {
179 if (session)
180- g_debug ("Greeter requests session %s", session);
181+ l_debug (greeter, "Greeter requests session %s", session);
182 else
183- g_debug ("Greeter requests default session");
184+ l_debug (greeter, "Greeter requests default session");
185 greeter->priv->start_session = TRUE;
186 g_signal_emit (greeter, signals[START_SESSION], 0, session_type, session, &result);
187 }
188 else
189 {
190- g_debug ("Ignoring start session request, user is not authorized");
191+ l_debug (greeter, "Ignoring start session request, user is not authorized");
192 result = FALSE;
193 }
194
195@@ -597,18 +597,18 @@
196
197 if (!greeter->priv->guest_account_authenticated && !session_get_is_authenticated (greeter->priv->authentication_session))
198 {
199- g_debug ("Ignoring set language request, user is not authorized");
200+ l_debug (greeter, "Ignoring set language request, user is not authorized");
201 return;
202 }
203
204 // FIXME: Could use this
205 if (greeter->priv->guest_account_authenticated)
206 {
207- g_debug ("Ignoring set language request for guest user");
208+ l_debug (greeter, "Ignoring set language request for guest user");
209 return;
210 }
211
212- g_debug ("Greeter sets language %s", language);
213+ l_debug (greeter, "Greeter sets language %s", language);
214 user = session_get_user (greeter->priv->authentication_session);
215 user_set_language (user, language);
216 }
217@@ -620,7 +620,7 @@
218 guint8 *buffer;
219 if (greeter->priv->n_read - *offset < sizeof (guint32))
220 {
221- g_warning ("Not enough space for int, need %zu, got %zu", sizeof (guint32), greeter->priv->n_read - *offset);
222+ l_warning (greeter, "Not enough space for int, need %zu, got %zu", sizeof (guint32), greeter->priv->n_read - *offset);
223 return 0;
224 }
225 buffer = greeter->priv->read_buffer + *offset;
226@@ -640,7 +640,7 @@
227
228 if (HEADER_SIZE + payload_length < HEADER_SIZE)
229 {
230- g_warning ("Payload length of %u octets too long", payload_length);
231+ l_warning (greeter, "Payload length of %u octets too long", payload_length);
232 return HEADER_SIZE;
233 }
234
235@@ -656,7 +656,7 @@
236 length = read_int (greeter, offset);
237 if (greeter->priv->n_read - *offset < length)
238 {
239- g_warning ("Not enough space for string, need %u, got %zu", length, greeter->priv->n_read - *offset);
240+ l_warning (greeter, "Not enough space for string, need %u, got %zu", length, greeter->priv->n_read - *offset);
241 return g_strdup ("");
242 }
243
244@@ -697,7 +697,7 @@
245
246 if (condition == G_IO_HUP)
247 {
248- g_debug ("Greeter closed communication channel");
249+ l_debug (greeter, "Greeter closed communication channel");
250 return FALSE;
251 }
252
253@@ -715,7 +715,7 @@
254 &n_read,
255 &error);
256 if (error)
257- g_warning ("Error reading from greeter: %s", error->message);
258+ l_warning (greeter, "Error reading from greeter: %s", error->message);
259 g_clear_error (&error);
260 if (status != G_IO_STATUS_NORMAL)
261 return TRUE;
262@@ -767,7 +767,7 @@
263 max_secrets = (G_MAXUINT32 - 1) / sizeof (gchar *);
264 if (n_secrets > max_secrets)
265 {
266- g_warning ("Array length of %u elements too long", n_secrets);
267+ l_warning (greeter, "Array length of %u elements too long", n_secrets);
268 return FALSE;
269 }
270 secrets = g_malloc (sizeof (gchar *) * (n_secrets + 1));
271@@ -793,7 +793,7 @@
272 g_free (language);
273 break;
274 default:
275- g_warning ("Unknown message from greeter: %d", id);
276+ l_warning (greeter, "Unknown message from greeter: %d", id);
277 break;
278 }
279
280
281=== modified file 'src/lightdm.c'
282--- src/lightdm.c 2013-07-24 03:02:30 +0000
283+++ src/lightdm.c 2013-08-14 20:38:44 +0000
284@@ -1168,8 +1168,9 @@
285 gchar *config_section = *i;
286 gchar *type;
287 Seat *seat;
288+ const gchar *const seatpfx = "Seat:";
289
290- if (!g_str_has_prefix (config_section, "Seat:"))
291+ if (!g_str_has_prefix (config_section, seatpfx))
292 continue;
293
294 g_debug ("Loading seat %s", config_section);
295@@ -1180,6 +1181,11 @@
296 g_free (type);
297 if (seat)
298 {
299+ const gsize seatpfxlen = strlen(seatpfx);
300+ gchar *seatname = config_section + seatpfxlen;
301+
302+ seat_set_property (seat, "seat-name", seatname);
303+
304 set_seat_properties (seat, config_section);
305 display_manager_add_seat (display_manager, seat);
306 g_object_unref (seat);
307
308=== added file 'src/logger.c'
309--- src/logger.c 1970-01-01 00:00:00 +0000
310+++ src/logger.c 2013-08-14 20:38:44 +0000
311@@ -0,0 +1,81 @@
312+#include "logger.h"
313+
314+G_DEFINE_INTERFACE (Logger, logger, G_TYPE_INVALID);
315+
316+static void
317+logger_logv_default (Logger *self, GLogLevelFlags log_level, const gchar *format, va_list ap);
318+
319+static void
320+logger_default_init (LoggerInterface *iface)
321+{
322+ iface->logv = &logger_logv_default;
323+}
324+
325+gint
326+logger_logprefix (Logger *self, gchar *buf, gulong buflen)
327+{
328+ g_return_val_if_fail (IS_LOGGER (self), -1);
329+ return LOGGER_GET_INTERFACE (self)->logprefix (self, buf, buflen);
330+}
331+
332+void
333+logger_logv (Logger *self, GLogLevelFlags log_level, const gchar *format, va_list ap)
334+{
335+ g_return_if_fail (IS_LOGGER (self));
336+ LOGGER_GET_INTERFACE (self)->logv (self, log_level, format, ap);
337+}
338+
339+void
340+logger_logv_default (Logger *self, GLogLevelFlags log_level, const gchar *format, va_list ap)
341+{
342+ va_list ap_copy;
343+ gint tmp;
344+
345+ /* figure out how long the prefix is */
346+ tmp = logger_logprefix (self, NULL, 0);
347+ if (tmp < 0)
348+ {
349+ g_error ("failed to get log prefix");
350+ return;
351+ }
352+
353+ /* print the prefix to a variable length array (to avoid malloc) */
354+ gchar pfx[tmp + 1];
355+ tmp = logger_logprefix (self, pfx, sizeof(pfx));
356+ if (tmp < 0)
357+ {
358+ g_error ("failed to get log prefix");
359+ return;
360+ }
361+
362+ /* figure out how long the formatted message is */
363+ va_copy (ap_copy, ap);
364+ tmp = g_vsnprintf (NULL, 0, format, ap_copy);
365+ va_end (ap_copy);
366+ if (tmp < 0)
367+ {
368+ g_error ("failed to format log message");
369+ return;
370+ }
371+
372+ /* print the message to a variable length array (to avoid malloc) */
373+ gchar msg[tmp+1];
374+ tmp = g_vsnprintf (msg, sizeof(msg), format, ap);
375+ if (tmp < 0)
376+ {
377+ g_error ("failed to format log message");
378+ return;
379+ }
380+
381+ /* log the message with the prefix */
382+ g_log (G_LOG_DOMAIN, log_level, "%s%s", pfx, msg);
383+}
384+
385+void
386+logger_log (Logger *self, GLogLevelFlags log_level, const gchar *format, ...)
387+{
388+ va_list ap;
389+ va_start (ap, format);
390+ logger_logv (self, log_level, format, ap);
391+ va_end (ap);
392+}
393
394=== added file 'src/logger.h'
395--- src/logger.h 1970-01-01 00:00:00 +0000
396+++ src/logger.h 2013-08-14 20:38:44 +0000
397@@ -0,0 +1,60 @@
398+#ifndef LOGGER_H_
399+#define LOGGER_H_
400+
401+#include <glib-object.h>
402+
403+#ifdef __cplusplus
404+#include <cstdarg> /* for va_list */
405+#else
406+#include <stdarg.h> /* for va_list */
407+#endif
408+
409+G_BEGIN_DECLS
410+
411+#define LOGGER_TYPE (logger_get_type ())
412+#define LOGGER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), LOGGER_TYPE, Logger))
413+#define IS_LOGGER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LOGGER_TYPE))
414+#define LOGGER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), LOGGER_TYPE, LoggerInterface))
415+
416+typedef struct Logger Logger;
417+
418+typedef struct {
419+ GTypeInterface parent;
420+
421+ gint (*logprefix) (Logger *self, gchar *buf, gulong buflen);
422+ void (*logv) (Logger *self, GLogLevelFlags log_level, const gchar *format, va_list ap);
423+} LoggerInterface;
424+
425+GType logger_get_type (void);
426+
427+/*!
428+ * \brief instruct \c self to generate a log message prefix
429+ *
430+ * the semantics of the \c buf and \c buflen arguments and the return
431+ * value are the same as g_snprintf()
432+ *
433+ * there is no default implementation
434+ */
435+gint logger_logprefix (Logger *self, gchar *buf, gulong buflen);
436+
437+/*!
438+ * \brief instruct \c self to log the given message
439+ *
440+ * the default implementation prefixes the log message with the
441+ * output of logger_logprefix() and then passes the result to
442+ * g_log()
443+ */
444+void logger_logv (Logger *self, GLogLevelFlags log_level, const gchar *format, va_list ap);
445+
446+/*! \brief convenience wrapper around \c logger_logv() */
447+void logger_log (Logger *self, GLogLevelFlags log_level, const gchar *format, ...);
448+
449+/* convenience wrappers around logger_log() */
450+#define l_debug(self, ...) \
451+ logger_log (LOGGER (self), G_LOG_LEVEL_DEBUG, __VA_ARGS__)
452+#define l_warning(self, ...) \
453+ logger_log (LOGGER (self), G_LOG_LEVEL_WARNING, __VA_ARGS__)
454+
455+G_END_DECLS
456+
457+#endif /* !LOGGER_H_ */
458
459=== modified file 'src/seat-unity.c'
460--- src/seat-unity.c 2013-08-14 20:38:44 +0000
461+++ src/seat-unity.c 2013-08-14 20:38:44 +0000
462@@ -108,13 +108,13 @@
463 /* If stopped before it was ready, then revert to VT mode */
464 if (!seat->priv->compositor_ready)
465 {
466- g_debug ("Compositor failed to start, switching to VT mode");
467+ l_debug (seat, "Compositor failed to start, switching to VT mode");
468 seat->priv->use_vt_switching = TRUE;
469 SEAT_CLASS (seat_unity_parent_class)->start (SEAT (seat));
470 return;
471 }
472
473- g_debug ("Stopping Unity seat, compositor terminated");
474+ l_debug (seat, "Stopping Unity seat, compositor terminated");
475
476 seat_stop (SEAT (seat));
477 }
478@@ -136,7 +136,7 @@
479
480 fd = g_open (seat->priv->log_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
481 if (fd < 0)
482- g_warning ("Failed to open log file %s: %s", seat->priv->log_file, g_strerror (errno));
483+ l_warning (seat, "Failed to open log file %s: %s", seat->priv->log_file, g_strerror (errno));
484 else
485 {
486 dup2 (fd, STDOUT_FILENO);
487@@ -161,7 +161,7 @@
488
489 errno = 0;
490 if (write (seat->priv->to_compositor_pipe[1], data, data_length) != data_length)
491- g_warning ("Failed to write to compositor: %s", strerror (errno));
492+ l_warning (seat, "Failed to write to compositor: %s", strerror (errno));
493 }
494
495 static gboolean
496@@ -174,7 +174,7 @@
497
498 if (condition == G_IO_HUP)
499 {
500- g_debug ("Compositor closed communication channel");
501+ l_debug (seat, "Compositor closed communication channel");
502 return FALSE;
503 }
504
505@@ -204,7 +204,7 @@
506 &n_read,
507 &error);
508 if (error)
509- g_warning ("Failed to read from compositor: %s", error->message);
510+ l_warning (seat, "Failed to read from compositor: %s", error->message);
511 if (status != G_IO_STATUS_NORMAL)
512 return TRUE;
513 g_clear_error (&error);
514@@ -225,28 +225,28 @@
515 switch (id)
516 {
517 case USC_MESSAGE_PING:
518- g_debug ("PING!");
519+ l_debug (seat, "PING!");
520 write_message (seat, USC_MESSAGE_PONG, NULL, 0);
521 break;
522 case USC_MESSAGE_PONG:
523- g_debug ("PONG!");
524+ l_debug (seat, "PONG!");
525 break;
526 case USC_MESSAGE_READY:
527- g_debug ("READY");
528+ l_debug (seat, "READY");
529 if (!seat->priv->compositor_ready)
530 {
531 seat->priv->compositor_ready = TRUE;
532- g_debug ("Compositor ready");
533+ l_debug (seat, "Compositor ready");
534 g_source_remove (seat->priv->compositor_timeout);
535 seat->priv->compositor_timeout = 0;
536 SEAT_CLASS (seat_unity_parent_class)->start (SEAT (seat));
537 }
538 break;
539 case USC_MESSAGE_SESSION_CONNECTED:
540- g_debug ("SESSION CONNECTED");
541+ l_debug (seat, "SESSION CONNECTED");
542 break;
543 default:
544- g_warning ("Ingoring unknown message %d with %d octets from system compositor", id, payload_length);
545+ l_warning (seat, "Ignoring unknown message %d with %d octets from system compositor", id, payload_length);
546 break;
547 }
548
549@@ -310,7 +310,7 @@
550 plymouth_quit (TRUE);
551 }
552 else
553- g_debug ("Plymouth is running on VT %d, but this is less than the configured minimum of %d so not replacing it", active_vt, vt_get_min ());
554+ l_debug (seat, "Plymouth is running on VT %d, but this is less than the configured minimum of %d so not replacing it", active_vt, vt_get_min ());
555 }
556 if (plymouth_get_is_active ())
557 plymouth_quit (FALSE);
558@@ -318,7 +318,7 @@
559 SEAT_UNITY (seat)->priv->vt = vt_get_unused ();
560 if (SEAT_UNITY (seat)->priv->vt < 0)
561 {
562- g_debug ("Failed to get a VT to run on");
563+ l_debug (seat, "Failed to get a VT to run on");
564 return FALSE;
565 }
566 vt_ref (SEAT_UNITY (seat)->priv->vt);
567@@ -326,7 +326,7 @@
568 /* Create pipes to talk to compositor */
569 if (pipe (SEAT_UNITY (seat)->priv->to_compositor_pipe) < 0 || pipe (SEAT_UNITY (seat)->priv->from_compositor_pipe) < 0)
570 {
571- g_debug ("Failed to create compositor pipes: %s", g_strerror (errno));
572+ l_debug (seat, "Failed to create compositor pipes: %s", g_strerror (errno));
573 return FALSE;
574 }
575
576@@ -341,7 +341,7 @@
577 /* Setup logging */
578 dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
579 SEAT_UNITY (seat)->priv->log_file = g_build_filename (dir, "unity-system-compositor.log", NULL);
580- g_debug ("Logging to %s", SEAT_UNITY (seat)->priv->log_file);
581+ l_debug (seat, "Logging to %s", SEAT_UNITY (seat)->priv->log_file);
582 g_free (dir);
583
584 SEAT_UNITY (seat)->priv->mir_socket_filename = g_strdup ("/tmp/mir_socket"); // FIXME: Use this socket by default as XMir is hardcoded to this
585@@ -372,7 +372,7 @@
586 timeout = seat_get_integer_property (seat, "unity-compositor-timeout");
587 if (timeout <= 0)
588 timeout = 60;
589- g_debug ("Waiting for system compositor for %ds", timeout);
590+ l_debug (seat, "Waiting for system compositor for %ds", timeout);
591 SEAT_UNITY (seat)->priv->compositor_timeout = g_timeout_add (timeout * 1000, compositor_timeout_cb, seat);
592
593 return TRUE;
594@@ -386,7 +386,7 @@
595 gboolean allow_tcp;
596 gint port = 0;
597
598- g_debug ("Starting X server on Unity compositor");
599+ l_debug (seat, "Starting X server on Unity compositor");
600
601 x_server = x_server_local_new ();
602
603@@ -441,7 +441,7 @@
604 keys = g_key_file_new ();
605 result = g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error);
606 if (error)
607- g_debug ("Error getting key %s", error->message);
608+ l_debug (seat, "Error getting key %s", error->message);
609 g_clear_error (&error);
610
611 if (result)
612@@ -451,7 +451,7 @@
613 if (g_key_file_has_key (keys, "keyring", key_name, NULL))
614 key = g_key_file_get_string (keys, "keyring", key_name, NULL);
615 else
616- g_debug ("Key %s not defined", key_name);
617+ l_debug (seat, "Key %s not defined", key_name);
618
619 if (key)
620 x_server_local_set_xdmcp_key (x_server, key);
621@@ -498,7 +498,7 @@
622 return create_mir_server (seat);
623 else
624 {
625- g_warning ("Can't create unsupported display server '%s'", session_type);
626+ l_warning (seat, "Can't create unsupported display server '%s'", session_type);
627 return NULL;
628 }
629 }
630@@ -507,15 +507,21 @@
631 seat_unity_create_greeter_session (Seat *seat)
632 {
633 Greeter *greeter_session;
634+ const gchar *xdg_seat;
635
636 greeter_session = SEAT_CLASS (seat_unity_parent_class)->create_greeter_session (seat);
637- session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
638+ xdg_seat = "seat0";
639+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
640+ session_set_env (SESSION (greeter_session), "XDG_SEAT", xdg_seat);
641 if (!SEAT_UNITY (seat)->priv->use_vt_switching)
642 {
643 gchar *value = g_strdup_printf ("%d", SEAT_UNITY (seat)->priv->vt);
644+ l_debug (seat, "Setting XDG_VTNR=%s", value);
645 session_set_env (SESSION (greeter_session), "XDG_VTNR", value);
646 g_free (value);
647 }
648+ else
649+ l_debug (seat, "Not setting XDG_VTNR");
650
651 return greeter_session;
652 }
653@@ -524,15 +530,21 @@
654 seat_unity_create_session (Seat *seat)
655 {
656 Session *session;
657+ const gchar *xdg_seat;
658
659 session = SEAT_CLASS (seat_unity_parent_class)->create_session (seat);
660- session_set_env (session, "XDG_SEAT", "seat0");
661+ xdg_seat = "seat0";
662+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
663+ session_set_env (session, "XDG_SEAT", xdg_seat);
664 if (!SEAT_UNITY (seat)->priv->use_vt_switching)
665 {
666 gchar *value = g_strdup_printf ("%d", SEAT_UNITY (seat)->priv->vt);
667+ l_debug (seat, "Setting XDG_VTNR=%s", value);
668 session_set_env (SESSION (session), "XDG_VTNR", value);
669 g_free (value);
670 }
671+ else
672+ l_debug (seat, "Not setting XDG_VTNR");
673
674 return session;
675 }
676@@ -571,11 +583,11 @@
677
678 if (id)
679 {
680- g_debug ("Switching to Mir session %s", id);
681+ l_debug (seat, "Switching to Mir session %s", id);
682 write_message (SEAT_UNITY (seat), USC_MESSAGE_SET_ACTIVE_SESSION, (const guint8 *) id, strlen (id));
683 }
684 else
685- g_warning ("Failed to work out session ID");
686+ l_warning (seat, "Failed to work out session ID");
687 }
688
689 SEAT_CLASS (seat_unity_parent_class)->set_active_session (seat, session);
690
691=== modified file 'src/seat-xlocal.c'
692--- src/seat-xlocal.c 2013-07-26 04:52:07 +0000
693+++ src/seat-xlocal.c 2013-08-14 20:38:44 +0000
694@@ -69,9 +69,9 @@
695 gint vt = -1, port = 0;
696
697 if (vt > 0)
698- g_debug ("Starting local X display on VT %d", vt);
699+ l_debug (seat, "Starting local X display on VT %d", vt);
700 else
701- g_debug ("Starting local X display");
702+ l_debug (seat, "Starting local X display");
703
704 x_server = x_server_local_new ();
705
706@@ -95,7 +95,7 @@
707 plymouth_deactivate ();
708 }
709 else
710- g_debug ("Plymouth is running on VT %d, but this is less than the configured minimum of %d so not replacing it", active_vt, vt_get_min ());
711+ l_debug (seat, "Plymouth is running on VT %d, but this is less than the configured minimum of %d so not replacing it", active_vt, vt_get_min ());
712 }
713 if (plymouth_get_is_active ())
714 plymouth_quit (FALSE);
715@@ -138,7 +138,7 @@
716 keys = g_key_file_new ();
717 result = g_key_file_load_from_file (keys, path, G_KEY_FILE_NONE, &error);
718 if (error)
719- g_debug ("Error getting key %s", error->message);
720+ l_debug (seat, "Error getting key %s", error->message);
721 g_clear_error (&error);
722
723 if (result)
724@@ -148,7 +148,7 @@
725 if (g_key_file_has_key (keys, "keyring", key_name, NULL))
726 key = g_key_file_get_string (keys, "keyring", key_name, NULL);
727 else
728- g_debug ("Key %s not defined", key_name);
729+ l_debug (seat, "Key %s not defined", key_name);
730
731 if (key)
732 x_server_local_set_xdmcp_key (x_server, key);
733@@ -166,9 +166,12 @@
734 seat_xlocal_create_greeter_session (Seat *seat)
735 {
736 Greeter *greeter_session;
737+ const gchar *xdg_seat;
738
739 greeter_session = SEAT_CLASS (seat_xlocal_parent_class)->create_greeter_session (seat);
740- session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
741+ xdg_seat = "seat0";
742+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
743+ session_set_env (SESSION (greeter_session), "XDG_SEAT", xdg_seat);
744
745 return greeter_session;
746 }
747@@ -177,9 +180,12 @@
748 seat_xlocal_create_session (Seat *seat)
749 {
750 Session *session;
751+ const gchar *xdg_seat;
752
753 session = SEAT_CLASS (seat_xlocal_parent_class)->create_session (seat);
754- session_set_env (SESSION (session), "XDG_SEAT", "seat0");
755+ xdg_seat = "seat0";
756+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
757+ session_set_env (SESSION (session), "XDG_SEAT", xdg_seat);
758
759 return session;
760 }
761
762=== modified file 'src/seat-xremote.c'
763--- src/seat-xremote.c 2013-07-24 23:53:37 +0000
764+++ src/seat-xremote.c 2013-08-14 20:38:44 +0000
765@@ -33,7 +33,7 @@
766
767 if (strcmp (session_type, "x") != 0)
768 {
769- g_warning ("X remote seat only supports X display servers, not '%s'", session_type);
770+ l_warning (seat, "X remote seat only supports X display servers, not '%s'", session_type);
771 return NULL;
772 }
773
774@@ -42,7 +42,7 @@
775 hostname = "localhost";
776 number = seat_get_integer_property (seat, "xserver-display-number");
777
778- g_debug ("Starting remote X display %s:%d", hostname, number);
779+ l_debug (seat, "Starting remote X display %s:%d", hostname, number);
780
781 x_server = x_server_remote_new (hostname, number, NULL);
782
783@@ -53,9 +53,12 @@
784 seat_xremote_create_greeter_session (Seat *seat)
785 {
786 Greeter *greeter_session;
787+ const gchar *xdg_seat;
788
789 greeter_session = SEAT_CLASS (seat_xremote_parent_class)->create_greeter_session (seat);
790- session_set_env (SESSION (greeter_session), "XDG_SEAT", "seat0");
791+ xdg_seat = "seat0";
792+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
793+ session_set_env (SESSION (greeter_session), "XDG_SEAT", xdg_seat);
794
795 return greeter_session;
796 }
797@@ -64,9 +67,12 @@
798 seat_xremote_create_session (Seat *seat)
799 {
800 Session *session;
801+ const gchar *xdg_seat;
802
803 session = SEAT_CLASS (seat_xremote_parent_class)->create_session (seat);
804- session_set_env (SESSION (session), "XDG_SEAT", "seat0");
805+ xdg_seat = "seat0";
806+ l_debug (seat, "Setting XDG_SEAT=%s", xdg_seat);
807+ session_set_env (SESSION (session), "XDG_SEAT", xdg_seat);
808
809 return session;
810 }
811
812=== modified file 'src/seat.c'
813--- src/seat.c 2013-08-08 10:10:19 +0000
814+++ src/seat.c 2013-08-14 20:38:44 +0000
815@@ -66,7 +66,11 @@
816 #define USER_SERVICE "lightdm"
817 #define AUTOLOGIN_SERVICE "lightdm-autologin"
818
819-G_DEFINE_TYPE (Seat, seat, G_TYPE_OBJECT);
820+static void seat_logger_iface_init (LoggerInterface *iface);
821+
822+G_DEFINE_TYPE_WITH_CODE (Seat, seat, G_TYPE_OBJECT,
823+ G_IMPLEMENT_INTERFACE (
824+ LOGGER_TYPE, seat_logger_iface_init));
825
826 typedef struct
827 {
828@@ -198,7 +202,7 @@
829
830 if (IS_GREETER (s))
831 {
832- g_debug ("Stopping greeter");
833+ l_debug (seat, "Stopping greeter");
834 session_stop (s);
835 }
836 }
837@@ -277,7 +281,7 @@
838 exit_status = process_get_exit_status (script);
839 if (WIFEXITED (exit_status))
840 {
841- g_debug ("Exit status of %s: %d", script_name, WEXITSTATUS (exit_status));
842+ l_debug (seat, "Exit status of %s: %d", script_name, WEXITSTATUS (exit_status));
843 result = WEXITSTATUS (exit_status) == EXIT_SUCCESS;
844 }
845 }
846@@ -315,7 +319,7 @@
847 g_list_length (seat->priv->sessions) == 0)
848 {
849 seat->priv->stopped = TRUE;
850- g_debug ("Seat stopped");
851+ l_debug (seat, "Stopped");
852 g_signal_emit (seat, signals[STOPPED], 0);
853 }
854 }
855@@ -332,7 +336,7 @@
856 GList *list, *link;
857 Session *active_session;
858
859- g_debug ("Display server stopped");
860+ l_debug (seat, "Display server stopped");
861
862 g_signal_handlers_disconnect_matched (display_server, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat);
863 seat->priv->display_servers = g_list_remove (seat->priv->display_servers, display_server);
864@@ -360,11 +364,11 @@
865 !session_get_is_started (session) &&
866 g_list_length (seat->priv->display_servers) == 0)
867 {
868- g_debug ("Stopping seat, greeter display server failed to start");
869+ l_debug (seat, "Stopping; greeter display server failed to start");
870 seat_stop (seat);
871 }
872
873- g_debug ("Stopping session");
874+ l_debug (seat, "Stopping session");
875 session_stop (session);
876 }
877 g_list_free_full (list, g_object_unref);
878@@ -375,7 +379,7 @@
879 active_session = seat_get_active_session (seat);
880 if (!active_session || session_get_display_server (active_session) == display_server)
881 {
882- g_debug ("Active display server stopped, starting greeter");
883+ l_debug (seat, "Active display server stopped, starting greeter");
884 seat_switch_to_greeter (seat);
885 }
886 }
887@@ -412,7 +416,7 @@
888 display_server = create_display_server (seat, session_get_session_type (session));
889 if (!display_server_start (display_server))
890 {
891- g_debug ("Failed to start display server for greeter");
892+ l_debug (seat, "Failed to start display server for greeter");
893 seat_stop (seat);
894 }
895
896@@ -447,12 +451,12 @@
897
898 if (IS_GREETER (session))
899 {
900- g_debug ("Failed to start greeter");
901+ l_debug (seat, "Failed to start greeter");
902 display_server_stop (session_get_display_server (session));
903 return;
904 }
905
906- g_debug ("Failed to start session, starting greeter");
907+ l_debug (seat, "Failed to start session, starting greeter");
908 switch_to_greeter_from_failed_session (seat, session);
909 }
910
911@@ -467,7 +471,7 @@
912 script = seat_get_string_property (seat, "session-setup-script");
913 if (script && !run_script (seat, session_get_display_server (session), script, NULL))
914 {
915- g_debug ("Switching to greeter due to failed setup script");
916+ l_debug (seat, "Switching to greeter due to failed setup script");
917 switch_to_greeter_from_failed_session (seat, session);
918 return;
919 }
920@@ -495,17 +499,17 @@
921 {
922 if (session_get_is_authenticated (session))
923 {
924- g_debug ("Session authenticated, running command");
925+ l_debug (seat, "Session authenticated, running command");
926 run_session (seat, session);
927 }
928 else if (!IS_GREETER (session))
929 {
930- g_debug ("Switching to greeter due to failed authentication");
931+ l_debug (seat, "Switching to greeter due to failed authentication");
932 switch_to_greeter_from_failed_session (seat, session);
933 }
934 else
935 {
936- g_debug ("Stopping session that failed authentication");
937+ l_debug (seat, "Stopping session that failed authentication");
938 session_stop (session);
939 }
940 }
941@@ -515,7 +519,7 @@
942 {
943 DisplayServer *display_server;
944
945- g_debug ("Session stopped");
946+ l_debug (seat, "Session stopped");
947
948 g_signal_handlers_disconnect_matched (session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, seat);
949 seat->priv->sessions = g_list_remove (seat->priv->sessions, session);
950@@ -578,12 +582,12 @@
951
952 if (session_get_is_authenticated (s))
953 {
954- g_debug ("Greeter stopped, running session");
955+ l_debug (seat, "Greeter stopped, running session");
956 run_session (seat, s);
957 }
958 else
959 {
960- g_debug ("Greeter stopped, starting session authentication");
961+ l_debug (seat, "Greeter stopped, starting session authentication");
962 start_session (seat, s);
963 }
964 break;
965@@ -595,13 +599,13 @@
966 g_list_length (seat->priv->display_servers) == 1 &&
967 g_list_nth_data (seat->priv->display_servers, 0) == display_server)
968 {
969- g_debug ("Stopping seat, failed to start a greeter");
970+ l_debug (seat, "Stopping; failed to start a greeter");
971 seat_stop (seat);
972 }
973 /* If we were the active session, switch to a greeter */
974 else if (!IS_GREETER (session) && session == seat_get_active_session (seat))
975 {
976- g_debug ("Active session stopped, starting greeter");
977+ l_debug (seat, "Active session stopped, starting greeter");
978 seat_switch_to_greeter (seat);
979 }
980
981@@ -621,7 +625,7 @@
982 }
983 if (n_sessions == 0)
984 {
985- g_debug ("Stopping display server, no sessions require it");
986+ l_debug (seat, "Stopping display server, no sessions require it");
987 display_server_stop (display_server);
988 }
989 }
990@@ -678,7 +682,7 @@
991 }
992
993 static gchar **
994-get_session_argv (SessionConfig *session_config, const gchar *session_wrapper)
995+get_session_argv (Seat *seat, SessionConfig *session_config, const gchar *session_wrapper)
996 {
997 gboolean result;
998 int argc;
999@@ -699,7 +703,7 @@
1000 /* Split command into an array listing and make command absolute */
1001 result = g_shell_parse_argv (session_config_get_command (session_config), &argc, &argv, &error);
1002 if (error)
1003- g_debug ("Invalid session command '%s': %s", session_config_get_command (session_config), error->message);
1004+ l_debug (seat, "Invalid session command '%s': %s", session_config_get_command (session_config), error->message);
1005 g_clear_error (&error);
1006 if (!result)
1007 return NULL;
1008@@ -714,7 +718,7 @@
1009 }
1010
1011 static SessionConfig *
1012-find_session_config (const gchar *sessions_dir, const gchar *session_name)
1013+find_session_config (Seat *seat, const gchar *sessions_dir, const gchar *session_name)
1014 {
1015 gchar **dirs;
1016 SessionConfig *session_config = NULL;
1017@@ -738,7 +742,7 @@
1018 break;
1019
1020 if (dirs[i+1] == NULL)
1021- g_debug ("Failed to find session configuration %s", session_name);
1022+ l_debug (seat, "Failed to find session configuration %s", session_name);
1023 g_clear_error (&error);
1024 }
1025 g_strfreev (dirs);
1026@@ -755,13 +759,13 @@
1027 SessionConfig *session_config;
1028 Session *session = NULL;
1029
1030- g_debug ("Creating user session");
1031+ l_debug (seat, "Creating user session");
1032
1033 /* Load user preferences */
1034 user = accounts_get_user_by_name (username);
1035 if (!user)
1036 {
1037- g_debug ("Can't login unknown user '%s'", username);
1038+ l_debug (seat, "Can't login unknown user '%s'", username);
1039 return NULL;
1040 }
1041 session_name = user_get_xsession (user);
1042@@ -770,7 +774,7 @@
1043 if (!session_name)
1044 session_name = seat_get_string_property (seat, "user-session");
1045 sessions_dir = config_get_string (config_get_instance (), "LightDM", "sessions-directory");
1046- session_config = find_session_config (sessions_dir, session_name);
1047+ session_config = find_session_config (seat, sessions_dir, session_name);
1048 g_free (sessions_dir);
1049 if (session_config)
1050 {
1051@@ -788,14 +792,14 @@
1052 session_set_pam_service (session, AUTOLOGIN_SERVICE);
1053 session_set_username (session, username);
1054 session_set_do_authenticate (session, TRUE);
1055- argv = get_session_argv (session_config, seat_get_string_property (seat, "session-wrapper"));
1056+ argv = get_session_argv (seat, session_config, seat_get_string_property (seat, "session-wrapper"));
1057 session_set_argv (session, argv);
1058 g_strfreev (argv);
1059
1060 g_object_unref (session_config);
1061 }
1062 else
1063- g_debug ("Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1064+ l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1065
1066
1067 g_object_unref (user);
1068@@ -811,11 +815,11 @@
1069 Session *session;
1070
1071 sessions_dir = config_get_string (config_get_instance (), "LightDM", "sessions-directory");
1072- session_config = find_session_config (sessions_dir, seat_get_string_property (seat, "user-session"));
1073+ session_config = find_session_config (seat, sessions_dir, seat_get_string_property (seat, "user-session"));
1074 g_free (sessions_dir);
1075 if (!session_config)
1076 {
1077- g_debug ("Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1078+ l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1079 return NULL;
1080 }
1081
1082@@ -823,7 +827,7 @@
1083 session_set_session_type (session, session_config_get_session_type (session_config));
1084 session_set_do_authenticate (session, TRUE);
1085 session_set_is_guest (session, TRUE);
1086- argv = get_session_argv (session_config, seat_get_string_property (seat, "session-wrapper"));
1087+ argv = get_session_argv (seat, session_config, seat_get_string_property (seat, "session-wrapper"));
1088 g_object_unref (session_config);
1089 session_set_argv (session, argv);
1090 g_strfreev (argv);
1091@@ -911,7 +915,7 @@
1092 existing_session = find_user_session (seat, username);
1093 if (existing_session && session != existing_session)
1094 {
1095- g_debug ("Returning to existing user session %s", username);
1096+ l_debug (seat, "Returning to existing user session %s", username);
1097 session_stop (session);
1098 seat_set_active_session (seat, existing_session);
1099 return TRUE;
1100@@ -942,16 +946,16 @@
1101 if (user)
1102 user_set_xsession (session_get_user (session), session_name);
1103
1104- session_config = find_session_config (sessions_dir, session_name);
1105+ session_config = find_session_config (seat, sessions_dir, session_name);
1106 g_free (sessions_dir);
1107 if (!session_config)
1108 {
1109- g_debug ("Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1110+ l_debug (seat, "Can't find session '%s'", seat_get_string_property (seat, "user-session"));
1111 return FALSE;
1112 }
1113
1114 session_set_session_type (session, session_config_get_session_type (session_config));
1115- argv = get_session_argv (session_config, seat_get_string_property (seat, "session-wrapper"));
1116+ argv = get_session_argv (seat, session_config, seat_get_string_property (seat, "session-wrapper"));
1117 session_set_argv (session, argv);
1118 g_strfreev (argv);
1119 session_set_env (session, "DESKTOP_SESSION", session_name);
1120@@ -969,7 +973,7 @@
1121 if (can_share_display_server (seat, display_server) &&
1122 strcmp (display_server_get_session_type (display_server), session_get_session_type (session)) == 0)
1123 {
1124- g_debug ("Stopping greeter; display server will be re-used for user session");
1125+ l_debug (seat, "Stopping greeter; display server will be re-used for user session");
1126
1127 /* Run on the same display server after the greeter has stopped */
1128 session_set_display_server (session, display_server);
1129@@ -986,7 +990,7 @@
1130 session_set_display_server (session, display_server);
1131 if (!display_server_start (display_server))
1132 {
1133- g_debug ("Failed to start display server for new session");
1134+ l_debug (seat, "Failed to start display server for new session");
1135 return FALSE;
1136 }
1137
1138@@ -1003,15 +1007,15 @@
1139 gchar *greeter_user;
1140 const gchar *greeter_wrapper;
1141
1142- g_debug ("Creating greeter session");
1143+ l_debug (seat, "Creating greeter session");
1144
1145 sessions_dir = config_get_string (config_get_instance (), "LightDM", "greeters-directory");
1146- session_config = find_session_config (sessions_dir, seat_get_string_property (seat, "greeter-session"));
1147+ session_config = find_session_config (seat, sessions_dir, seat_get_string_property (seat, "greeter-session"));
1148 g_free (sessions_dir);
1149 if (!session_config)
1150 return NULL;
1151
1152- argv = get_session_argv (session_config, NULL);
1153+ argv = get_session_argv (seat, session_config, NULL);
1154 greeter_wrapper = seat_get_string_property (seat, "greeter-wrapper");
1155 if (greeter_wrapper)
1156 {
1157@@ -1078,7 +1082,7 @@
1158 script = seat_get_string_property (seat, "display-setup-script");
1159 if (script && !run_script (seat, display_server, script, NULL))
1160 {
1161- g_debug ("Stopping display server due to failed setup script");
1162+ l_debug (seat, "Stopping display server due to failed setup script");
1163 display_server_stop (display_server);
1164 return;
1165 }
1166@@ -1095,18 +1099,18 @@
1167 {
1168 if (session_get_is_authenticated (session))
1169 {
1170- g_debug ("Display server ready, running session");
1171+ l_debug (seat, "Display server ready, running session");
1172 run_session (seat, session);
1173 }
1174 else
1175 {
1176- g_debug ("Display server ready, starting session authentication");
1177+ l_debug (seat, "Display server ready, starting session authentication");
1178 start_session (seat, session);
1179 }
1180 }
1181 else
1182 {
1183- g_debug ("Stopping not required display server");
1184+ l_debug (seat, "Stopping not required display server");
1185 display_server_stop (display_server);
1186 }
1187 }
1188@@ -1116,7 +1120,7 @@
1189 {
1190 DisplayServer *display_server;
1191
1192- g_debug ("Creating display server of type %s", session_type);
1193+ l_debug (seat, "Creating display server of type %s", session_type);
1194
1195 display_server = SEAT_GET_CLASS (seat)->create_display_server (seat, session_type);
1196 if (!display_server)
1197@@ -1159,7 +1163,7 @@
1198 greeter_session = find_greeter_session (seat);
1199 if (greeter_session)
1200 {
1201- g_debug ("Switching to existing greeter");
1202+ l_debug (seat, "Switching to existing greeter");
1203 seat_set_active_session (seat, SESSION (greeter_session));
1204 return TRUE;
1205 }
1206@@ -1189,12 +1193,12 @@
1207 if (!seat->priv->can_switch)
1208 return FALSE;
1209
1210- g_debug ("Switching to user %s", username);
1211+ l_debug (seat, "Switching to user %s", username);
1212
1213 session = find_user_session (seat, username);
1214 if (session)
1215 {
1216- g_debug ("Switching to existing user session %s", username);
1217+ l_debug (seat, "Switching to existing user session %s", username);
1218 seat_set_active_session (seat, session);
1219 return TRUE;
1220 }
1221@@ -1245,7 +1249,7 @@
1222 session = find_guest_session (seat);
1223 if (session)
1224 {
1225- g_debug ("Switching to existing guest account %s", session_get_username (session));
1226+ l_debug (seat, "Switching to existing guest account %s", session_get_username (session));
1227 seat_set_active_session (seat, session);
1228 return TRUE;
1229 }
1230@@ -1278,13 +1282,13 @@
1231 if (!seat->priv->can_switch)
1232 return FALSE;
1233
1234- g_debug ("Locking seat");
1235+ l_debug (seat, "Locking");
1236
1237 /* Switch to greeter if one open (shouldn't be though) */
1238 greeter_session = find_greeter_session (seat);
1239 if (greeter_session)
1240 {
1241- g_debug ("Switching to existing greeter");
1242+ l_debug (seat, "Switching to existing greeter");
1243 seat_set_active_session (seat, SESSION (greeter_session));
1244 return TRUE;
1245 }
1246@@ -1316,7 +1320,7 @@
1247 if (seat->priv->stopping)
1248 return;
1249
1250- g_debug ("Stopping seat");
1251+ l_debug (seat, "Stopping");
1252 seat->priv->stopping = TRUE;
1253 SEAT_GET_CLASS (seat)->stop (seat);
1254 }
1255@@ -1348,7 +1352,7 @@
1256 gboolean autologin_in_background;
1257 Session *session = NULL, *background_session = NULL;
1258
1259- g_debug ("Starting seat");
1260+ l_debug (seat, "Starting");
1261
1262 /* If this display server doesn't have a session running on it, just start it */
1263 if (!get_start_local_sessions (seat))
1264@@ -1396,7 +1400,7 @@
1265 session_set_display_server (session, display_server);
1266 if (!display_server || !display_server_start (display_server))
1267 {
1268- g_debug ("Can't create display server for automatic login");
1269+ l_debug (seat, "Can't create display server for automatic login");
1270 session_stop (session);
1271 if (display_server)
1272 display_server_stop (display_server);
1273@@ -1414,7 +1418,7 @@
1274 greeter_session = create_greeter_session (seat);
1275 if (!greeter_session)
1276 {
1277- g_debug ("Failed to create greeter session");
1278+ l_debug (seat, "Failed to create greeter session");
1279 return FALSE;
1280 }
1281
1282@@ -1440,7 +1444,7 @@
1283 session_set_display_server (session, display_server);
1284 if (!display_server || !display_server_start (display_server))
1285 {
1286- g_debug ("Can't create display server for greeter");
1287+ l_debug (seat, "Can't create display server for greeter");
1288 session_stop (session);
1289 if (display_server)
1290 display_server_stop (display_server);
1291@@ -1463,7 +1467,7 @@
1292 background_display_server = create_display_server (seat, session_get_session_type (background_session));
1293 session_set_display_server (background_session, background_display_server);
1294 if (!display_server_start (background_display_server))
1295- g_warning ("Failed to start display server for background session");
1296+ l_warning (seat, "Failed to start display server for background session");
1297 }
1298
1299 seat->priv->started = TRUE;
1300@@ -1512,7 +1516,7 @@
1301 DisplayServer *display_server = link->data;
1302 if (!display_server_get_is_stopping (display_server))
1303 {
1304- g_debug ("Stopping display server");
1305+ l_debug (seat, "Stopping display server");
1306 display_server_stop (display_server);
1307 }
1308 }
1309@@ -1525,7 +1529,7 @@
1310 Session *session = link->data;
1311 if (!session_get_is_stopping (session))
1312 {
1313- g_debug ("Stopping session");
1314+ l_debug (seat, "Stopping session");
1315 session_stop (session);
1316 }
1317 }
1318@@ -1621,3 +1625,20 @@
1319 NULL,
1320 G_TYPE_NONE, 0);
1321 }
1322+
1323+static gint
1324+seat_real_logprefix (Logger *self, gchar *buf, gulong buflen)
1325+{
1326+ Seat *seat = SEAT (self);
1327+ const gchar *name = seat_get_string_property (seat, "seat-name");
1328+ if (name)
1329+ return g_snprintf (buf, buflen, "Seat %s: ", name);
1330+ else
1331+ return g_snprintf (buf, buflen, "Seat: ");
1332+}
1333+
1334+static void
1335+seat_logger_iface_init (LoggerInterface *iface)
1336+{
1337+ iface->logprefix = &seat_real_logprefix;
1338+}
1339
1340=== modified file 'src/seat.h'
1341--- src/seat.h 2013-07-25 23:40:02 +0000
1342+++ src/seat.h 2013-08-14 20:38:44 +0000
1343@@ -17,6 +17,7 @@
1344 #include "greeter.h"
1345 #include "session.h"
1346 #include "process.h"
1347+#include "logger.h"
1348
1349 G_BEGIN_DECLS
1350
1351
1352=== modified file 'src/session.c'
1353--- src/session.c 2013-08-08 10:10:19 +0000
1354+++ src/session.c 2013-08-14 20:38:44 +0000
1355@@ -120,7 +120,11 @@
1356 /* Maximum length of a string to pass between daemon and session */
1357 #define MAX_STRING_LENGTH 65535
1358
1359-G_DEFINE_TYPE (Session, session, G_TYPE_OBJECT);
1360+static void session_logger_iface_init (LoggerInterface *iface);
1361+
1362+G_DEFINE_TYPE_WITH_CODE (Session, session, G_TYPE_OBJECT,
1363+ G_IMPLEMENT_INTERFACE (
1364+ LOGGER_TYPE, session_logger_iface_init));
1365
1366 Session *
1367 session_new (void)
1368@@ -338,7 +342,7 @@
1369 write_data (Session *session, const void *buf, size_t count)
1370 {
1371 if (write (session->priv->to_child_input, buf, count) != count)
1372- g_warning ("Error writing to session: %s", strerror (errno));
1373+ l_warning (session, "Error writing to session: %s", strerror (errno));
1374 }
1375
1376 static void
1377@@ -382,7 +386,7 @@
1378 ssize_t n_read;
1379 n_read = read (session->priv->from_child_output, buf, count);
1380 if (n_read < 0)
1381- g_warning ("Error reading from session: %s", strerror (errno));
1382+ l_warning (session, "Error reading from session: %s", strerror (errno));
1383 return n_read;
1384 }
1385
1386@@ -398,7 +402,7 @@
1387 return NULL;
1388 if (length > MAX_STRING_LENGTH)
1389 {
1390- g_warning ("Invalid string length %d from child", length);
1391+ l_warning (session, "Invalid string length %d from child", length);
1392 return NULL;
1393 }
1394
1395@@ -414,17 +418,18 @@
1396 {
1397 Session *session = data;
1398
1399- session->priv->pid = 0;
1400-
1401 if (WIFEXITED (status))
1402- g_debug ("Session %d exited with return value %d", pid, WEXITSTATUS (status));
1403+ l_debug (session, "Exited with return value %d", WEXITSTATUS (status));
1404 else if (WIFSIGNALED (status))
1405- g_debug ("Session %d terminated with signal %d", pid, WTERMSIG (status));
1406+ l_debug (session, "Terminated with signal %d", WTERMSIG (status));
1407+
1408+ /* do this as late as possible for log messages prefix */
1409+ session->priv->pid = 0;
1410
1411 /* If failed during authentication then report this as an authentication failure */
1412 if (session->priv->authentication_started && !session->priv->authentication_complete)
1413 {
1414- g_debug ("Session %d failed during authentication", pid);
1415+ l_debug (session, "Failed during authentication");
1416 session->priv->authentication_complete = TRUE;
1417 session->priv->authentication_result = PAM_CONV_ERR;
1418 g_free (session->priv->authentication_result_string);
1419@@ -473,7 +478,7 @@
1420 /* Check if authentication completed */
1421 n_read = read_from_child (session, &auth_complete, sizeof (auth_complete));
1422 if (n_read < 0)
1423- g_debug ("Error reading from child: %s", strerror (errno));
1424+ l_debug (session, "Error reading from child: %s", strerror (errno));
1425 if (n_read <= 0)
1426 {
1427 session->priv->from_child_watch = 0;
1428@@ -487,7 +492,7 @@
1429 g_free (session->priv->authentication_result_string);
1430 session->priv->authentication_result_string = read_string_from_child (session);
1431
1432- g_debug ("Session %d authentication complete with return value %d: %s", session->priv->pid, session->priv->authentication_result, session->priv->authentication_result_string);
1433+ l_debug (session, "Authentication complete with return value %d: %s", session->priv->authentication_result, session->priv->authentication_result_string);
1434
1435 /* No longer expect any more messages */
1436 session->priv->from_child_watch = 0;
1437@@ -510,7 +515,7 @@
1438 m->msg = read_string_from_child (session);
1439 }
1440
1441- g_debug ("Session %d got %d message(s) from PAM", session->priv->pid, session->priv->messages_length);
1442+ l_debug (session, "Got %d message(s) from PAM", session->priv->messages_length);
1443
1444 g_signal_emit (G_OBJECT (session), signals[GOT_MESSAGES], 0);
1445 }
1446@@ -616,7 +621,7 @@
1447 write_string (session, session->priv->xdisplay);
1448 write_xauth (session, session->priv->x_authority);
1449
1450- g_debug ("Started session %d with service '%s', username '%s'", session->priv->pid, session->priv->pam_service, session->priv->username);
1451+ l_debug (session, "Started with service '%s', username '%s'", session->priv->pam_service, session->priv->username);
1452
1453 return TRUE;
1454 }
1455@@ -727,7 +732,7 @@
1456 session->priv->command_run = TRUE;
1457
1458 command = g_strjoinv (" ", session->priv->argv);
1459- g_debug ("Session %d running command %s", session->priv->pid, command);
1460+ l_debug (session, "Running command %s", command);
1461 g_free (command);
1462
1463 /* Create authority location */
1464@@ -740,11 +745,11 @@
1465 g_free (run_dir);
1466
1467 if (g_mkdir_with_parents (dir, S_IRWXU) < 0)
1468- g_warning ("Failed to set create system authority dir %s: %s", dir, strerror (errno));
1469+ l_warning (session, "Failed to set create system authority dir %s: %s", dir, strerror (errno));
1470 if (getuid () == 0)
1471 {
1472 if (chown (dir, user_get_uid (session_get_user (session)), user_get_gid (session_get_user (session))) < 0)
1473- g_warning ("Failed to set ownership of user authority dir: %s", strerror (errno));
1474+ l_warning (session, "Failed to set ownership of user authority dir: %s", strerror (errno));
1475 }
1476
1477 x_authority_filename = g_build_filename (dir, "xauthority", NULL);
1478@@ -819,7 +824,7 @@
1479
1480 if (session->priv->pid > 0)
1481 {
1482- g_debug ("Session %d: Sending SIGTERM", session->priv->pid);
1483+ l_debug (session, "Sending SIGTERM");
1484 kill (session->priv->pid, SIGTERM);
1485 // FIXME: Handle timeout
1486 }
1487@@ -920,3 +925,19 @@
1488 NULL,
1489 G_TYPE_NONE, 0);
1490 }
1491+
1492+static gint
1493+session_real_logprefix (Logger *self, gchar *buf, gulong buflen)
1494+{
1495+ Session *session = SESSION (self);
1496+ if (session->priv->pid != 0)
1497+ return g_snprintf (buf, buflen, "Session pid=%d: ", session->priv->pid);
1498+ else
1499+ return g_snprintf (buf, buflen, "Session: ");
1500+}
1501+
1502+static void
1503+session_logger_iface_init (LoggerInterface *iface)
1504+{
1505+ iface->logprefix = &session_real_logprefix;
1506+}
1507
1508=== modified file 'src/session.h'
1509--- src/session.h 2013-07-26 02:27:41 +0000
1510+++ src/session.h 2013-08-14 20:38:44 +0000
1511@@ -21,6 +21,7 @@
1512 #include "display-server.h"
1513 #include "accounts.h"
1514 #include "x-authority.h"
1515+#include "logger.h"
1516
1517 G_BEGIN_DECLS
1518
1519
1520=== modified file 'src/x-server-local.c'
1521--- src/x-server-local.c 2013-07-26 01:23:05 +0000
1522+++ src/x-server-local.c 2013-08-14 20:38:44 +0000
1523@@ -333,7 +333,7 @@
1524
1525 fd = g_open (server->priv->log_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
1526 if (fd < 0)
1527- g_warning ("Failed to open log file %s: %s", server->priv->log_file, g_strerror (errno));
1528+ l_warning (server, "Failed to open log file %s: %s", server->priv->log_file, g_strerror (errno));
1529 else
1530 {
1531 dup2 (fd, STDOUT_FILENO);
1532@@ -352,7 +352,7 @@
1533 if (signum == SIGUSR1 && !server->priv->got_signal)
1534 {
1535 server->priv->got_signal = TRUE;
1536- g_debug ("Got signal from X server :%d", x_server_get_display_number (X_SERVER (server)));
1537+ l_debug (server, "Got signal from X server :%d", x_server_get_display_number (X_SERVER (server)));
1538
1539 // FIXME: Check return value
1540 DISPLAY_SERVER_CLASS (x_server_local_parent_class)->start (DISPLAY_SERVER (server));
1541@@ -362,7 +362,7 @@
1542 static void
1543 stopped_cb (Process *process, XServerLocal *server)
1544 {
1545- g_debug ("X server stopped");
1546+ l_debug (server, "X server stopped");
1547
1548 /* Release VT and display number for re-use */
1549 if (server->priv->have_vt_ref)
1550@@ -374,7 +374,7 @@
1551
1552 if (x_server_get_authority (X_SERVER (server)) && server->priv->authority_file)
1553 {
1554- g_debug ("Removing X server authority %s", server->priv->authority_file);
1555+ l_debug (server, "Removing X server authority %s", server->priv->authority_file);
1556
1557 g_unlink (server->priv->authority_file);
1558
1559@@ -404,17 +404,17 @@
1560 dir = g_build_filename (run_dir, "root", NULL);
1561 g_free (run_dir);
1562 if (g_mkdir_with_parents (dir, S_IRWXU) < 0)
1563- g_warning ("Failed to make authority directory %s: %s", dir, strerror (errno));
1564+ l_warning (server, "Failed to make authority directory %s: %s", dir, strerror (errno));
1565
1566 server->priv->authority_file = g_build_filename (dir, x_server_get_address (X_SERVER (server)), NULL);
1567 g_free (dir);
1568 }
1569
1570- g_debug ("Writing X server authority to %s", server->priv->authority_file);
1571+ l_debug (server, "Writing X server authority to %s", server->priv->authority_file);
1572
1573 x_authority_write (authority, XAUTH_WRITE_MODE_REPLACE, server->priv->authority_file, &error);
1574 if (error)
1575- g_warning ("Failed to write authority: %s", error->message);
1576+ l_warning (server, "Failed to write authority: %s", error->message);
1577 g_clear_error (&error);
1578 }
1579
1580@@ -442,14 +442,14 @@
1581 filename = g_strdup_printf ("%s.log", display_server_get_name (display_server));
1582 dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
1583 server->priv->log_file = g_build_filename (dir, filename, NULL);
1584- g_debug ("Logging to %s", server->priv->log_file);
1585+ l_debug (display_server, "Logging to %s", server->priv->log_file);
1586 g_free (filename);
1587 g_free (dir);
1588
1589 absolute_command = get_absolute_command (server->priv->command);
1590 if (!absolute_command)
1591 {
1592- g_debug ("Can't launch X server %s, not found in path", server->priv->command);
1593+ l_debug (display_server, "Can't launch X server %s, not found in path", server->priv->command);
1594 stopped_cb (server->priv->x_server_process, X_SERVER_LOCAL (server));
1595 return FALSE;
1596 }
1597@@ -496,7 +496,7 @@
1598 process_set_command (server->priv->x_server_process, command->str);
1599 g_string_free (command, TRUE);
1600
1601- g_debug ("Launching X Server");
1602+ l_debug (display_server, "Launching X Server");
1603
1604 /* If running inside another display then pass through those variables */
1605 if (g_getenv ("DISPLAY"))
1606@@ -524,7 +524,7 @@
1607 result = process_start (server->priv->x_server_process, FALSE);
1608
1609 if (result)
1610- g_debug ("Waiting for ready signal from X server :%d", x_server_get_display_number (X_SERVER (server)));
1611+ l_debug (display_server, "Waiting for ready signal from X server :%d", x_server_get_display_number (X_SERVER (server)));
1612
1613 if (!result)
1614 stopped_cb (server->priv->x_server_process, X_SERVER_LOCAL (server));
1615
1616=== modified file 'src/x-server-xvnc.c'
1617--- src/x-server-xvnc.c 2013-07-26 02:27:41 +0000
1618+++ src/x-server-xvnc.c 2013-08-14 20:38:44 +0000
1619@@ -144,7 +144,7 @@
1620
1621 fd = g_open (server->priv->log_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);
1622 if (fd < 0)
1623- g_warning ("Failed to open log file %s: %s", server->priv->log_file, g_strerror (errno));
1624+ l_warning (server, "Failed to open log file %s: %s", server->priv->log_file, g_strerror (errno));
1625 else
1626 {
1627 dup2 (fd, STDERR_FILENO);
1628@@ -162,7 +162,7 @@
1629 if (signum == SIGUSR1 && !server->priv->got_signal)
1630 {
1631 server->priv->got_signal = TRUE;
1632- g_debug ("Got signal from Xvnc server :%d", x_server_get_display_number (X_SERVER (server)));
1633+ l_debug (server, "Got signal from Xvnc server :%d", x_server_get_display_number (X_SERVER (server)));
1634
1635 // FIXME: Check return value
1636 DISPLAY_SERVER_CLASS (x_server_xvnc_parent_class)->start (DISPLAY_SERVER (server));
1637@@ -172,14 +172,14 @@
1638 static void
1639 stopped_cb (Process *process, XServerXVNC *server)
1640 {
1641- g_debug ("Xvnc server stopped");
1642+ l_debug (server, "Xvnc server stopped");
1643
1644 g_object_unref (server->priv->x_server_process);
1645 server->priv->x_server_process = NULL;
1646
1647 x_server_local_release_display_number (x_server_get_display_number (X_SERVER (server)));
1648
1649- g_debug ("Removing X server authority %s", server->priv->authority_file);
1650+ l_debug (server, "Removing X server authority %s", server->priv->authority_file);
1651
1652 g_unlink (server->priv->authority_file);
1653 g_free (server->priv->authority_file);
1654@@ -219,14 +219,14 @@
1655 filename = g_strdup_printf ("%s.log", display_server_get_name (display_server));
1656 dir = config_get_string (config_get_instance (), "LightDM", "log-directory");
1657 server->priv->log_file = g_build_filename (dir, filename, NULL);
1658- g_debug ("Logging to %s", server->priv->log_file);
1659+ l_debug (display_server, "Logging to %s", server->priv->log_file);
1660 g_free (filename);
1661 g_free (dir);
1662
1663 absolute_command = get_absolute_command (server->priv->command);
1664 if (!absolute_command)
1665 {
1666- g_debug ("Can't launch X server %s, not found in path", server->priv->command);
1667+ l_debug (display_server, "Can't launch X server %s, not found in path", server->priv->command);
1668 stopped_cb (server->priv->x_server_process, X_SERVER_XVNC (server));
1669 return FALSE;
1670 }
1671@@ -241,16 +241,16 @@
1672 dir = g_build_filename (run_dir, "root", NULL);
1673 g_free (run_dir);
1674 if (g_mkdir_with_parents (dir, S_IRWXU) < 0)
1675- g_warning ("Failed to make authority directory %s: %s", dir, strerror (errno));
1676+ l_warning (display_server, "Failed to make authority directory %s: %s", dir, strerror (errno));
1677
1678 server->priv->authority_file = g_build_filename (dir, x_server_get_address (X_SERVER (server)), NULL);
1679 g_free (dir);
1680
1681- g_debug ("Writing X server authority to %s", server->priv->authority_file);
1682+ l_debug (display_server, "Writing X server authority to %s", server->priv->authority_file);
1683
1684 x_authority_write (authority, XAUTH_WRITE_MODE_REPLACE, server->priv->authority_file, &error);
1685 if (error)
1686- g_warning ("Failed to write authority: %s", error->message);
1687+ l_warning (display_server, "Failed to write authority: %s", error->message);
1688 g_clear_error (&error);
1689
1690 command = g_string_new (absolute_command);
1691@@ -267,7 +267,7 @@
1692 process_set_command (server->priv->x_server_process, command->str);
1693 g_string_free (command, TRUE);
1694
1695- g_debug ("Launching Xvnc server");
1696+ l_debug (display_server, "Launching Xvnc server");
1697
1698 /* Variable required for regression tests */
1699 if (g_getenv ("LIGHTDM_TEST_ROOT"))
1700@@ -279,7 +279,7 @@
1701 result = process_start (server->priv->x_server_process, FALSE);
1702
1703 if (result)
1704- g_debug ("Waiting for ready signal from Xvnc server :%d", x_server_get_display_number (X_SERVER (server)));
1705+ l_debug (display_server, "Waiting for ready signal from Xvnc server :%d", x_server_get_display_number (X_SERVER (server)));
1706
1707 if (!result)
1708 stopped_cb (server->priv->x_server_process, X_SERVER_XVNC (server));
1709
1710=== modified file 'src/x-server.c'
1711--- src/x-server.c 2013-07-30 15:56:44 +0000
1712+++ src/x-server.c 2013-08-14 20:38:44 +0000
1713@@ -133,11 +133,11 @@
1714 }
1715
1716 /* Open connection */
1717- g_debug ("Connecting to XServer %s", x_server_get_address (server));
1718+ l_debug (server, "Connecting to XServer %s", x_server_get_address (server));
1719 server->priv->connection = xcb_connect_to_display_with_auth_info (x_server_get_address (server), auth, NULL);
1720 if (xcb_connection_has_error (server->priv->connection))
1721 {
1722- g_debug ("Error connecting to XServer %s", x_server_get_address (server));
1723+ l_debug (server, "Error connecting to XServer %s", x_server_get_address (server));
1724 return FALSE;
1725 }
1726
1727@@ -161,9 +161,12 @@
1728 g_free (t);
1729
1730 t = g_strdup_printf ("%d", vt);
1731+ l_debug (session, "Setting XDG_VTNR=%s", t);
1732 session_set_env (session, "XDG_VTNR", t);
1733 g_free (t);
1734 }
1735+ else
1736+ l_debug (session, "Not setting XDG_VTNR");
1737
1738 session_set_env (session, "DISPLAY", x_server_get_address (X_SERVER (display_server)));
1739 session_set_tty (session, x_server_get_address (X_SERVER (display_server)));

Subscribers

People subscribed via source and target branches