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

Diff of /lbbs/src/bbs_main.c

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

Revision 1.24 by sysadm, Mon Mar 21 17:08:21 2005 UTC Revision 1.26 by sysadm, Tue Mar 22 08:59:31 2005 UTC
# Line 21  Line 21 
21  #include "menu.h"  #include "menu.h"
22  #include "bbs_cmd.h"  #include "bbs_cmd.h"
23  #include <time.h>  #include <time.h>
 #include <fcntl.h>  
 #include <unistd.h>  
24  #include <string.h>  #include <string.h>
25    
26  int  int
# Line 42  bbs_main () Line 40  bbs_main ()
40    ret = bbs_login ();    ret = bbs_login ();
41    if (ret < 0)    if (ret < 0)
42      return -1;      return -1;
43      log_std ("User \"%s\"(%ld) login from %s:%d\n",
44        BBS_username, BBS_priv.uid, hostaddr_client, port_client);
45    clearscr ();    clearscr ();
46    
47    //BBS Top 10    //BBS Top 10
# Line 54  bbs_main () Line 54  bbs_main ()
54    
55    //Logout    //Logout
56    bbs_exit ();    bbs_exit ();
57      log_std ("User logout\n");
58    
59    return 0;    return 0;
60  }  }
# Line 86  bbs_exit () Line 87  bbs_exit ()
87  int  int
88  bbs_center ()  bbs_center ()
89  {  {
90    int ch, result;    int ch, result, redraw;
91    char action[MAX_MENUACTION_LENGTH];    char action[MAX_MENUACTION_LENGTH], temp[256];
92    time_t t_last_action;    time_t t_last_action;
   fd_set inputs, testfds;  
   struct timeval timeout;  
93    
94    FD_ZERO (&inputs);    BBS_last_access_tm = t_last_action = time (0);
   FD_SET (0, &inputs);  
   
   t_last_action = time (0);  
95    
96    clearscr ();    clearscr ();
97    
# Line 106  bbs_center () Line 102  bbs_center ()
102    
103    while (1)    while (1)
104      {      {
105        testfds = inputs;        ch = igetch ();
       timeout.tv_sec = 0;  
       timeout.tv_usec = 100000;  
   
       result = select (FD_SETSIZE, &testfds, (fd_set *) NULL,  
                        (fd_set *) NULL, &timeout);  
106    
       switch (result)  
         {  
         case 0:  
           break;  
         case -1:  
           log_error ("select() error!\n");  
           break;  
         default:  
           if (FD_ISSET (0, &testfds))  
             {  
               ch = igetch ();  
   
               switch (ch)  
                 {  
                 case KEY_NULL:  
                   return 0;  
                 default:  
                   strcpy (action, menu_control (&bbs_menu, ch));  
                   switch (get_cmd_value (action))  
                     {  
                     case EXITBBS:  
                       return 0;  
                     case BBSNET:  
                       bbs_net ();  
                       clearscr ();  
                       show_top ("");  
                       show_active_board ();  
                       show_bottom ("");  
                       display_current_menu (&bbs_menu);  
                       break;  
                     case UNKNOWN_CMD:  
                       break;  
                     }  
                 }  
             }  
           break;  
         }  
107        if (time (0) - t_last_action >= 10)        if (time (0) - t_last_action >= 10)
108          {          {
109            t_last_action = time (0);            t_last_action = time (0);
110            show_active_board ();            show_active_board ();
111            show_bottom ("");            show_bottom ("");
112          }          }
113    
114          switch (ch)
115            {
116            case KEY_NULL:
117              return 0;
118            case KEY_TIMEOUT:
119              if (time (0) - BBS_last_access_tm >= MAX_DELAY_TIME)
120                {
121                  return -1;
122                }
123              continue;
124            default:
125              strcpy (action, menu_control (&bbs_menu, ch));
126              redraw = 1;
127              switch (get_cmd_value (action))
128                {
129                case EXITBBS:
130                  return 0;
131                case BBSNET:
132                  bbs_net ();
133                  break;
134                case LICENSE:
135                  strcpy (temp, app_home_dir);
136                  strcat (temp, "data/license.txt");
137                  display_file_ex (temp, 0, 1);
138                  break;
139                case COPYRIGHT:
140                  strcpy (temp, app_home_dir);
141                  strcat (temp, "data/copyright.txt");
142                  display_file_ex (temp, 0, 1);
143                  break;
144                case UNKNOWN_CMD:
145                default:
146                  redraw = 0;
147                  break;
148                }
149              if (redraw)
150                {
151                  clearscr ();
152                  show_top ("");
153                  show_active_board ();
154                  show_bottom ("");
155                  display_current_menu (&bbs_menu);
156                }
157            }
158          BBS_last_access_tm = time (0);
159      }      }
160    
161    return 0;    return 0;


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

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