Abort if fd_set_nonblock() fails
Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
This commit is contained in:
20
src/bind.c
20
src/bind.c
@@ -18,13 +18,13 @@
|
|||||||
#define O_CLOEXEC 0
|
#define O_CLOEXEC 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static int
|
||||||
fd_set_nonblock(int fd)
|
fd_set_nonblock(int fd)
|
||||||
{
|
{
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
return;
|
return 0;
|
||||||
|
|
||||||
|
int ret;
|
||||||
|
|
||||||
do {
|
do {
|
||||||
ret = fcntl(fd, F_GETFL, 0);
|
ret = fcntl(fd, F_GETFL, 0);
|
||||||
@@ -36,8 +36,7 @@ fd_set_nonblock(int fd)
|
|||||||
ret = fcntl(fd, F_SETFL, flags | O_NONBLOCK);
|
ret = fcntl(fd, F_SETFL, flags | O_NONBLOCK);
|
||||||
} while (ret == -1 && errno == EINTR);
|
} while (ret == -1 && errno == EINTR);
|
||||||
|
|
||||||
if (ret == -1)
|
return ret;
|
||||||
perror("fcntl O_NONBLOCK");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
@@ -191,9 +190,12 @@ gt_bind(int argc, char **argv)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
fd_set_nonblock(tun_fd);
|
if (fd_set_nonblock(tun_fd) ||
|
||||||
fd_set_nonblock(mud_fd);
|
fd_set_nonblock(mud_fd) ||
|
||||||
fd_set_nonblock(ctl_fd);
|
fd_set_nonblock(ctl_fd)) {
|
||||||
|
gt_log("couldn't setup non-blocking fds\n");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
const long pid = (long)getpid();
|
const long pid = (long)getpid();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user