~lightdm-team/lightdm/1.14

« back to all changes in this revision

Viewing changes to src/session-child.c

  • Committer: Robert Ancell
  • Date: 2015-10-28 03:28:13 UTC
  • Revision ID: robert.ancell@canonical.com-20151028032813-yh3hnigb4b41e4bg
Add a backup-logs option that can be used to disable existing logging files having a .old suffix added to them

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include "session.h"
27
27
#include "console-kit.h"
28
28
#include "login1.h"
 
29
#include "log-file.h"
29
30
#include "privileges.h"
30
31
#include "x-authority.h"
31
32
#include "configuration.h"
257
258
    int i, version, fd, result;
258
259
    gboolean auth_complete = TRUE;
259
260
    User *user = NULL;
260
 
    gchar *log_filename, *log_backup_filename = NULL;
 
261
    gchar *log_filename;
 
262
    LogMode log_mode = LOG_MODE_BACKUP_AND_TRUNCATE;
261
263
    gsize env_length;
262
264
    gsize command_argc;
263
265
    gchar **command_argv;
488
490
 
489
491
    /* Get the command to run (blocks) */
490
492
    log_filename = read_string ();
 
493
    if (version >= 3)
 
494
        read_data (&log_mode, sizeof (log_mode));
491
495
    if (version >= 1)
492
496
    {
493
497
        g_free (tty);
522
526
    /* Redirect stderr to a log file */
523
527
    if (log_filename)
524
528
    {
525
 
        log_backup_filename = g_strdup_printf ("%s.old", log_filename);
526
529
        if (g_path_is_absolute (log_filename))
527
530
        {
528
 
            rename (log_filename, log_backup_filename);
529
 
            fd = open (log_filename, O_WRONLY | O_APPEND | O_CREAT, 0600);
 
531
            fd = log_file_open (log_filename, log_mode);
530
532
            dup2 (fd, STDERR_FILENO);
531
533
            close (fd);
532
534
            g_free (log_filename);
680
682
 
681
683
        if (log_filename)
682
684
        {
683
 
            rename (log_filename, log_backup_filename);
684
 
            fd = open (log_filename, O_WRONLY | O_APPEND | O_CREAT, 0600);
 
685
            fd = log_file_open (log_filename, log_mode);
685
686
            if (fd >= 0)
686
687
            {
687
688
                dup2 (fd, STDERR_FILENO);