|
Lines 155-160
char **rexec_argv;
Link Here
|
| 155 |
int listen_socks[MAX_LISTEN_SOCKS]; |
155 |
int listen_socks[MAX_LISTEN_SOCKS]; |
| 156 |
int num_listen_socks = 0; |
156 |
int num_listen_socks = 0; |
| 157 |
|
157 |
|
|
|
158 |
/* Original signal set, unblocked during pselect and in child */ |
| 159 |
sigset_t orig_sigset; |
| 160 |
|
| 158 |
/* |
161 |
/* |
| 159 |
* the client's version string, passed by sshd2 in compat mode. if != NULL, |
162 |
* the client's version string, passed by sshd2 in compat mode. if != NULL, |
| 160 |
* sshd will skip the version-number exchange |
163 |
* sshd will skip the version-number exchange |
|
Lines 1073-1079
server_accept_loop(int *sock_in, int *so
Link Here
|
| 1073 |
FD_SET(startup_pipes[i], fdset); |
1076 |
FD_SET(startup_pipes[i], fdset); |
| 1074 |
|
1077 |
|
| 1075 |
/* Wait in select until there is a connection. */ |
1078 |
/* Wait in select until there is a connection. */ |
| 1076 |
ret = select(maxfd+1, fdset, NULL, NULL, NULL); |
1079 |
ret = pselect(maxfd+1, fdset, NULL, NULL, NULL, &orig_sigset); |
| 1077 |
if (ret < 0 && errno != EINTR) |
1080 |
if (ret < 0 && errno != EINTR) |
| 1078 |
error("select: %.100s", strerror(errno)); |
1081 |
error("select: %.100s", strerror(errno)); |
| 1079 |
if (received_sigterm) { |
1082 |
if (received_sigterm) { |
|
Lines 1705-1712
main(int ac, char **av)
Link Here
|
| 1705 |
if (inetd_flag) { |
1708 |
if (inetd_flag) { |
| 1706 |
server_accept_inetd(&sock_in, &sock_out); |
1709 |
server_accept_inetd(&sock_in, &sock_out); |
| 1707 |
} else { |
1710 |
} else { |
|
|
1711 |
sigset_t sigset; |
| 1712 |
|
| 1708 |
server_listen(); |
1713 |
server_listen(); |
| 1709 |
|
1714 |
|
|
|
1715 |
sigemptyset(&sigset); |
| 1716 |
sigaddset(&sigset, SIGHUP); |
| 1717 |
sigaddset(&sigset, SIGTERM); |
| 1718 |
sigaddset(&sigset, SIGQUIT); |
| 1719 |
if (sigprocmask(SIG_BLOCK, &sigset, &orig_sigset) == -1) |
| 1720 |
error("sigprocmask block: %s", strerror(errno)); |
| 1721 |
|
| 1710 |
signal(SIGHUP, sighup_handler); |
1722 |
signal(SIGHUP, sighup_handler); |
| 1711 |
signal(SIGCHLD, main_sigchld_handler); |
1723 |
signal(SIGCHLD, main_sigchld_handler); |
| 1712 |
signal(SIGTERM, sigterm_handler); |
1724 |
signal(SIGTERM, sigterm_handler); |
|
Lines 1798-1803
main(int ac, char **av)
Link Here
|
| 1798 |
signal(SIGTERM, SIG_DFL); |
1810 |
signal(SIGTERM, SIG_DFL); |
| 1799 |
signal(SIGQUIT, SIG_DFL); |
1811 |
signal(SIGQUIT, SIG_DFL); |
| 1800 |
signal(SIGCHLD, SIG_DFL); |
1812 |
signal(SIGCHLD, SIG_DFL); |
|
|
1813 |
if (sigprocmask(SIG_UNBLOCK, &orig_sigset, NULL) == -1) |
| 1814 |
error("sigprocmask unblock: %s", strerror(errno)); |
| 1801 |
|
1815 |
|
| 1802 |
/* |
1816 |
/* |
| 1803 |
* Register our connection. This turns encryption off because we do |
1817 |
* Register our connection. This turns encryption off because we do |