--- lbbs/src/net_server.c 2025/12/01 14:01:36 1.99 +++ lbbs/src/net_server.c 2025/12/02 12:31:20 1.102 @@ -40,6 +40,7 @@ #include #include #include +#include #include #include @@ -114,6 +115,11 @@ static int auth_password(ssh_session ses else { ret = check_user(user, password); + if (ret == 2) // Enforce update user agreement + { + BBS_update_eula = 1; + ret = 0; + } } if (ret == 0) @@ -509,6 +515,7 @@ cleanup: int net_server(const char *hostaddr, in_port_t port[]) { + struct stat file_stat; unsigned int addrlen; int ret; int flags_server[2]; @@ -803,6 +810,16 @@ int net_server(const char *hostaddr, in_ log_error("Reload BWF conf failed\n"); } + // Get EULA modification tm + if (stat(DATA_EULA, &file_stat) == -1) + { + log_error("stat(%s) error\n", DATA_EULA, errno); + } + else + { + BBS_eula_tm = file_stat.st_mtim.tv_sec; + } + if (detach_menu_shm(&bbs_menu) < 0) { log_error("detach_menu_shm(bbs_menu) error\n"); @@ -822,6 +839,7 @@ int net_server(const char *hostaddr, in_ log_error("load_menu(top10_menu) error\n"); unload_menu(&top10_menu); } + top10_menu.allow_exit = 1; for (int i = 0; i < data_files_load_startup_count; i++) {