mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-26 13:45:14 +07:00
execute: simplify stdin/stderr/stdout fixup a little
This commit is contained in:
parent
9a6bca7aad
commit
03fd9c4932
@ -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 */
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user