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

Annotation of /lbbs/src/bbs_main.c

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.29 - (hide annotations)
Sat May 7 12:08:28 2005 UTC (20 years, 10 months ago) by sysadm
Branch: MAIN
Changes since 1.28: +1 -1 lines
Content type: text/x-csrc
*** empty log message ***

1 sysadm 1.1 /***************************************************************************
2 sysadm 1.7 bbs_main.c - description
3 sysadm 1.1 -------------------
4     begin : Mon Oct 18 2004
5 sysadm 1.2 copyright : (C) 2004 by Leaflet
6 sysadm 1.1 email : leaflet@leafok.com
7     ***************************************************************************/
8    
9     /***************************************************************************
10     * *
11     * This program is free software; you can redistribute it and/or modify *
12     * it under the terms of the GNU General Public License as published by *
13     * the Free Software Foundation; either version 2 of the License, or *
14     * (at your option) any later version. *
15     * *
16     ***************************************************************************/
17    
18 sysadm 1.3 #include "bbs.h"
19 sysadm 1.1 #include "common.h"
20 sysadm 1.7 #include "io.h"
21 sysadm 1.16 #include "menu.h"
22 sysadm 1.23 #include "bbs_cmd.h"
23 sysadm 1.16 #include <time.h>
24 sysadm 1.19 #include <string.h>
25 sysadm 1.16
26 sysadm 1.1 int
27 sysadm 1.16 bbs_main ()
28 sysadm 1.1 {
29 sysadm 1.8 char temp[256];
30 sysadm 1.6 int ret;
31 sysadm 1.13
32 sysadm 1.16 set_input_echo (0);
33    
34     bbs_info ();
35 sysadm 1.10
36 sysadm 1.8 //Welcome
37 sysadm 1.16 bbs_welcome ();
38 sysadm 1.6
39 sysadm 1.8 //Login
40 sysadm 1.16 ret = bbs_login ();
41 sysadm 1.6 if (ret < 0)
42     return -1;
43 sysadm 1.26 log_std ("User \"%s\"(%ld) login from %s:%d\n",
44 sysadm 1.27 BBS_username, BBS_priv.uid, hostaddr_client, port_client);
45 sysadm 1.16 clearscr ();
46    
47 sysadm 1.9 //BBS Top 10
48 sysadm 1.8 strcpy (temp, app_home_dir);
49     strcat (temp, "data/bbs_top.txt");
50 sysadm 1.12 display_file_ex (temp, 1, 1);
51 sysadm 1.8
52     //Main
53 sysadm 1.16 bbs_center ();
54 sysadm 1.7
55 sysadm 1.8 //Logout
56 sysadm 1.16 bbs_exit ();
57 sysadm 1.26 log_std ("User logout\n");
58 sysadm 1.4
59     return 0;
60 sysadm 1.1 }
61 sysadm 1.5
62     int
63 sysadm 1.16 bbs_info ()
64 sysadm 1.5 {
65 sysadm 1.28 prints ("��ӭ���� \033[1;33m%s \033[32m[%s] \033[37m( %s )\r\n",
66 sysadm 1.16 BBS_name, BBS_server, app_version);
67    
68     iflush ();
69 sysadm 1.5
70     return 0;
71     }
72    
73     int
74 sysadm 1.16 bbs_exit ()
75 sysadm 1.5 {
76 sysadm 1.10 char temp[256];
77 sysadm 1.16
78 sysadm 1.10 strcpy (temp, app_home_dir);
79     strcat (temp, "data/goodbye.txt");
80 sysadm 1.12 display_file_ex (temp, 1, 0);
81 sysadm 1.7
82 sysadm 1.16 sleep (1);
83    
84 sysadm 1.7 return 0;
85     }
86    
87     int
88 sysadm 1.16 bbs_center ()
89 sysadm 1.7 {
90 sysadm 1.25 int ch, result, redraw;
91 sysadm 1.28 char temp[256];
92 sysadm 1.16 time_t t_last_action;
93    
94 sysadm 1.25 BBS_last_access_tm = t_last_action = time (0);
95 sysadm 1.16
96 sysadm 1.15 clearscr ();
97 sysadm 1.12
98 sysadm 1.18 show_top ("");
99 sysadm 1.16 show_active_board ();
100 sysadm 1.23 show_bottom ("");
101 sysadm 1.19 display_menu (get_menu (&bbs_menu, "TOPMENU"));
102 sysadm 1.16
103 sysadm 1.29 while (!SYS_exit)
104 sysadm 1.16 {
105 sysadm 1.25 ch = igetch ();
106 sysadm 1.16
107 sysadm 1.25 if (time (0) - t_last_action >= 10)
108     {
109     t_last_action = time (0);
110     show_active_board ();
111     show_bottom ("");
112     }
113 sysadm 1.16
114 sysadm 1.25 switch (ch)
115 sysadm 1.16 {
116 sysadm 1.25 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 sysadm 1.16 default:
125 sysadm 1.25 redraw = 1;
126 sysadm 1.28 switch (menu_control (&bbs_menu, ch))
127 sysadm 1.16 {
128 sysadm 1.25 case EXITBBS:
129     return 0;
130 sysadm 1.28 case REDRAW:
131 sysadm 1.25 break;
132 sysadm 1.28 case NOREDRAW:
133 sysadm 1.25 case UNKNOWN_CMD:
134     default:
135     redraw = 0;
136     break;
137     }
138     if (redraw)
139     {
140 sysadm 1.27 clearscr ();
141 sysadm 1.25 show_top ("");
142     show_active_board ();
143     show_bottom ("");
144     display_current_menu (&bbs_menu);
145 sysadm 1.16 }
146     }
147 sysadm 1.25 BBS_last_access_tm = time (0);
148 sysadm 1.16 }
149 sysadm 1.7
150 sysadm 1.15 return 0;
151     }

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