mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-20 07:59:00 +00:00
commandhelper: Factor out printInput
Signed-off-by: Tim Wiederhake <twiederh@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
c73f0343bb
commit
ba326d08b4
@ -201,39 +201,20 @@ static int printCwd(FILE *log)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
static int printInput(struct Arguments *args)
|
||||||
struct Arguments *args = parseArguments(argc, argv);
|
{
|
||||||
size_t i;
|
char buf[1024];
|
||||||
FILE *log = fopen(abs_builddir "/commandhelper.log", "w");
|
|
||||||
int ret = EXIT_FAILURE;
|
|
||||||
struct pollfd fds[3];
|
struct pollfd fds[3];
|
||||||
char *buffers[3] = {NULL, NULL, NULL};
|
char *buffers[3] = {NULL, NULL, NULL};
|
||||||
size_t buflen[3] = {0, 0, 0};
|
size_t buflen[3] = {0, 0, 0};
|
||||||
char buf[1024];
|
int ret = -1;
|
||||||
|
size_t i;
|
||||||
ssize_t got;
|
ssize_t got;
|
||||||
|
|
||||||
if (!log || !args)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
printArguments(log, argc, argv);
|
|
||||||
|
|
||||||
if (printEnvironment(log) != 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
if (printFds(log) != 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
printDaemonization(log, args);
|
|
||||||
|
|
||||||
if (printCwd(log) != 0)
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
fprintf(log, "UMASK:%04o\n", umask(0));
|
|
||||||
|
|
||||||
if (args->close_stdin) {
|
if (args->close_stdin) {
|
||||||
if (freopen("/dev/null", "r", stdin) != stdin)
|
if (freopen("/dev/null", "r", stdin) != stdin)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
usleep(100*1000);
|
usleep(100 * 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stdout, "BEGIN STDOUT\n");
|
fprintf(stdout, "BEGIN STDOUT\n");
|
||||||
@ -308,11 +289,43 @@ int main(int argc, char **argv) {
|
|||||||
fprintf(stderr, "END STDERR\n");
|
fprintf(stderr, "END STDERR\n");
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
|
|
||||||
ret = EXIT_SUCCESS;
|
ret = 0;
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
for (i = 0; i < G_N_ELEMENTS(buffers); i++)
|
for (i = 0; i < G_N_ELEMENTS(buffers); i++)
|
||||||
free(buffers[i]);
|
free(buffers[i]);
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
struct Arguments *args = parseArguments(argc, argv);
|
||||||
|
FILE *log = fopen(abs_builddir "/commandhelper.log", "w");
|
||||||
|
int ret = EXIT_FAILURE;
|
||||||
|
|
||||||
|
if (!log || !args)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
printArguments(log, argc, argv);
|
||||||
|
|
||||||
|
if (printEnvironment(log) != 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
if (printFds(log) != 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
printDaemonization(log, args);
|
||||||
|
|
||||||
|
if (printCwd(log) != 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
fprintf(log, "UMASK:%04o\n", umask(0));
|
||||||
|
|
||||||
|
if (printInput(args) != 0)
|
||||||
|
goto cleanup;
|
||||||
|
|
||||||
|
ret = EXIT_SUCCESS;
|
||||||
|
|
||||||
|
cleanup:
|
||||||
if (args)
|
if (args)
|
||||||
free(args);
|
free(args);
|
||||||
if (log)
|
if (log)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user