--- lbbs/src/bbs_net.c 2025/05/15 08:53:23 1.43 +++ lbbs/src/bbs_net.c 2025/06/04 13:42:53 1.46 @@ -357,7 +357,7 @@ int bbsnet_connect(int n) else if (events[i].data.fd == STDIN_FILENO) { ch = igetch(0); - if (ch == Ctrl('C')) + if (ch == Ctrl('C') || ch == KEY_ESC) { goto cleanup; } @@ -385,7 +385,7 @@ int bbsnet_connect(int n) prints("\033[1;31mÁ¬½Ó³É¹¦£¡\033[m\r\n"); iflush(); - log_std("BBSNET connect to %s:%d\n", remote_addr, remote_port); + log_common("BBSNET connect to %s:%d\n", remote_addr, remote_port); ev.events = EPOLLIN | EPOLLOUT | EPOLLET; ev.data.fd = sock; @@ -456,7 +456,7 @@ int bbsnet_connect(int n) } else if (ret == 0) // broken pipe { - log_std("read(STDIN) EOF\n"); + log_common("read(STDIN) EOF\n"); stdin_read_wait = 0; loop = 0; break; @@ -496,7 +496,7 @@ int bbsnet_connect(int n) } else if (ret == 0) // broken pipe { - log_std("write(socket) EOF\n"); + log_common("write(socket) EOF\n"); sock_write_wait = 0; loop = 0; break; @@ -541,7 +541,7 @@ int bbsnet_connect(int n) } else if (ret == 0) // broken pipe { - log_std("read(socket) EOF\n"); + log_common("read(socket) EOF\n"); sock_read_wait = 0; loop = 0; break; @@ -580,7 +580,7 @@ int bbsnet_connect(int n) } else if (ret == 0) // broken pipe { - log_std("write(STDOUT) EOF\n"); + log_common("write(STDOUT) EOF\n"); stdout_write_wait = 0; loop = 0; break; @@ -622,7 +622,7 @@ cleanup: t_used = time(0) - t_used; tm_used = gmtime(&t_used); - log_std("BBSNET disconnect, %d days %d hours %d minutes %d seconds used\n", + log_common("BBSNET disconnect, %d days %d hours %d minutes %d seconds used\n", tm_used->tm_mday - 1, tm_used->tm_hour, tm_used->tm_min, tm_used->tm_sec); @@ -698,6 +698,7 @@ int bbs_net() switch (ch) { case KEY_NULL: // broken pipe + case KEY_ESC: case Ctrl('C'): // user cancel goto cleanup; case KEY_TIMEOUT: @@ -735,10 +736,16 @@ int bbs_net() menu_control(&bbsnet_menu, KEY_DOWN); bbsnet_selchange(); break; + case KEY_HOME: case KEY_PGUP: menu_control(&bbsnet_menu, KEY_PGUP); bbsnet_selchange(); break; + case KEY_END: + case KEY_PGDN: + menu_control(&bbsnet_menu, KEY_PGDN); + bbsnet_selchange(); + break; default: menu_control(&bbsnet_menu, ch); bbsnet_selchange();