--- lbbs/include/bbs.h 2004/10/22 15:20:32 1.2 +++ lbbs/include/bbs.h 2026/01/03 10:27:14 1.42 @@ -1,78 +1,82 @@ -/*************************************************************************** - bbs.h - description - ------------------- - begin : Mon Oct 18 2004 - copyright : (C) 2004 by Leaflet - email : leaflet@leafok.com - ***************************************************************************/ - -/*************************************************************************** - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ***************************************************************************/ +/* SPDX-License-Identifier: GPL-3.0-or-later */ +/* + * bbs + * - BBS related common definitions + * + * Copyright (C) 2004-2026 Leaflet + */ + +#ifndef _BBS_H_ +#define _BBS_H_ #include +#include + +enum bbs_const_t +{ + BBS_max_section = 200, + BBS_section_name_max_len = 20, + BBS_section_title_max_len = 40, + BBS_username_max_len = 12, + BBS_password_max_len = 12, + BBS_nickname_max_len = 40, + BBS_user_tz_max_len = 50, + + BBS_msg_max_len = 1024, + + BBS_id_max_len = 20, + BBS_name_max_len = 50, + BBS_server_max_len = 255, + BBS_address_max_len = 50, + BBS_start_dt_max_len = 50, -//BBS -#define BBS_max_section 1024 + BBS_max_user_count = 100000, + BBS_max_user_online_count = 10000, -extern char BBS_id[20]; -extern char BBS_name[50]; -extern char BBS_server[256]; -extern char BBS_address[50]; -extern unsigned int BBS_port; -extern long BBS_max_client; -extern long BBS_max_user; -extern char BBS_start_dt[50]; - -//User privilege -#define S_NONE 0x0 -#define S_LIST 0x1 -#define S_GETEXP 0x2 -#define S_POST 0x4 -#define S_MSG 0x8 -#define S_MAIL 0x10 -#define S_MAN_S 0x20 -#define S_MAN_M 0x60 //(0x40 | 0x20) -#define S_ADMIN 0xe0 //(0x80 | 0x40 | 0x20) -#define S_ALL 0xff -#define S_DEFAULT 0x3 //0x1 | 0x2 - -#define P_GUEST 0x0 //游客 -#define P_USER 0x1 //普通用户 -#define P_AUTH_USER 0x2 //认证用户 -#define P_MAN_S 0x4 //副版主 -#define P_MAN_M 0x8 //正版主 -#define P_MAN_C 0x10 //栏目主管 -#define P_ADMIN_S 0x20 //次系统管理员 -#define P_ADMIN_M 0x40 //主系统管理员 + BBS_max_user_idle_time = 600, // 10 minutes -struct user_priv -{ - long int uid; - long int auid; - int level; - int g_priv; - struct - { - int sid; - int s_priv; - }s_priv_list[BBS_max_section]; - int s_count; + BBS_current_action_max_len = 20, }; -typedef struct user_priv BBS_user_priv; +// BBS +extern const int BBS_section_list_load_interval; -//Session -extern BBS_user_priv BBS_priv; +extern char BBS_id[BBS_id_max_len + 1]; +extern char BBS_name[BBS_name_max_len + 1]; +extern char BBS_server[BBS_server_max_len + 1]; +extern char BBS_address[BBS_address_max_len + 1]; +extern in_port_t BBS_port[2]; +extern int BBS_max_client; +extern int BBS_max_client_per_ip; +extern char BBS_start_dt[BBS_start_dt_max_len + 1]; +extern int BBS_sys_id; + +// User +extern const int BBS_user_list_load_interval; +extern const int BBS_user_online_list_load_interval; + +// Session +extern const int BBS_user_off_line; + +extern char BBS_username[BBS_username_max_len + 1]; +extern char BBS_nickname[BBS_nickname_max_len + 1]; +extern char BBS_user_tz[BBS_user_tz_max_len + 1]; +extern int BBS_user_exp; -extern int BBS_passwd_complex; +extern time_t BBS_eula_tm; +extern int BBS_update_eula; extern time_t BBS_login_tm; extern time_t BBS_last_access_tm; -extern time_t BBS_last_sub_tm; +extern char BBS_current_action[BBS_current_action_max_len + 1]; +extern time_t BBS_current_action_tm; +extern const int BBS_current_action_refresh_interval; + +extern const char *get_astro_name(time_t birthday); +extern int get_user_level(int point); +extern const char *get_user_level_name(int level); + +extern char *setuserfile(char *buf, size_t len, const char *filename); + +#endif //_BBS_H_