--- lbbs/src/bbs_net.c 2025/12/18 08:20:14 1.98 +++ lbbs/src/bbs_net.c 2025/12/18 11:18:29 1.103 @@ -531,9 +531,9 @@ static int bbsnet_connect(int n) } ts_now = ts_begin; - while ((ts_now.tv_sec - ts_begin.tv_sec) + - (ts_now.tv_nsec - ts_begin.tv_nsec) / 1000 / 1000 / 1000 < - REMOTE_CONNECT_TIMEOUT && + while ((ts_now.tv_sec - ts_begin.tv_sec) * 1000 + + (ts_now.tv_nsec - ts_begin.tv_nsec) / 1000 / 1000 < + REMOTE_CONNECT_TIMEOUT * 1000 && !sock_connected && !SYS_server_exit) { #ifdef HAVE_SYS_EPOLL_H @@ -573,6 +573,14 @@ static int bbsnet_connect(int n) (ts_now.tv_nsec - ts_begin.tv_nsec) / 1000 / 1000) / REMOTE_CONNECT_TIMEOUT / 10 + 1; + if (progress < 0) + { + progress = 0; + } + if (progress > 100) + { + progress = 100; + } if (progress > progress_last) { @@ -956,6 +964,7 @@ static int bbsnet_connect(int n) { if (time(NULL) - BBS_last_access_tm >= BBS_max_user_idle_time) { + log_debug("User input timeout\n"); break; } } @@ -1313,7 +1322,7 @@ static int bbsnet_connect(int n) ret = 1; // Normal disconnect BBS_last_access_tm = time(NULL); t_used = BBS_last_access_tm - t_begin; - log_common("BBSNET disconnect, %jd days %jd hours %jd minutes %jd seconds used\n", + log_common("BBSNET disconnect, %ld days %ld hours %ld minutes %ld seconds used\n", t_used / 86400, t_used % 86400 / 3600, t_used % 3600 / 60, t_used % 60); cleanup: @@ -1364,7 +1373,7 @@ cleanup: if (sock != -1 && close(sock) == -1) { - log_error("Close socket failed\n"); + log_error("close(socket) error (%d)\n", errno); } if (res) @@ -1457,7 +1466,7 @@ int bbs_net() case KEY_TIMEOUT: if (time(NULL) - BBS_last_access_tm >= BBS_max_user_idle_time) { - log_error("User input timeout\n"); + log_debug("User input timeout\n"); goto cleanup; } continue;