| 23 |
#include "log.h" |
#include "log.h" |
| 24 |
#include "io.h" |
#include "io.h" |
| 25 |
#include "fork.h" |
#include "fork.h" |
|
#include "tcplib.h" |
|
| 26 |
#include "menu.h" |
#include "menu.h" |
| 27 |
|
#include <errno.h> |
| 28 |
|
#include <fcntl.h> |
| 29 |
|
#include <string.h> |
| 30 |
#include <signal.h> |
#include <signal.h> |
| 31 |
|
#include <stdlib.h> |
| 32 |
#include <unistd.h> |
#include <unistd.h> |
| 33 |
#include <sys/syscall.h> |
#include <sys/syscall.h> |
| 34 |
#include <sys/socket.h> |
#include <sys/socket.h> |
| 111 |
} |
} |
| 112 |
} |
} |
| 113 |
|
|
| 114 |
if (SYS_menu_reload) |
if (SYS_server_exit && SYS_child_exit_count == 0) |
| 115 |
|
{ |
| 116 |
|
if (kill(0, SIGTERM) < 0) |
| 117 |
|
{ |
| 118 |
|
log_error("Send SIGTERM signal failed (%d)\n", errno); |
| 119 |
|
} |
| 120 |
|
} |
| 121 |
|
|
| 122 |
|
if (SYS_menu_reload && !SYS_server_exit) |
| 123 |
{ |
{ |
| 124 |
if (reload_menu(&bbs_menu) < 0) |
if (reload_menu(&bbs_menu) < 0) |
| 125 |
{ |
{ |
| 136 |
|
|
| 137 |
FD_ZERO(&testfds); |
FD_ZERO(&testfds); |
| 138 |
FD_SET(socket_server, &testfds); |
FD_SET(socket_server, &testfds); |
| 139 |
|
|
| 140 |
timeout.tv_sec = 1; |
timeout.tv_sec = 0; |
| 141 |
timeout.tv_usec = 0; |
timeout.tv_usec = 100 * 1000; // 0.1 second |
| 142 |
|
|
| 143 |
ret = select(FD_SETSIZE, &testfds, NULL, NULL, &timeout); |
ret = select(FD_SETSIZE, &testfds, NULL, NULL, &timeout); |
| 144 |
|
|
| 145 |
if (ret < 0) |
if (ret < 0) |