| # Clean up at_console compat files, bug #257761 |
| # http://patches.ubuntu.com/by-release/extracted/ubuntu/c/consolekit/0.2.10-1ubuntu9/ |
| --- a/src/main.c 2008-07-25 03:19:34.000000000 +0200 |
| +++ b/src/main.c 2008-07-26 00:25:13.000000000 +0200 |
| @@ -149,6 +149,43 @@ |
| unlink (CONSOLE_KIT_PID_FILE); |
| } |
| |
| +#define CONSOLE_TAGS_DIR "/var/run/console" |
| + |
| +static void |
| +delete_console_tags (void) |
| +{ |
| + GDir *dir; |
| + GError *error = NULL; |
| + const gchar *name; |
| + |
| + g_debug ("Cleaning up %s", CONSOLE_TAGS_DIR); |
| + |
| + dir = g_dir_open (CONSOLE_TAGS_DIR, 0, &error); |
| + if (dir == NULL) { |
| + g_debug ("Couldn't open directory %s: %s", CONSOLE_TAGS_DIR, |
| + error->message); |
| + g_error_free (error); |
| + return; |
| + } |
| + while ((name = g_dir_read_name (dir)) != NULL) { |
| + gchar *file; |
| + file = g_build_filename (CONSOLE_TAGS_DIR, name, NULL); |
| + |
| + g_debug ("Removing tag file: %s", file); |
| + if (unlink (file) == -1) { |
| + g_warning ("Couldn't delete tag file: %s", file); |
| + } |
| + g_free (file); |
| + } |
| +} |
| + |
| +static void |
| +cleanup (void) |
| +{ |
| + delete_console_tags (); |
| + delete_pid (); |
| +} |
| + |
| /* copied from nautilus */ |
| static int debug_log_pipes[2]; |
| |
| @@ -229,7 +266,7 @@ |
| snprintf (pid, sizeof (pid), "%lu\n", (long unsigned) getpid ()); |
| written = write (pf, pid, strlen (pid)); |
| close (pf); |
| - g_atexit (delete_pid); |
| + g_atexit (cleanup); |
| } else { |
| g_warning ("Unable to write pid file %s: %s", |
| CONSOLE_KIT_PID_FILE, |
| @@ -312,6 +349,8 @@ |
| |
| g_debug ("initializing console-kit-daemon %s", VERSION); |
| |
| + delete_console_tags (); |
| + |
| create_pid_file (); |
| |
| manager = ck_manager_new (); |