/[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.64 by sysadm, Thu Jun 5 05:24:56 2025 UTC Revision 1.65 by sysadm, Sat Jun 7 08:33:08 2025 UTC
# Line 40  int bbs_info() Line 40  int bbs_info()
40          return iflush();          return iflush();
41  }  }
42    
43  int bbs_welcome(MYSQL *db)  int bbs_welcome(void)
44  {  {
45          char sql[SQL_BUFFER_LEN];          char sql[SQL_BUFFER_LEN];
46    
# Line 50  int bbs_welcome(MYSQL *db) Line 50  int bbs_welcome(MYSQL *db)
50          u_int32_t max_u_online = 0;          u_int32_t max_u_online = 0;
51          u_int32_t u_login_count = 0;          u_int32_t u_login_count = 0;
52    
53            MYSQL *db;
54          MYSQL_RES *rs;          MYSQL_RES *rs;
55          MYSQL_ROW row;          MYSQL_ROW row;
56    
57            db = db_open();
58            if (db == NULL)
59            {
60                    return -1;
61            }
62    
63          snprintf(sql, sizeof(sql),          snprintf(sql, sizeof(sql),
64                           "SELECT COUNT(*) AS cc FROM "                           "SELECT COUNT(*) AS cc FROM "
65                           "(SELECT DISTINCT SID FROM user_online "                           "(SELECT DISTINCT SID FROM user_online "
# Line 61  int bbs_welcome(MYSQL *db) Line 68  int bbs_welcome(MYSQL *db)
68          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
69          {          {
70                  log_error("Query user_online error: %s\n", mysql_error(db));                  log_error("Query user_online error: %s\n", mysql_error(db));
71                    mysql_close(db);
72                  return -2;                  return -2;
73          }          }
74          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
75          {          {
76                  log_error("Get user_online data failed\n");                  log_error("Get user_online data failed\n");
77                    mysql_close(db);
78                  return -2;                  return -2;
79          }          }
80          if ((row = mysql_fetch_row(rs)))          if ((row = mysql_fetch_row(rs)))
# Line 82  int bbs_welcome(MYSQL *db) Line 91  int bbs_welcome(MYSQL *db)
91          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
92          {          {
93                  log_error("Query user_online error: %s\n", mysql_error(db));                  log_error("Query user_online error: %s\n", mysql_error(db));
94                    mysql_close(db);
95                  return -2;                  return -2;
96          }          }
97          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
98          {          {
99                  log_error("Get user_online data failed\n");                  log_error("Get user_online data failed\n");
100                    mysql_close(db);
101                  return -2;                  return -2;
102          }          }
103          if ((row = mysql_fetch_row(rs)))          if ((row = mysql_fetch_row(rs)))
# Line 99  int bbs_welcome(MYSQL *db) Line 110  int bbs_welcome(MYSQL *db)
110          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
111          {          {
112                  log_error("Query user_list error: %s\n", mysql_error(db));                  log_error("Query user_list error: %s\n", mysql_error(db));
113                    mysql_close(db);
114                  return -2;                  return -2;
115          }          }
116          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
117          {          {
118                  log_error("Get user_list data failed\n");                  log_error("Get user_list data failed\n");
119                    mysql_close(db);
120                  return -2;                  return -2;
121          }          }
122          if ((row = mysql_fetch_row(rs)))          if ((row = mysql_fetch_row(rs)))
# Line 116  int bbs_welcome(MYSQL *db) Line 129  int bbs_welcome(MYSQL *db)
129          if (mysql_query(db, sql) != 0)          if (mysql_query(db, sql) != 0)
130          {          {
131                  log_error("Query user_login_log error: %s\n", mysql_error(db));                  log_error("Query user_login_log error: %s\n", mysql_error(db));
132                    mysql_close(db);
133                  return -2;                  return -2;
134          }          }
135          if ((rs = mysql_store_result(db)) == NULL)          if ((rs = mysql_store_result(db)) == NULL)
136          {          {
137                  log_error("Get user_login_log data failed\n");                  log_error("Get user_login_log data failed\n");
138                    mysql_close(db);
139                  return -2;                  return -2;
140          }          }
141          if ((row = mysql_fetch_row(rs)))          if ((row = mysql_fetch_row(rs)))
# Line 129  int bbs_welcome(MYSQL *db) Line 144  int bbs_welcome(MYSQL *db)
144          }          }
145          mysql_free_result(rs);          mysql_free_result(rs);
146    
147            mysql_close(db);
148    
149          // Log max user_online          // Log max user_online
150          FILE *fin, *fout;          FILE *fin, *fout;
151          if ((fin = fopen(VAR_MAX_USER_ONLINE, "r")) != NULL)          if ((fin = fopen(VAR_MAX_USER_ONLINE, "r")) != NULL)
# Line 170  int bbs_welcome(MYSQL *db) Line 187  int bbs_welcome(MYSQL *db)
187          return 0;          return 0;
188  }  }
189    
190  int bbs_logout(MYSQL *db)  int bbs_logout(void)
191  {  {
192          if (user_online_del(db) < 0)          MYSQL *db;
193    
194            db = db_open();
195            if (db == NULL)
196          {          {
197                  return -1;                  return -1;
198          }          }
199    
200            if (user_online_del(db) < 0)
201            {
202                    return -2;
203            }
204    
205            mysql_close(db);
206    
207          display_file(DATA_GOODBYE, 1, 1);          display_file(DATA_GOODBYE, 1, 1);
208    
209          log_common("User logout\n");          log_common("User logout\n");
# Line 254  int bbs_center() Line 281  int bbs_center()
281    
282  int bbs_main()  int bbs_main()
283  {  {
         MYSQL *db = NULL;  
   
284          // Set data pools in shared memory readonly          // Set data pools in shared memory readonly
285          if (set_trie_dict_shm_readonly() < 0)          if (set_trie_dict_shm_readonly() < 0)
286          {          {
# Line 284  int bbs_main() Line 309  int bbs_main()
309                  goto cleanup;                  goto cleanup;
310          }          }
311    
         db = db_open();  
         if (db == NULL)  
         {  
                 prints("无法连接数据库\n");  
                 goto cleanup;  
         }  
   
312          // Welcome          // Welcome
313          if (bbs_welcome(db) < 0)          if (bbs_welcome() < 0)
314          {          {
315                  goto cleanup;                  goto cleanup;
316          }          }
# Line 304  int bbs_main() Line 322  int bbs_main()
322                  iflush();                  iflush();
323                  igetch_t(MAX_DELAY_TIME);                  igetch_t(MAX_DELAY_TIME);
324          }          }
325          else if (bbs_login(db) < 0)          else if (bbs_login() < 0)
326          {          {
327                  goto cleanup;                  goto cleanup;
328          }          }
329    
330            // Load article_view_log
331    
332          clearscr();          clearscr();
333    
334          // BBS Top 10          // BBS Top 10
# Line 318  int bbs_main() Line 338  int bbs_main()
338          bbs_center();          bbs_center();
339    
340          // Logout          // Logout
341          bbs_logout(db);          bbs_logout();
342    
343  cleanup:  cleanup:
         if (db != NULL)  
         {  
                 mysql_close(db);  
         }  
   
344          // Detach menu in shared memory          // Detach menu in shared memory
345          detach_menu_shm(p_bbs_menu);          detach_menu_shm(p_bbs_menu);
346          free(p_bbs_menu);          free(p_bbs_menu);


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

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