/[LeafOK_CVS]/lbbs/src/bbs_net.c
ViewVC logotype

Diff of /lbbs/src/bbs_net.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 1.62 by sysadm, Wed Oct 8 03:34:52 2025 UTC Revision 1.65 by sysadm, Fri Oct 17 01:25:08 2025 UTC
# Line 293  int bbsnet_connect(int n) Line 293  int bbsnet_connect(int n)
293          int tos;          int tos;
294          char remote_addr[IP_ADDR_LEN];          char remote_addr[IP_ADDR_LEN];
295          int remote_port;          int remote_port;
296            char local_addr[IP_ADDR_LEN];
297            int local_port;
298            socklen_t sock_len;
299          time_t t_used = time(NULL);          time_t t_used = time(NULL);
300          struct tm *tm_used;          struct tm *tm_used;
301          int ch;          int ch;
# Line 472  int bbsnet_connect(int n) Line 475  int bbsnet_connect(int n)
475                  log_error("setsockopt IP_TOS=%d error (%d)\n", tos, errno);                  log_error("setsockopt IP_TOS=%d error (%d)\n", tos, errno);
476          }          }
477    
478            sock_len = sizeof(sin);
479            if (getsockname(sock, (struct sockaddr *)&sin, &sock_len) < 0)
480            {
481                    log_error("getsockname() error: %d", errno);
482                    goto cleanup;
483            }
484    
485            strncpy(local_addr, inet_ntoa(sin.sin_addr), sizeof(local_addr) - 1);
486            local_addr[sizeof(local_addr) - 1] = '\0';
487            local_port = ntohs(sin.sin_port);
488    
489          prints("\033[1;31m连接成功!\033[m\r\n");          prints("\033[1;31m连接成功!\033[m\r\n");
490          iflush();          iflush();
491          log_common("BBSNET connect to %s:%d\n", remote_addr, remote_port);          log_common("BBSNET connect to %s:%d from %s:%d by [%s]\n",
492                               remote_addr, remote_port, local_addr, local_port, BBS_username);
493    
494          input_cd = iconv_open(bbsnet_conf[n].charset, BBS_NET_DEFAULT_CHARSET);          input_cd = iconv_open(bbsnet_conf[n].charset, BBS_NET_DEFAULT_CHARSET);
495          if (input_cd == (iconv_t)(-1))          if (input_cd == (iconv_t)(-1))
# Line 885  int bbs_net() Line 900  int bbs_net()
900    
901          load_bbsnet_conf(CONF_BBSNET);          load_bbsnet_conf(CONF_BBSNET);
902    
         BBS_last_access_tm = time(NULL);  
   
903          clearscr();          clearscr();
904          bbsnet_refresh();          bbsnet_refresh();
905          display_menu(&bbsnet_menu);          display_menu(&bbsnet_menu);
# Line 896  int bbs_net() Line 909  int bbs_net()
909          {          {
910                  ch = igetch(100);                  ch = igetch(100);
911    
912            if (ch != KEY_NULL && ch != KEY_TIMEOUT)
913            {
914                BBS_last_access_tm = time(NULL);
915            }
916    
917                  switch (ch)                  switch (ch)
918                  {                  {
919                  case KEY_NULL: // broken pipe                  case KEY_NULL: // broken pipe
920                  case KEY_ESC:                          log_error("KEY_NULL\n");
                 case Ctrl('C'): // user cancel  
921                          goto cleanup;                          goto cleanup;
922                  case KEY_TIMEOUT:                  case KEY_TIMEOUT:
923                          if (time(NULL) - BBS_last_access_tm >= MAX_DELAY_TIME)                          if (time(NULL) - BBS_last_access_tm >= MAX_DELAY_TIME)
924                          {                          {
925                                    log_error("User input timeout\n");
926                                  goto cleanup;                                  goto cleanup;
927                          }                          }
928                          continue;                          continue;
929                    case KEY_ESC:
930                    case Ctrl('C'): // user cancel
931                            goto cleanup;
932                  case CR:                  case CR:
                         igetch_reset();  
933                          bbsnet_connect(bbsnet_menu.menu_item_pos[0]);                          bbsnet_connect(bbsnet_menu.menu_item_pos[0]);
934                          bbsnet_refresh();                          bbsnet_refresh();
935                          display_menu(&bbsnet_menu);                          display_menu(&bbsnet_menu);
# Line 952  int bbs_net() Line 972  int bbs_net()
972                          bbsnet_selchange();                          bbsnet_selchange();
973                          break;                          break;
974                  }                  }
                 BBS_last_access_tm = time(NULL);  
975          }          }
976    
977  cleanup:  cleanup:


Legend:
Removed lines/characters  
Changed lines/characters
  Added lines/characters

webmaster@leafok.com
ViewVC Help
Powered by ViewVC 1.3.0-beta1