| 56 |
|
|
| 57 |
static PROCESS_SOCKADDR process_sockaddr_pool[MAX_CLIENT_LIMIT]; |
static PROCESS_SOCKADDR process_sockaddr_pool[MAX_CLIENT_LIMIT]; |
| 58 |
|
|
| 59 |
#define SSH_AUTH_MAX_DURATION 60 // seconds |
#define SSH_AUTH_MAX_DURATION (60 * 1000) // milliseconds |
| 60 |
|
|
| 61 |
struct ssl_server_cb_data_t |
struct ssl_server_cb_data_t |
| 62 |
{ |
{ |
| 185 |
event = ssh_event_new(); |
event = ssh_event_new(); |
| 186 |
ssh_event_add_session(event, SSH_session); |
ssh_event_add_session(event, SSH_session); |
| 187 |
|
|
| 188 |
for (i = 0; i < SSH_AUTH_MAX_DURATION && !SYS_server_exit && !cb_data.error && SSH_channel == NULL; i++) |
for (i = 0; i < SSH_AUTH_MAX_DURATION && !SYS_server_exit && !cb_data.error && SSH_channel == NULL; i += 100) |
| 189 |
{ |
{ |
| 190 |
ret = ssh_event_dopoll(event, 1000); // 1 second |
ret = ssh_event_dopoll(event, 100); // 0.1 second |
| 191 |
if (ret == SSH_ERROR) |
if (ret == SSH_ERROR) |
| 192 |
{ |
{ |
| 193 |
log_error("ssh_event_dopoll() error: %s\n", ssh_get_error(SSH_session)); |
log_error("ssh_event_dopoll() error: %s\n", ssh_get_error(SSH_session)); |
| 354 |
{ |
{ |
| 355 |
if (SYS_server_exit && !sd_notify_stopping) |
if (SYS_server_exit && !sd_notify_stopping) |
| 356 |
{ |
{ |
| 357 |
|
signal(SIGHUP, SIG_IGN); |
| 358 |
|
|
| 359 |
sd_notify(0, "STOPPING=1"); |
sd_notify(0, "STOPPING=1"); |
| 360 |
sd_notify_stopping = 1; |
sd_notify_stopping = 1; |
| 361 |
} |
} |