summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2015-10-21 19:36:22 +0200
committerLennart Poettering <lennart@poettering.net>2015-10-22 01:59:24 +0200
commit16597ac3903ddb68d5ef75e6aaa37e43866a376d (patch)
tree63f5620867aebfb94f20dc5bea601636eda67ea6 /src
parent5b7481633fba100cc184c367825d2e3829bc1d88 (diff)
logind: minor clean-ups
Diffstat (limited to 'src')
-rw-r--r--src/login/logind-session.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index f5fe030b07..fa82e444ef 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -1049,9 +1049,13 @@ error:
}
void session_restore_vt(Session *s) {
+
+ static const struct vt_mode mode = {
+ .mode = VT_AUTO,
+ };
+
_cleanup_free_ char *utf8 = NULL;
- int vt, kb = K_XLATE;
- struct vt_mode mode = { 0 };
+ int vt, kb, old_fd;
/* We need to get a fresh handle to the virtual terminal,
* since the old file-descriptor is potentially in a hung-up
@@ -1059,7 +1063,7 @@ void session_restore_vt(Session *s) {
* little dance to avoid having the terminal be available
* for reuse before we've cleaned it up.
*/
- int old_fd = s->vtfd;
+ old_fd = s->vtfd;
s->vtfd = -1;
vt = session_open_vt(s);
@@ -1072,13 +1076,13 @@ void session_restore_vt(Session *s) {
if (read_one_line_file("/sys/module/vt/parameters/default_utf8", &utf8) >= 0 && *utf8 == '1')
kb = K_UNICODE;
+ else
+ kb = K_XLATE;
(void) ioctl(vt, KDSKBMODE, kb);
- mode.mode = VT_AUTO;
(void) ioctl(vt, VT_SETMODE, &mode);
-
- fchown(vt, 0, -1);
+ (void) fchown(vt, 0, (gid_t) -1);
s->vtfd = safe_close(s->vtfd);
}