execute: simplify stdin/stderr/stdout fixup a little

This commit is contained in:
Lennart Poettering 2010-05-19 21:50:34 +02:00
parent 9a6bca7aad
commit 03fd9c4932

View File

@ -227,31 +227,20 @@ static bool is_terminal_input(ExecInput i) {
i == EXEC_INPUT_TTY_FAIL; i == EXEC_INPUT_TTY_FAIL;
} }
static int fixup_input(const ExecContext *context, int socket_fd) { static int fixup_input(ExecInput std_input, int socket_fd) {
assert(context);
if (socket_fd < 0 && context->std_input == EXEC_INPUT_SOCKET) if (std_input == EXEC_INPUT_SOCKET && socket_fd < 0)
return EXEC_INPUT_NULL; return EXEC_INPUT_NULL;
return context->std_input; return std_input;
} }
static int fixup_output(const ExecContext *context, int socket_fd) { static int fixup_output(ExecOutput std_output, int socket_fd) {
assert(context);
if (socket_fd < 0 && context->std_output == EXEC_OUTPUT_SOCKET) if (std_output == EXEC_OUTPUT_SOCKET && socket_fd < 0)
return EXEC_OUTPUT_INHERIT; return EXEC_OUTPUT_INHERIT;
return context->std_output; return std_output;
}
static int fixup_error(const ExecContext *context, int socket_fd) {
assert(context);
if (socket_fd < 0 && context->std_error == EXEC_OUTPUT_SOCKET)
return EXEC_OUTPUT_INHERIT;
return context->std_error;
} }
static int setup_input(const ExecContext *context, int socket_fd) { static int setup_input(const ExecContext *context, int socket_fd) {
@ -259,7 +248,7 @@ static int setup_input(const ExecContext *context, int socket_fd) {
assert(context); assert(context);
i = fixup_input(context, socket_fd); i = fixup_input(context->std_input, socket_fd);
switch (i) { switch (i) {
@ -302,8 +291,8 @@ static int setup_output(const ExecContext *context, int socket_fd, const char *i
assert(context); assert(context);
assert(ident); assert(ident);
i = fixup_input(context, socket_fd); i = fixup_input(context->std_input, socket_fd);
o = fixup_output(context, socket_fd); o = fixup_output(context->std_output, socket_fd);
/* This expects the input is already set up */ /* This expects the input is already set up */
@ -347,9 +336,9 @@ static int setup_error(const ExecContext *context, int socket_fd, const char *id
assert(context); assert(context);
assert(ident); assert(ident);
i = fixup_input(context, socket_fd); i = fixup_input(context->std_input, socket_fd);
o = fixup_output(context, socket_fd); o = fixup_output(context->std_output, socket_fd);
e = fixup_error(context, socket_fd); e = fixup_output(context->std_error, socket_fd);
/* This expects the input and output are already set up */ /* This expects the input and output are already set up */