return 0;
}
-static bool is_terminal_input(ExecInput i) {
- return IN_SET(i,
- EXEC_INPUT_TTY,
- EXEC_INPUT_TTY_FORCE,
- EXEC_INPUT_TTY_FAIL);
-}
-
-static bool is_terminal_output(ExecOutput o) {
- return IN_SET(o,
- EXEC_OUTPUT_TTY,
- EXEC_OUTPUT_KMSG_AND_CONSOLE,
- EXEC_OUTPUT_JOURNAL_AND_CONSOLE);
-}
-
-static bool is_kmsg_output(ExecOutput o) {
- return IN_SET(o,
- EXEC_OUTPUT_KMSG,
- EXEC_OUTPUT_KMSG_AND_CONSOLE);
-}
-
static int open_null_as(int flags, int nfd) {
int fd;
context->syslog_priority,
!!context->syslog_level_prefix,
false,
- is_kmsg_output(output),
- is_terminal_output(output)) < 0)
+ exec_output_is_kmsg(output),
+ exec_output_is_terminal(output)) < 0)
return -errno;
return move_fd(TAKE_FD(fd), nfd, false);
std_input = context->std_input;
- if (is_terminal_input(std_input) && !apply_tty_stdin)
+ if (exec_input_is_terminal(std_input) && !apply_tty_stdin)
return EXEC_INPUT_NULL;
if (std_input == EXEC_INPUT_SOCKET && socket_fd < 0)
if (e == EXEC_OUTPUT_INHERIT &&
o == EXEC_OUTPUT_INHERIT &&
i == EXEC_INPUT_NULL &&
- !is_terminal_input(context->std_input) &&
+ !exec_input_is_terminal(context->std_input) &&
getppid() != 1)
return fileno;
} else if (o == EXEC_OUTPUT_INHERIT) {
/* If input got downgraded, inherit the original value */
- if (i == EXEC_INPUT_NULL && is_terminal_input(context->std_input))
+ if (i == EXEC_INPUT_NULL && exec_input_is_terminal(context->std_input))
return open_terminal_as(exec_context_tty_path(context), O_WRONLY, fileno);
/* If the input is connected to anything that's not a /dev/null or a data fd, inherit that... */
return open_null_as(O_WRONLY, fileno);
case EXEC_OUTPUT_TTY:
- if (is_terminal_input(i))
+ if (exec_input_is_terminal(i))
return RET_NERRNO(dup2(STDIN_FILENO, fileno));
return open_terminal_as(exec_context_tty_path(context), O_WRONLY, fileno);
assert(p);
/* We only try to reset things if we there's the chance our stdout points to a TTY */
- if (!(is_terminal_output(context->std_output) ||
- (context->std_output == EXEC_OUTPUT_INHERIT && is_terminal_input(context->std_input)) ||
+ if (!(exec_output_is_terminal(context->std_output) ||
+ (context->std_output == EXEC_OUTPUT_INHERIT && exec_input_is_terminal(context->std_input)) ||
context->std_output == EXEC_OUTPUT_NAMED_FD ||
p->stdout_fd >= 0))
return;
return 0;
/* Do we need $TERM at all? */
- if (!is_terminal_input(context->std_input) &&
- !is_terminal_output(context->std_output) &&
- !is_terminal_output(context->std_error) &&
+ if (!exec_input_is_terminal(context->std_input) &&
+ !exec_output_is_terminal(context->std_output) &&
+ !exec_output_is_terminal(context->std_error) &&
!context->tty_path)
return 0;
#include "utmp-wtmp.h"
#include "vpick.h"
-static bool is_terminal_input(ExecInput i) {
- return IN_SET(i,
- EXEC_INPUT_TTY,
- EXEC_INPUT_TTY_FORCE,
- EXEC_INPUT_TTY_FAIL);
-}
-
-static bool is_terminal_output(ExecOutput o) {
- return IN_SET(o,
- EXEC_OUTPUT_TTY,
- EXEC_OUTPUT_KMSG_AND_CONSOLE,
- EXEC_OUTPUT_JOURNAL_AND_CONSOLE);
-}
-
const char* exec_context_tty_path(const ExecContext *context) {
assert(context);
if (parameters && parameters->stdout_fd >= 0 && isatty_safe(parameters->stdout_fd))
fd = parameters->stdout_fd;
- else if (path && (context->tty_path || is_terminal_input(context->std_input) ||
- is_terminal_output(context->std_output) || is_terminal_output(context->std_error))) {
+ else if (path && (context->tty_path || exec_input_is_terminal(context->std_input) ||
+ exec_output_is_terminal(context->std_output) || exec_output_is_terminal(context->std_error))) {
fd = _fd = open_terminal(path, O_RDWR|O_NOCTTY|O_CLOEXEC|O_NONBLOCK);
if (fd < 0)
return (void) log_debug_errno(fd, "Failed to open terminal '%s', ignoring: %m", path);
return ec->tty_reset ||
ec->tty_vhangup ||
ec->tty_vt_disallocate ||
- is_terminal_input(ec->std_input) ||
- is_terminal_output(ec->std_output) ||
- is_terminal_output(ec->std_error);
+ exec_input_is_terminal(ec->std_input) ||
+ exec_output_is_terminal(ec->std_output) ||
+ exec_output_is_terminal(ec->std_error);
}
bool exec_context_may_touch_console(const ExecContext *ec) {