chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
journal: support changing the console tty to forward to
[elogind.git]
/
src
/
journal
/
journald.c
diff --git
a/src/journal/journald.c
b/src/journal/journald.c
index e0e7cce1227d4aea19cc2934939efd56ae6445ee..0e27582df3335324d7964cf611532edfaa55ad50 100644
(file)
--- a/
src/journal/journald.c
+++ b/
src/journal/journald.c
@@
-965,6
+965,7
@@
static void forward_console(Server *s, const char *identifier, const char *messa
char header_pid[16];
int n = 0, fd;
char *ident_buf = NULL;
char header_pid[16];
int n = 0, fd;
char *ident_buf = NULL;
+ const char *tty;
assert(s);
assert(message);
assert(s);
assert(message);
@@
-992,14
+993,16
@@
static void forward_console(Server *s, const char *identifier, const char *messa
IOVEC_SET_STRING(iovec[n++], message);
IOVEC_SET_STRING(iovec[n++], "\n");
IOVEC_SET_STRING(iovec[n++], message);
IOVEC_SET_STRING(iovec[n++], "\n");
- fd = open_terminal("/dev/console", O_WRONLY|O_NOCTTY|O_CLOEXEC);
+ tty = s->tty_path ? s->tty_path : "/dev/console";
+
+ fd = open_terminal(tty, O_WRONLY|O_NOCTTY|O_CLOEXEC);
if (fd < 0) {
if (fd < 0) {
- log_debug("Failed to open
/dev/console for logging: %s"
, strerror(errno));
+ log_debug("Failed to open
%s for logging: %s", tty
, strerror(errno));
goto finish;
}
if (writev(fd, iovec, n) < 0)
goto finish;
}
if (writev(fd, iovec, n) < 0)
- log_debug("Failed to write to
/dev/console for logging: %s"
, strerror(errno));
+ log_debug("Failed to write to
%s for logging: %s", tty
, strerror(errno));
close_nointr_nofail(fd);
close_nointr_nofail(fd);
@@
-2782,6
+2785,7
@@
static void server_done(Server *s) {
journal_rate_limit_free(s->rate_limit);
free(s->buffer);
journal_rate_limit_free(s->rate_limit);
free(s->buffer);
+ free(s->tty_path);
}
int main(int argc, char *argv[]) {
}
int main(int argc, char *argv[]) {