mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-29 21:37:08 +00:00
lib: close stdin/out/err in non-terminal case
Oops, forgot this path... in the --terminal case, stdio is closed when the user ends the terminal session, but without terminal it was left open. (This caused a ssh session hang in the CentOS6 CI because the file descriptors were still open, so ssh would keep the session alive...) Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
27e295b591
commit
c9c8d0d189
11
lib/libfrr.c
11
lib/libfrr.c
@ -688,8 +688,15 @@ void frr_run(struct thread_master *master)
|
||||
thread_add_read(master, frr_daemon_ctl, NULL,
|
||||
daemon_ctl_sock, &daemon_ctl_thread);
|
||||
}
|
||||
} else if (daemon_ctl_sock != -1) {
|
||||
close(daemon_ctl_sock);
|
||||
} else {
|
||||
int nullfd = open("/dev/null", O_RDONLY | O_NOCTTY);
|
||||
dup2(nullfd, 0);
|
||||
dup2(nullfd, 1);
|
||||
dup2(nullfd, 2);
|
||||
close(nullfd);
|
||||
|
||||
if (daemon_ctl_sock != -1)
|
||||
close(daemon_ctl_sock);
|
||||
daemon_ctl_sock = -1;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user