Error handling
This commit is contained in:
parent
f8faba0c8f
commit
ca48e7f64f
|
@ -247,7 +247,8 @@ void session(char *uuid, char *lang, char *imageHash)
|
||||||
ts_10ms.tv_sec = 0;
|
ts_10ms.tv_sec = 0;
|
||||||
ts_10ms.tv_nsec = 1000 * 1000 * 10;
|
ts_10ms.tv_nsec = 1000 * 1000 * 10;
|
||||||
timeout_msg = "container did not come up within 10 seconds";
|
timeout_msg = "container did not come up within 10 seconds";
|
||||||
signal(SIGALRM, wait_alarm);
|
if (signal(SIGALRM, wait_alarm) == SIG_ERR)
|
||||||
|
die("signal failed");
|
||||||
alarm(10);
|
alarm(10);
|
||||||
int fd;
|
int fd;
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -260,7 +261,8 @@ void session(char *uuid, char *lang, char *imageHash)
|
||||||
if (rv != 0 && errno != EINTR)
|
if (rv != 0 && errno != EINTR)
|
||||||
die("nanosleep failed");
|
die("nanosleep failed");
|
||||||
}
|
}
|
||||||
signal(SIGALRM, SIG_IGN);
|
if (signal(SIGALRM, SIG_IGN) == SIG_ERR)
|
||||||
|
die("signal failed");
|
||||||
pid = fork();
|
pid = fork();
|
||||||
if (pid < 0)
|
if (pid < 0)
|
||||||
die("fork failed");
|
die("fork failed");
|
||||||
|
@ -339,7 +341,8 @@ void exec(char *uuid, int argc, char **cmdline, bool pty)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (dataFIFO != statusFIFO) {
|
if (dataFIFO != statusFIFO) {
|
||||||
signal(SIGALRM, wait_alarm_group);
|
if (signal(SIGALRM, wait_alarm_group) == SIG_ERR)
|
||||||
|
die("signal failed");
|
||||||
alarm(1);
|
alarm(1);
|
||||||
}
|
}
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@ -353,9 +356,12 @@ void exec(char *uuid, int argc, char **cmdline, bool pty)
|
||||||
if (rv != 0 && errno != EINTR)
|
if (rv != 0 && errno != EINTR)
|
||||||
die("nanosleep failed");
|
die("nanosleep failed");
|
||||||
}
|
}
|
||||||
signal(SIGALRM, SIG_IGN);
|
if (signal(SIGALRM, SIG_IGN) == SIG_ERR)
|
||||||
|
die("signal failed");
|
||||||
char buf[1024];
|
char buf[1024];
|
||||||
if (dataFIFO == inputFIFO) {
|
if (dataFIFO == inputFIFO) {
|
||||||
|
if (close(STDOUT_FILENO) < 0)
|
||||||
|
die("close failed");
|
||||||
while ((len = read(STDIN_FILENO, buf, 1024)) > 0) {
|
while ((len = read(STDIN_FILENO, buf, 1024)) > 0) {
|
||||||
char *ptr = buf;
|
char *ptr = buf;
|
||||||
while (len > 0) {
|
while (len > 0) {
|
||||||
|
@ -369,6 +375,8 @@ void exec(char *uuid, int argc, char **cmdline, bool pty)
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
die("read failed");
|
die("read failed");
|
||||||
} else if (dataFIFO == outputFIFO) {
|
} else if (dataFIFO == outputFIFO) {
|
||||||
|
if (close(STDIN_FILENO) < 0)
|
||||||
|
die("close failed");
|
||||||
while ((len = read(fd, buf, 1024)) > 0) {
|
while ((len = read(fd, buf, 1024)) > 0) {
|
||||||
fwrite(buf, 1, len, stdout);
|
fwrite(buf, 1, len, stdout);
|
||||||
if (ferror(stdout))
|
if (ferror(stdout))
|
||||||
|
@ -379,6 +387,10 @@ void exec(char *uuid, int argc, char **cmdline, bool pty)
|
||||||
if (len < 0)
|
if (len < 0)
|
||||||
die("read failed");
|
die("read failed");
|
||||||
} else {
|
} else {
|
||||||
|
if (close(STDIN_FILENO) < 0)
|
||||||
|
die("close failed");
|
||||||
|
if (close(STDOUT_FILENO) < 0)
|
||||||
|
die("close failed");
|
||||||
char line[1024];
|
char line[1024];
|
||||||
char *ptr = line;
|
char *ptr = line;
|
||||||
int len;
|
int len;
|
||||||
|
|
Loading…
Reference in New Issue