X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-session.c;h=59f765782a668e5d92f188032ec5a848aa79dc11;hb=7b061de2d0601a33f7246c4b909f30ddc44d7ab6;hp=a02a537f7ca00666a2316ec357408d84d2323c32;hpb=be94d95499bf9c63fe9331e9b9ecc64f32fe9d79;p=elogind.git diff --git a/src/login/logind-session.c b/src/login/logind-session.c index a02a537f7..59f765782 100644 --- a/src/login/logind-session.c +++ b/src/login/logind-session.c @@ -28,9 +28,7 @@ #include #include -#include "sd-id128.h" #include "sd-messages.h" -#include "strv.h" #include "util.h" #include "mkdir.h" #include "path-util.h" @@ -463,7 +461,7 @@ int session_activate(Session *s) { assert(s->user); if (!s->seat) - return -ENOTSUP; + return -EOPNOTSUPP; if (s->seat->active == s) return 0; @@ -471,7 +469,7 @@ int session_activate(Session *s) { /* on seats with VTs, we let VTs manage session-switching */ if (seat_has_vts(s->seat)) { if (!s->vtnr) - return -ENOTSUP; + return -EOPNOTSUPP; return chvt(s->vtnr); } @@ -703,18 +701,20 @@ static int release_timeout_callback(sd_event_source *es, uint64_t usec, void *us return 0; } -void session_release(Session *s) { +int session_release(Session *s) { assert(s); if (!s->started || s->stopping) - return; + return 0; + + if (s->timer_event_source) + return 0; - if (!s->timer_event_source) - sd_event_add_time(s->manager->event, - &s->timer_event_source, - CLOCK_MONOTONIC, - now(CLOCK_MONOTONIC) + RELEASE_USEC, 0, - release_timeout_callback, s); + return sd_event_add_time(s->manager->event, + &s->timer_event_source, + CLOCK_MONOTONIC, + now(CLOCK_MONOTONIC) + RELEASE_USEC, 0, + release_timeout_callback, s); } bool session_is_active(Session *s) { @@ -1041,15 +1041,15 @@ void session_restore_vt(Session *s) { if (vt < 0) return; - ioctl(vt, KDSETMODE, KD_TEXT); + (void) ioctl(vt, KDSETMODE, KD_TEXT); if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1') kb = K_UNICODE; - ioctl(vt, KDSKBMODE, kb); + (void) ioctl(vt, KDSKBMODE, kb); mode.mode = VT_AUTO; - ioctl(vt, VT_SETMODE, &mode); + (void) ioctl(vt, VT_SETMODE, &mode); fchown(vt, 0, -1);