X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Flogind-session.c;h=ab4de66ca4d8c4bc90eb521a72029476296a0a82;hp=bc1b9b77ca31858b1e1d13404c30a33dc91d7da5;hb=b5ef5549e9889eea1c66c4ed88667b5922cd9f76;hpb=b4f78aeac66e64e0489d7a26f1370a69d0fcf011 diff --git a/src/logind-session.c b/src/logind-session.c index bc1b9b77c..ab4de66ca 100644 --- a/src/logind-session.c +++ b/src/logind-session.c @@ -380,13 +380,15 @@ static int session_link_x11_socket(Session *s) { return -ENOENT; } - t = strappend(s->user->runtime_path, "/display"); + t = strappend(s->user->runtime_path, "/X11/display"); if (!t) { log_error("Out of memory"); free(f); return -ENOMEM; } + mkdir_parents(t, 0755); + if (link(f, t) < 0) { if (errno == EEXIST) { unlink(t); @@ -638,7 +640,7 @@ static int session_unlink_x11_socket(Session *s) { s->user->display = NULL; - t = strappend(s->user->runtime_path, "/display"); + t = strappend(s->user->runtime_path, "/X11/display"); if (!t) { log_error("Out of memory"); return -ENOMEM; @@ -787,6 +789,10 @@ int session_create_fifo(Session *s) { /* Create FIFO */ if (!s->fifo_path) { + r = safe_mkdir("/run/systemd/sessions", 0755, 0, 0); + if (r < 0) + return r; + if (asprintf(&s->fifo_path, "/run/systemd/sessions/%s.ref", s->id) < 0) return -ENOMEM;