--- lbbs/src/net_server.c 2025/11/17 09:42:52 1.90 +++ lbbs/src/net_server.c 2025/11/18 12:12:52 1.92 @@ -641,13 +641,24 @@ int net_server(const char *hostaddr, in_ { SYS_child_exit = 0; - pid = waitpid(-1, NULL, WNOHANG); + pid = waitpid(-1, &ret, WNOHANG); if (pid > 0) { SYS_child_exit = 1; // Retry waitid - SYS_child_process_count--; - log_common("Child process (%d) exited\n", pid); + + if (WIFEXITED(ret)) + { + log_common("Child process (%d) exited, status=%d\n", pid, WEXITSTATUS(ret)); + } + else if (WIFSIGNALED(ret)) + { + log_common("Child process (%d) is killed, status=%d\n", pid, WTERMSIG(ret)); + } + else + { + log_common("Child process (%d) exited abnormally, status=%d\n", pid, ret); + } if (pid != section_list_loader_pid) { @@ -851,7 +862,7 @@ int net_server(const char *hostaddr, in_ while (!SYS_server_exit) // Accept all incoming connections until error { addrlen = sizeof(sin); - socket_client = accept(socket_server[SSH_v2], (struct sockaddr *)&sin, &addrlen); + socket_client = accept(socket_server[SSH_v2], (struct sockaddr *)&sin, (socklen_t *)&addrlen); if (socket_client < 0) { if (errno == EAGAIN || errno == EWOULDBLOCK)