--- lbbs/include/bbs.h 2005/05/07 09:28:12 1.8 +++ lbbs/include/bbs.h 2025/12/02 08:48:05 1.41 @@ -1,88 +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-2025 Leaflet + */ #ifndef _BBS_H_ #define _BBS_H_ #include +#include -//BBS -#define BBS_max_section 1024 -#define BBS_max_username_length 20 - -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 //8Ŀ��� -#define P_ADMIN_S 0x20 //��ϵͳ����Ա -#define P_ADMIN_M 0x40 //��ϵͳ����Ա - -struct user_priv +enum bbs_const_t { - 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_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_max_user_count = 100000, + BBS_max_user_online_count = 10000, + + BBS_max_user_idle_time = 600, // 10 minutes + + BBS_current_action_max_len = 20, }; -typedef struct user_priv BBS_user_priv; +// BBS +extern const int BBS_section_list_load_interval; -//Session -#define MAX_DELAY_TIME 600 +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 char BBS_username[BBS_max_username_length]; -extern BBS_user_priv BBS_priv; -extern int BBS_passwd_complex; -extern int BBS_user_money; +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_section_name[20]; +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_