/[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.2 by sysadm, Mon Mar 21 17:10:51 2005 UTC Revision 1.4 by sysadm, Mon Mar 21 17:52:09 2005 UTC
# Line 30  Line 30 
30  #include <unistd.h>  #include <unistd.h>
31  #include <netdb.h>  #include <netdb.h>
32    
33  #define TIME_OUT        15  #define TIME_OUT                15
34  #define MAX_PROCESS_BAR_LEN 30  #define MAX_PROCESS_BAR_LEN     30
35  #define MAXSTATION  26*2  #define MAXSTATION              26*2
36    #define STATION_PER_LINE        4
37    
38  struct _bbsnet_conf  struct _bbsnet_conf
39  {  {
# Line 81  load_bbsnet_conf (const char *file_confi Line 82  load_bbsnet_conf (const char *file_confi
82        bbsnet_conf[item_count].port = t4 ? atoi (t4) : 23;        bbsnet_conf[item_count].port = t4 ? atoi (t4) : 23;
83    
84        p_menuitem = p_menu->items[item_count] = malloc (sizeof (MENU_ITEM));        p_menuitem = p_menu->items[item_count] = malloc (sizeof (MENU_ITEM));
85        p_menuitem->row = 2 + item_count / 3;        p_menuitem->row = 2 + item_count / STATION_PER_LINE;
86        p_menuitem->col = 5 + item_count % 3 * 20;        p_menuitem->col = 5 + item_count % STATION_PER_LINE * 20;
87        sprintf (p_menuitem->action, "%d", item_count);        sprintf (p_menuitem->action, "%d", item_count);
88        p_menuitem->submenu = 0;        p_menuitem->submenu = 0;
89        p_menuitem->priv = 0;        p_menuitem->priv = 0;
# Line 92  load_bbsnet_conf (const char *file_confi Line 93  load_bbsnet_conf (const char *file_confi
93          (item_count < MAXSTATION / 2 ? 'A' + item_count : 'a' + item_count);          (item_count < MAXSTATION / 2 ? 'A' + item_count : 'a' + item_count);
94        p_menuitem->name[1] = '\0';        p_menuitem->name[1] = '\0';
95        sprintf (p_menuitem->text, "1;36m%c. %s",        sprintf (p_menuitem->text, "1;36m%c. %s",
96                 p_menuitem->name[0], bbsnet_conf[item_count].host2);                 p_menuitem->name[0], bbsnet_conf[item_count].host1);
97    
98        item_count++;        item_count++;
99      }      }
# Line 298  bbsnet_connect (int n) Line 299  bbsnet_connect (int n)
299    setsockopt (sock, IPPROTO_IP, IP_TOS, &tos, sizeof (int));    setsockopt (sock, IPPROTO_IP, IP_TOS, &tos, sizeof (int));
300    prints ("\033[1;31m连接成功!\033[m\n");    prints ("\033[1;31m连接成功!\033[m\n");
301    
 /*  
   if (connect (sock, (struct sockaddr *) &sin, sizeof (struct sockaddr)) < 0)  
     {  
       log_error ("Socket connect failed\n");  
       return -3;  
     }  
 */  
   
302    FD_ZERO (&inputs);    FD_ZERO (&inputs);
303    FD_SET (0, &inputs);    FD_SET (0, &inputs);
304    FD_SET (sock, &inputs);    FD_SET (sock, &inputs);
# Line 391  bbsnet_refresh () Line 384  bbsnet_refresh ()
384      ("╰══════════════════════════════════════╯");      ("╰══════════════════════════════════════╯");
385    moveto (23, 0);    moveto (23, 0);
386    prints    prints
387      (" [\x1b[1;32mCtrl+C\x1b[m]退出 [\x1b[1;32m^\x1b[m]第一个 [\x1b[1;32m$\x1b[m]最后一个\033[0;37m\033[m");      (" [\x1b[1;32mCtrl+C\x1b[m]退出");
388    iflush ();    iflush ();
389    
390    return 0;    return 0;
# Line 403  bbsnet_selchange (int new_pos) Line 396  bbsnet_selchange (int new_pos)
396    moveto (20, 0);    moveto (20, 0);
397    clrtoeol ();    clrtoeol ();
398    prints ("║\x1b[1m单位:\x1b[1;33m%-18s\x1b[m  站名:\x1b[1;33m%s\x1b[m",    prints ("║\x1b[1m单位:\x1b[1;33m%-18s\x1b[m  站名:\x1b[1;33m%s\x1b[m",
399            bbsnet_conf[new_pos].host1, bbsnet_conf[new_pos].host2);            bbsnet_conf[new_pos].host2, bbsnet_conf[new_pos].host1);
400    moveto (20, 79);    moveto (20, 79);
401    prints ("║");    prints ("║");
402    moveto (21, 0);    moveto (21, 0);
# Line 422  bbsnet_selchange (int new_pos) Line 415  bbsnet_selchange (int new_pos)
415  int  int
416  bbs_net ()  bbs_net ()
417  {  {
418    int ch, result, pos;    int ch, result, pos, i;
419    char file_config[256];    char file_config[256];
420    time_t t_last_action;    time_t t_last_action;
421    fd_set inputs, testfds;    fd_set inputs, testfds;
# Line 476  bbs_net () Line 469  bbs_net ()
469                    bbsnet_selchange (pos);                    bbsnet_selchange (pos);
470                    break;                    break;
471                  case KEY_UP:                  case KEY_UP:
472                    menu_control (&bbsnet_menu, KEY_UP);                    for (i = 0; i < STATION_PER_LINE; i++)
473                    menu_control (&bbsnet_menu, KEY_UP);                      menu_control (&bbsnet_menu, KEY_UP);
                   menu_control (&bbsnet_menu, KEY_UP);  
474                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;
475                    bbsnet_selchange (pos);                    bbsnet_selchange (pos);
476                    break;                    break;
477                  case KEY_DOWN:                  case KEY_DOWN:
478                    menu_control (&bbsnet_menu, KEY_DOWN);                    for (i = 0; i < STATION_PER_LINE; i++)
479                    menu_control (&bbsnet_menu, KEY_DOWN);                      menu_control (&bbsnet_menu, KEY_DOWN);
                   menu_control (&bbsnet_menu, KEY_DOWN);  
480                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;
481                    bbsnet_selchange (pos);                    bbsnet_selchange (pos);
482                    break;                    break;
# Line 499  bbs_net () Line 490  bbs_net ()
490                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;                    pos = bbsnet_menu.p_menu[0]->item_cur_pos;
491                    bbsnet_selchange (pos);                    bbsnet_selchange (pos);
492                    break;                    break;
                 case '^':  
                   pos = bbsnet_menu.p_menu[0]->item_cur_pos = 0;  
                   bbsnet_selchange (pos);  
                   break;  
                 case '$':  
                   pos = bbsnet_menu.p_menu[0]->item_cur_pos  
                     = bbsnet_menu.p_menu[0]->item_count - 1;  
                   if (pos < 0)  
                     pos = 0;  
                   bbsnet_selchange (pos);  
                   break;  
493                  default:                  default:
494                    break;                    break;
495                  }                  }


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

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